0
내가 SQRT 함수를 피할 반사 알고리즘을 원했고, 이것이다 :이 반사 알고리즘이 작동하지 않는 이유는 무엇입니까? 내가 해낸
Vector3D.prototype.reflectOver = function(vectorToReflectOver){ //return a reflected vector
var t = (vectorToReflectOver.dot(vectorToReflectOver))/(this.dot(vectorToReflectOver));
var reflectedVector = vectorToReflectOver.multiply(2).subtract(this.multiply(t));
return reflectedVector;
}
뒤에 추론은 우리가 다른 벡터 V_2를 통해 벡터 V_1을 반영하려는 경우, 우리는 V_2 + V_3이 반사 벡터가되도록 벡터 V_3을 찾고 싶습니다. 먼저 t * V_1 - V_2 = V_3이되도록 벡터 t * V_1를 찾아야합니다. 이것은 함수에있는 것입니다. 어떤 아이디어?
도트 함수는 내적을 참조하고, 스칼라를 벡터에 곱하고, 빼기는 두 벡터를 뺍니다. 이 함수는 v.reflectOver (n)와 같이 호출됩니다. 여기서 v와 n은 두 벡터입니다. 또한 오류가 발생하지 않습니다. 이는 컴파일러 오류나 런타임 오류가 아닌 성능 오류입니다.