java 线绕点旋转_java – 围绕特定点旋转(例如,绕0,0,0旋转)

我一直在搜索这个问题,但我找不到合适的答案.

我需要围绕给定点(例如,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.

解决方法:

关于任意点P的旋转的一般过程是:

>翻译-P(所以P在(0,0,0))

>围绕原点旋转

>翻译P(将原点带回P的原始位置)

最简单的方法是在homogeneous coordinates中表示所有内容,并用矩阵表示翻译和旋转.组合上述三个变换(translate-rotate-translate)是通过矩阵乘法完成的.如果旋转由两个或更多个更简单的旋转组成,则旋转矩阵本身是矩阵的乘积,用于更简单的旋转.

标签:java,rotation,java-3d

来源: https://codeday.me/bug/20191007/1863448.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值