我一直在搜索这个问题,但我找不到合适的答案 我需要围绕给定点(例如,0,0,0)旋转圆柱体,但是默认情况下给出圆柱体的枢轴。我该如何改变呢?
我找到了this主题,这是我想要做的,但我不知道如何用java做。
为了更好地解释我想做什么,我将展示3张图片。(v)
imageshack.us/photo/my-images/259/aintgood.jpg
imageshack.us/photo/my-images/840/whatineed.jpg
imageshack.us/photo/my-images/705/nogoodn.jpg
所以,第一张图片显示了我的基本问题,圆柱体的位置应该在球体的中心位置,让我们说(0,0,0)。用户给出两个角度。第一个用于rotX命令,第二个用于rotZ命令。圆柱体的枢轴位于其中心,因此,如图3所示,即使我将圆柱体平移,使其末端位于球体的中心,当它旋转时,整个物体也会消失。
图2显示了圆柱球组的外观,无论给定的角度如何。 图像不是基于算法获得的,而是基于微积分和mouserotated。
答案 0 :(得分:3)
关于任意点P的旋转的一般过程是:
最简单的方法是在homogeneous coordinates中表示所有内容,并用矩阵表示翻译和旋转。组合上述三个变换(translate-rotate-translate)是通过矩阵乘法完成的。如果旋转由两个或更多更简单的旋转组成,则旋转矩阵本身是矩阵的乘积,用于更简单的旋转。