100 '*********** 初期設定 ************************************ 110 CLS 3 : SCREEN 3 :OPTION BASE 1 120 SC=0 : W=1 ' 描画用 130 X0=200 : Y0=350 140 PAI=3.141592653# 150 R=30 : ALP=.25# 160 PHAI=30/180*PAI 170 DIM XC(12),YC(12),XP(12),YP(12),XCL(12),YCL(12),XCR(12),YCR(12) 180 DIM XSL(12),YSL(12),XSR(12),YSR(12),PHASE(12) 190 DIST=30 : D=8 : H=10 : ZOOM=3 200 '*********** 発生条件 ************************************ 210 N=4:'発生気筒数 220 PHASE(1)=0:PHASE(2)=1*2*PAI/2:PHASE(3)=1*2*PAI/2:PHASE(4)=0 '各気筒数における位相角 230 PHASE(5)=2*PAI/3:PHASE(6)=0:PHASE(7)=0:PHASE(8)=0 240 PHASE(9)=0:PHASE(10)=0:PHASE(11)=0:PHASE(12)=0 250 '********** 計算 & 描画 ルーチン ********************* 255 XXX=5*COS(PHAI):YYY=5*SIN(PHAI) 260 FOR T=0 TO 2*PAI STEP .05 266 SC=W MOD 2 : DP=1+((W+1) MOD 2)*16 267 SCREEN ,,SC,DP 270 FOR I= 1 TO N STEP 1 280 XC(I)=R*COS(T+PHASE(I))/COS(PHAI)+DIST*I*COS(PHAI) 290 YC(I)=R*SIN(T+PHASE(I))-R*COS(T+PHASE(I))*TAN(PHAI)+DIST*I*SIN(PHAI) 300 XP(I)=DIST*I*COS(PHAI) 310 YP(I)=R*SIN(T+PHASE(I))+R/ALP*SQR(1-ALP^2*(COS(T+PHASE(I)))^2)+DIST*I*SIN(PHAI) 320 XSL(I)=DIST*I*COS(PHAI)-XXX : YSL(I)=DIST*I*SIN(PHAI)-YYY 330 XSR(I)=DIST*I*COS(PHAI)+XXX : YSR(I)=DIST*I*SIN(PHAI)+YYY 340 XCL(I)=XC(I)-XXX : YCL(I)=YC(I)-YYY 350 XCR(I)=XC(I)+XXX : YCR(I)=YC(I)+YYY 360 NEXT I 370 FOR I=1 TO N STEP 1 380 LINE(X0,Y0)-(X0+XSL(1),Y0-YSL(1)),7 390 LINE(X0+XSL(I),Y0-YSL(I))-(X0+XCL(I),Y0-YCL(I)),7 400 LINE(X0+XCL(I),Y0-YCL(I))-(X0+XCR(I),Y0-YCR(I)),7 410 LINE(X0+XCR(I),Y0-YCR(I))-(X0+XSR(I),Y0-YSR(I)),7 420 LINE(X0+XC(I),Y0-YC(I))-(X0+XP(I),Y0-YP(I)),7 425 '************* ピストン描画 ************************************* 430 CIRCLE (X0+XP(I),Y0-YP(I)),4 440 LINE (X0+XP(I)-D,Y0-YP(I)-H)-(X0+XP(I)-D,Y0-YP(I)+H) 450 LINE (X0+XP(I)+D,Y0-YP(I)-H)-(X0+XP(I)+D,Y0-YP(I)+H) 460 CIRCLE (X0+XP(I),Y0-YP(I)-H),D,,,,3/D 470 NEXT I 480 FOR P= 1 TO N-1 STEP 1 490 LINE (X0+XSR(P),Y0-YSR(P))-(X0+XSL(P+1),Y0-YSL(P+1)) 500 LINE (X0+XSR(N),Y0-YSR(N))-(X0+(XSR(N)+DIST *COS(PHAI)),Y0-(YSR(N)+DIST *SIN(PHAI))) 510 NEXT P 950 SC2=(W+1) MOD 2:DP2=1+((W) MOD 2)*16 960 SCREEN ,, SC2,DP2 970 W=W+1 980 CLS 3 990 NEXT T 1000 GOTO 260