Codigus 2

You might also like

You are on page 1of 2

extends Posttion2D

class name Pendulum

var pivot point: Vector2

export (Vector2) var end position: = Vector2() tpendulum ttself


var arm tength:float

var angle toet angle

export (float) var gravity = 0.4 * 60

export (float) var damping = 0.995 arbitrary


var angular velocity = 0.0

var angular acceleration = 0.0

func set start position(start pos:Vector2, end pos:Vector2):


pivot potnt = start pos
end position = end pos
arn length = Vector2.ZERO. distance to(end position-pivot point)
angte
angular velocity = 0.0
angular acceleration = 0.0

func ready()->votd:
set start positton(global posttion, end position)

func process veloctty(delt:


angular acceleration

Toat)->votd:
((-gravity*delta) / arm length) *sin(angle)

angular velocity += angular acceleration tIncrement


angular velocity *= damping arbitrary
angle += angular vetoctty tIncrement

Vector2.ZERO.angle to(end position-pivot point) - deg2rad(-:

point the pendulum rotates around

danpentng force

90)

Fcalcutate acceler
velocity

danping

angle

end posttion = pivot potnt + Vector2(arm length*sin(angle), arm length*cos(angle))

ween posttion + add godot angle offset

http:
/ vem. myphystestab. com/pendulumi. html)

You might also like