Data update
This commit is contained in:
parent
61b93a2cd1
commit
5af6d93694
858 changed files with 20572 additions and 2082 deletions
46
Task/Animate-a-pendulum/FutureBasic/animate-a-pendulum.basic
Normal file
46
Task/Animate-a-pendulum/FutureBasic/animate-a-pendulum.basic
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
void local fn BuildWindow
|
||||
window 1, @"Animated Pendulum in FutureBasic", ( 0, 0, 640, 400 )
|
||||
WindowSetBackgroundColor( 1, fn ColorBlack )
|
||||
WindowSetMinSize( 1, fn CGSizeMake( 640, 400 ) )
|
||||
WindowSetMaxSize( 1, fn CGSizeMake( 640, 400 ) )
|
||||
end fn
|
||||
|
||||
local fn AnimatedPendulum
|
||||
block double theta, gravity, length, accel, speed, weight, tempo, px, py, bx, by
|
||||
block ColorRef color = fn ColorWithRGB( 0.164, 0.793, 0.075, 1.0 )
|
||||
theta = pi/2.0 // Denominator of 2.0 = 180-degree swing, < 2.0 narrows inscribed arc, > 2.0 widens it.
|
||||
gravity = 9.90 // Adjusts effect of gravity on swing. Smaller values slow arc swing.
|
||||
length = 0.95 // Tweak for length of pendulum arm
|
||||
speed = 0 // Zero this or you get a propellor!
|
||||
px = 320 // Pivot horizontal center x point (half window width)
|
||||
py = 30 // Pivot y center y point from top
|
||||
weight = 42 // Diameter of pendulum weight
|
||||
tempo = 75 // Smaller value increases pendulum tempo, larger value slows it.
|
||||
|
||||
timerbegin, 0.02, YES
|
||||
bx = px + length * 300 * sin(theta) // Pendulum bottom x point
|
||||
by = py - length * 300 * cos(theta) // Pendulum bottom y point
|
||||
cls
|
||||
pen 6.0, color
|
||||
line px, py to bx, by
|
||||
oval fill bx -weight/2, by -weight/2, weight, weight, color // Traveling weight
|
||||
pen 4.0
|
||||
oval fill 313, 20, 16, 16, fn ColorGray // Top center point
|
||||
accel = gravity * sin(theta) / length / tempo
|
||||
speed += accel / tempo
|
||||
theta += speed
|
||||
timerEnd
|
||||
end fn
|
||||
|
||||
void local fn DoDialog( ev as long, tag as long, wnd as long )
|
||||
select ( ev )
|
||||
case _windowWillClose : end
|
||||
end select
|
||||
end fn
|
||||
|
||||
on dialog fn DoDialog
|
||||
|
||||
fn BuildWindow
|
||||
fn AnimatedPendulum
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue