Yuka库中Vector3对象的reflect方法可以计算向量在给定法线上的反射向量。
reflect( normal );
normal
:(Vector3类型)向量法线的方向。(Vector3类型)反射向量。
const position = new Vector3( 5, 0, 0 );
const normal = new Vector3( 1, 0, 0 );
const velocity = new Vector3( -10, 0, 0 );
const reflection = velocity.clone().reflect( normal );
position.add( reflection );
Vector3的reflect方法使用以下公式计算反射向量:
r = v - 2 * ( v . n ) * n
其中,r为反射向量,v为待计算向量,n为法线向量,‘.’表示向量点积。
注意:在计算反射向量之前,传入的法线向量需先进行单位向量化。