def draw
background(240)
v0 = createVector(0, 0)
v1 = createVector(mouseX, mouseY)
drawArrow(v0, v1, 'red')
n = createVector(0, -30)
drawArrow(v1, n, 'blue')
r = P5Vector.reflect(v1, n)
drawArrow(v1, r, 'purple')
line(0, mouseY, 100, mouseY)
end
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
与えられたベクトルを反射させて新たなベクトルを生成します。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 |
|---|---|---|---|---|
| v | ベクトル1 | p5vectorオブジェクト | ||
| surface | 反射面の法線ベクトル | p5vectorオブジェクト |
vec : 新たなベクトル (p5vectorオブジェクト)