Go-harmonica-库使用

Harmonica 是一个 physics-based animation tools for 2D and 3D application, 也就是通过设置速度, 位置之类的物理单位来实现动画.

FPS 设置帧数

返回值是两帧之间的间隔时间 delta:

1
func FPS(n int) float64

这里可用于初始化一个 spring:

1
spring := NewSpring(FPS(60), 5.0, 0.2)

type Point

用于表示点的 X, Y, Z 坐标值:

1
2
3
type Point struct {
X, Y, Z float64
}

type Vector

有大小和方向:

1
2
3
type Vector struct {
X, Y, Z float64
}

type Projectile

空结构体, 用于标记类型:

1
2
3
type Projectile struct {
// contains filtered or unexported fields
}

其表示一个平面中, 有 position, velocity 和 acceleration 的 projectile.

NewProjectile 创建一个 projectile

1
func NewProjectile(deltaTime float64, initialPosition Point, initialVelocity, initialAcceleration Vector) *Projectile

Acceleration 获取一个 projectile 的加速度

1
func (*Projectile) Acceleration() Vector

Position 获取一个 projectile 的位置

1
func (p *Projectile) Position() Point

Update 更新 projectile 的位置和速度

1
func (p *Projectile) Update() Point

Velocity 获取 projectile 的速度

1
func (p *Projectile) Velocity() Vector

type Spring

弹簧类型:

1
2
3
type Spring struct {
// contains filtered or unexported fields
}

NewSpring 创建一个 Spring

1
func NewSpring(deltaTime, angularFrequency, dampingRatio float64) (s Spring)

Update 更新 Spring 的位置和速度

1
func (s Spring) Update(pos, vel float64, equilibriumPos float64) (newPos, newVel float64)

Go-harmonica-库使用
http://example.com/2024/02/17/Go-harmonica-库使用/
作者
Jie
发布于
2024年2月17日
许可协议