SET WINDOW -1.1,1.1,-1.1,1.1 LET a=2 LET b=1 LET Q1=a/(a+b) LET Q2=b/(a+b) FOR x=1 TO -1 STEP -0.01 SET DRAW mode hidden ! ちらつき防止の特殊処理(1) CLEAR IF x > 0.7 THEN FOR i=1 TO x STEP -0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,SQR(1-i^2)*Q2) NEXT i ELSE FOR i=x+0.3 TO x STEP -0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,SQR(1-i^2)*Q2) NEXT i END IF DRAW AXES SET LINE width 2 SET COLOR 4 LET y = SQR(1-x^2) PLOT LINES: x,0;0,y DRAW disk WITH SCALE(0.02)*SHIFT(x*Q1,Y*Q2) WAIT DELAY 0.01-0.001*t SET DRAW mode explicit ! ちらつき防止の特殊処理(2) SET COLOR 1 NEXT x FOR x=-1 TO 1 STEP 0.01 SET DRAW mode hidden ! ちらつき防止の特殊処理(1) CLEAR IF x < -0.7 THEN FOR i=-1 TO x STEP 0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,-1*SQR(1-i^2)*Q2) NEXT i ELSE FOR i=x-0.3 TO x STEP 0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,-1*SQR(1-i^2)*Q2) NEXT i END IF DRAW AXES SET LINE width 2 SET COLOR 4 LET y = SQR(1-x^2) PLOT LINES: x,0;0,-1*y DRAW disk WITH SCALE(0.02)*SHIFT(x*Q1,-1*Y*Q2) WAIT DELAY 0.01 SET DRAW mode explicit ! ちらつき防止の特殊処理(2) SET COLOR 1 NEXT x FOR i=1 TO -1 STEP -0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,SQR(1-i^2)*Q2) NEXT i FOR i=-1 TO 1 STEP 0.001 DRAW disk WITH SCALE(0.005)*SHIFT(i*Q1,-1*SQR(1-i^2)*Q2) NEXT i PLOT TEXT ,AT -0.8,0.8 : "軌跡の楕円" PLOT TEXT ,AT Q1-0.3,-0.1 : STR$(Q1) PLOT TEXT ,AT -0.3,Q2+0.05 : STR$(Q2) END