100 '*************************************** 110 ' 歯車のアニメーションプログラム 120 '  designed by takuma tsuji 130 ' date 2010.6.3 140 '*************************************** 150 screen 3:cls 3 160 x0=320 : y0=200 : pi=3.141592653 : rad=pi/180.0 170 zoom=30 : sc=0 : sp=1 : t=1 180 number=10 190 '*************************************** 200 rb=3.0 210 fais=0*rad 220 faiu=+30*rad 230 makikaku=100 240 makikaku2=54 250 sss=360/number : nstep=13 260 line(0,0)-(640,399),7,bf 270 '**************************************** 280 '歯車創成手順 290 'for i=0 to makikaku step 1 300 ' fai1=i*rad : fai2=(i+1)*rad 310 ' x1=(rb*cos(fai1+fais)+rb*(fai1)*sin(fai1+fais) )*zoom:x2=(rb*cos(fai2+fais)+rb*(fai2)*sin(fai2+fais))*zoom 320 ' y1=(rb*sin(fai1+fais)-rb*(fai1)*cos(fai1+fais))*zoom :y2=(rb*sin(fai2+fais)-rb*(fai2)*cos(fai2+fais))*zoom 330 ' circle(x0,y0),rb*zoom,0 340 ' line(x0+x1,y0-y1)-(x0+x2,y0-y2),0 350 'next i 360 'for i=0 to -makikaku step -1 370 ' fai1=i*rad : fai2=(i+1)*rad 380 ' x1=(rb*cos(fai1+faiu)+rb*(fai1)*sin(fai1+faiu) )*zoom:x2=(rb*cos(fai2+faiu)+rb*(fai2)*sin(fai2+faiu))*zoom 390 ' y1=(rb*sin(fai1+faiu)-rb*(fai1)*cos(fai1+faiu))*zoom :y2=(rb*sin(fai2+faiu)-rb*(fai2)*cos(fai2+faiu))*zoom 400 ' line(x0+x1,y0-y1)-(x0+x2,y0-y2),2 410 ' next i 420 for kaiten= 0 to 2*pi step 0.02 421 SC=T MOD 2:DP=1+((T+1) MOD 2)*16 422 SCREEN ,,SC,DP 423 line(0,0)-(639,399),7,bf 430 for i=0 to makikaku2 step nstep 435 for NNN=0 to 360 step sss 440 nn=nnN*rad 450 fai1=i*rad : fai2=(i+nstep)*rad 460 fai3=-i*rad : fai4=-(i+nstep)*rad 470 x1=(rb*cos(fai1+fais+NN+kaiten)+rb*(fai1)*sin(fai1+fais+NN+kaiten) )*zoom:x2=(rb*cos(fai2+fais+NN+kaiten)+rb*(fai2)*sin(fai2+fais+NN+kaiten))*zoom 480 y1=(rb*sin(fai1+fais+NN+kaiten)-rb*(fai1)*cos(fai1+fais+NN+kaiten))*zoom :y2=(rb*sin(fai2+fais+NN+kaiten)-rb*(fai2)*cos(fai2+fais+NN+kaiten))*zoom 490 ' 500 x3=(rb*cos(fai3+faiu+NN+kaiten)+rb*(fai3)*sin(fai3+faiu+NN+kaiten) )*zoom:x4=(rb*cos(fai4+faiu+NN+kaiten)+rb*(fai4)*sin(fai4+faiu+NN+kaiten))*zoom 510 y3=(rb*sin(fai3+faiu+NN+kaiten)-rb*(fai3)*cos(fai3+faiu+NN+kaiten))*zoom :y4=(rb*sin(fai4+faiu+NN+kaiten)-rb*(fai4)*cos(fai4+faiu+NN+kaiten))*zoom 520 circle(x0,y0),rb*zoom,0 530 line(x0+x1,y0-y1)-(x0+x2,y0-y2),0 540 line(x0+x3,y0-y3)-(x0+x4,y0-y4),2 550 next nnn 560 next i 561 SC2=(T+1) MOD 2:DP2=1+((T) MOD 2)*16 562 SCREEN ,,SC2,DP2 569 cls 3:t=t+1 570 next kaiten : goto 420 580 end