June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
29
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-1.basic
Normal file
29
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-1.basic
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
MODE 8
|
||||
*FLOAT 64
|
||||
VDU 23,23,4;0;0;0; : REM Set line thickness
|
||||
|
||||
theta = RAD(40) : REM initial displacement
|
||||
g = 9.81 : REM acceleration due to gravity
|
||||
l = 0.50 : REM length of pendulum in metres
|
||||
|
||||
REPEAT
|
||||
PROCpendulum(theta, l)
|
||||
WAIT 1
|
||||
PROCpendulum(theta, l)
|
||||
accel = - g * SIN(theta) / l / 100
|
||||
speed += accel / 100
|
||||
theta += speed
|
||||
UNTIL FALSE
|
||||
END
|
||||
|
||||
DEF PROCpendulum(a, l)
|
||||
LOCAL pivotX, pivotY, bobX, bobY
|
||||
pivotX = 640
|
||||
pivotY = 800
|
||||
bobX = pivotX + l * 1000 * SIN(a)
|
||||
bobY = pivotY - l * 1000 * COS(a)
|
||||
GCOL 3,6
|
||||
LINE pivotX, pivotY, bobX, bobY
|
||||
GCOL 3,11
|
||||
CIRCLE FILL bobX + 24 * SIN(a), bobY - 24 * COS(a), 24
|
||||
ENDPROC
|
||||
24
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-2.basic
Normal file
24
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-2.basic
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
10 GOSUB 1000
|
||||
20 THETA = π/2
|
||||
30 G = 9.81
|
||||
40 L = 0.5
|
||||
50 SPEED = 0
|
||||
60 PX = 20
|
||||
70 PY = 1
|
||||
80 BX = PX+L*20*SIN(THETA)
|
||||
90 BY = PY-L*20*COS(THETA)
|
||||
100 PRINT CHR$(147);
|
||||
110 FOR X=PX TO BX STEP (BX-PX)/10
|
||||
120 Y=PY+(X-PX)*(BY-PY)/(BX-PX)
|
||||
130 PRINT CHR$(19);LEFT$(X$,X);LEFT$(Y$,Y);"."
|
||||
140 NEXT
|
||||
150 PRINT CHR$(19);LEFT$(X$,BX);LEFT$(Y$,BY);CHR$(113)
|
||||
160 ACCEL=G*SIN(THETA)/L/50
|
||||
170 SPEED=SPEED+ACCEL/10
|
||||
180 THETA=THETA+SPEED
|
||||
190 GOTO 80
|
||||
980 REM ** SETUP STRINGS TO BE USED **
|
||||
990 REM ** FOR CURSOR POSITIONING **
|
||||
1000 FOR I=0 TO 39: X$ = X$+CHR$(29): NEXT
|
||||
1010 FOR I=0 TO 24: Y$ = Y$+CHR$(17): NEXT
|
||||
1020 RETURN
|
||||
22
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-3.basic
Normal file
22
Task/Animate-a-pendulum/BASIC/animate-a-pendulum-3.basic
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
Const PI = 3.141592920
|
||||
Dim As Double theta, g, l, accel, speed, px, py, bx, by
|
||||
theta = PI/2
|
||||
g = 9.81
|
||||
l = 1
|
||||
speed = 0
|
||||
px = 320
|
||||
py = 10
|
||||
Screen 17 '640x400 graphic
|
||||
Do
|
||||
bx=px+l*300*Sin(theta)
|
||||
by=py-l*300*Cos(theta)
|
||||
Cls
|
||||
Line (px,py)-(bx,by)
|
||||
Circle (bx,by),5,,,,,F
|
||||
accel=g*Sin(theta)/l/100
|
||||
speed=speed+accel/100
|
||||
theta=theta+speed
|
||||
Draw String (0,370), "Pendulum"
|
||||
Draw String (0,385), "Press any key to quit"
|
||||
Sleep 10
|
||||
Loop Until Inkey()<>""
|
||||
Loading…
Add table
Add a link
Reference in a new issue