ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-07 01:01:58  阅读:310  来源: 互联网

标签:java rotation java-3d


我一直在搜索这个问题,但我找不到合适的答案.
我需要围绕给定点(例如,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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有