def setup
@step = 0.01
@amount = 0
end
def draw
background(240)
v0 = createVector(0, 0)
v1 = createVector(mouseX, mouseY)
drawArrow(v0, v1, 'red')
v2 = createVector(90, 90)
drawArrow(v0, v2, 'blue')
if @amount > 1 || @amount < 0
@step *= -1
end
@amount += @step
v3 = v1.lerp(v2, @amount)
drawArrow(v0, v3, 'purple')
end
# draw an arrow for a vector at a given base position
def drawArrow(base, vec, myColor)
push do
stroke(myColor)
strokeWeight(3)
fill(myColor)
translate(base.x, base.y)
line(0, 0, vec.x, vec.y)
rotate(vec.heading)
arrowSize = 7
translate(vec.mag - arrowSize, 0)
triangle(0, arrowSize / 2, 0, -arrowSize / 2, arrowSize, 0)
end
end
他のベクトルとの間を線形補間したベクトルを生成します。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 |
|---|---|---|---|---|
| x | ベクトルの x成分 | |||
| y | ベクトルの y成分 | |||
| z | ベクトルの z成分 | |||
| vec | ベクトル | p5.Vectorオブジェクト | ||
| amt | 補間量 | 0~1 |
線形補間されたベクトル
(p5.Vectorオブジェクト)