[英]Rotation of a Vector around a point in 3D space with specific x,y&z angles [JAVA]
对于我的播放器模型,我在特定位置上有几个身体部位,例如:右臂在[-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);
}
希望有人能帮助我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.