我想通过引用2D视口旋转3D Cylinder。已知圆柱体的半径和二维平移,我怎样才能找出它转动的角度?将2D视口转换转换为3D旋转
回答
假设气缸从A旋转到B.另外,让我们假定A是θ
度逆时针和B是顺时针θ
度水平。因此,A和B之间的角度是2θ
。
A的y坐标由r*sin(θ)
给出,B的y坐标仅为-r*sin(θ)
。
因此,2*r*sin(θ) = D
(泛距离)
求解θ
:
θ = asin(D/(2*r))
(其中阿辛是反正弦函数)
另一个(可能更鲁棒的)的方法是将计算三角形的垂直和底部,然后执行atan2(perp,base)
。
垂线简单地为D/2
,而基数为sqrt(R*R - D*D/4)
。
您使用的公式不会取决于您使用的[projection](http://en.wikipedia.org/wiki/Graphical_projection)吗? – 2013-03-27 20:29:57
绝对!好点,@ScottChamberlain。我假设这是一个像这样的“轮子”小部件:http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html – 2013-03-27 22:15:23
@RahulBanerjee谢谢!你的配方似乎对我的情况非常有用。我实际上正在做一个触摸3D旋转木马。通过触摸操作和惯性来实现它。 – icube 2013-03-28 01:52:57
- 1. 将3D转换转换为2D
- 2. 将3D点转换为2D
- 3. 将2D窗口点转换为3D点
- 4. 将3D场景转换为2D视图
- 5. 曲线透视:将3D转换为2D
- 6. 在Matlab上将2D图像转换为旋转的3D图像
- 7. 如何将2D转换为3D饼图?
- 8. 将3D模型转换为2D图像
- 9. Android将2D图像转换为3D
- 10. 将2D图像转换为3D
- 11. 将2D图像转换为3D
- 12. 将2D矩阵转换为3D矩阵?
- 13. 将3D对象转换为2D空间
- 14. 将2D图像转换为3D模型
- 15. 3d到2d点转换
- 16. 2D到3D坐标转换
- 17. 将2D视频输入序列转换为3D视频
- 18. 根据“分钟”(Unity 3D)转换旋转
- 19. 将3D转换为HTML5 Youtube视频
- 20. 如何将3D加速转换为旋转?
- 21. 3D,AS3,Flex - 将旋转度转换为可见高度
- 22. 将2D numpy.ndarray转换为pandas.DataFrame
- 23. 将2D cvMat转换为1D
- 24. 如何将CSS3 2D动画转换为3D变换
- 25. 将matrix_float3x3旋转转换为SceneKit
- 26. glScene函数将对象的3D坐标转换为视口2D坐标
- 27. 将2D String数组转换为2D double
- 28. 将3D阵列转换为3D模型
- 29. 将3D数组转换为3D std :: vector
- 30. 如何将three.js旋转转换为混合器旋转?
这将有助于了解更多关于您的情况以及您试图实现的具体内容。目前还不清楚你想如何将旋转和翻译相关联。 – 2013-03-27 17:30:19
@KendallFrey我用插图编辑了我的文章,希望你明白我的意思。谢谢! – icube 2013-03-27 17:56:46
如果您试图为2D-3D映射找到合适的搜索项,则通常的术语是“未投影”,它将2D结构(通常是点光线)逆向散射为3D光线。 – JerKimball 2013-03-27 22:24:23