我一直在尝试计算粒子(Circle2D)对平台法线向量的反射速度。
Vector2D reflect(Vector2D vector, Vector2D normal) {
double velocityDotProduct = Vector2D.dot(normal, vector);
Vector2D reflectVector = new Vector2D(vector.getX() - 2 * velocityDotProduct * normal.getX(), vector.getY() - 2 * velocityDotProduct * normal.getY());
return reflectVector;
}
这会返回正确的x速度,但速度很小。
Before: x=5.0 y=20.39999999999999
After: x=5.000000009209657 y=-1.5040509959999993E8
谢谢, 雅各布