对于我的播放器模型我在特定位置有几个身体部位,如下所示: [-2,2,0]处的右臂和臂的第二部分位于[-2,6,0] 现在我想旋转手臂的第一部分,并希望手臂的第二部分位于第一部分的末端。 我已经使用mycode为它做了一些工作,但重点并不总是转换到正确的位置。
这是我到目前为止所做的:
public static Vector3d rotateVectorAroundOrigin(Vector3d angle, Vector3f origin, Vector3f point) {
double radius = Math.sqrt(((point.x - origin.x) * (point.x - origin.x))
+ ((point.y - origin.y) * (point.y - origin.y)) + ((point.z - origin.z) * (point.z - origin.z)));
double newX = origin.x + (radius * (Math.sin(angle.z) * Math.sin(angle.y)));
double newY = origin.y + (radius * Math.cos(angle.x));
double newZ = origin.z + (radius * Math.sin(angle.y) * Math.cos(angle.y) * Math.sin(angle.z));
return new Vector3d(newX, newY, newZ);
}
希望有人可以帮助我