P5Vector.reflect

(別名: p5.Vector.reflect)

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

p5.jsリファレンス(参考情報)

[p5.js] p5.Vector.reflect

概要

与えられたベクトルを反射させて新たなベクトルを生成します。

書式

vec = P5Vector.reflect(v, surface)

引数

引数名内容備考オプションデフォルト値
vベクトル1p5vectorオブジェクト
surface反射面の法線ベクトルp5vectorオブジェクト

戻値

vec : 新たなベクトル (p5vectorオブジェクト)

備考

関連

(p5vector).reflect