首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数学/Python-给定一个球体,围绕该球体绘制连续点?

数学/Python-给定一个球体,围绕该球体绘制连续点?
EN

Stack Overflow用户
提问于 2013-07-30 15:58:46
回答 2查看 493关注 0票数 0

我正在尝试围绕焦点旋转vtk相机。这样做的目的是“环绕”模型。

我正在使用camera.SetPosiiton(x, y, z)调用来设置摄影机位置,并且我知道我可以在渲染窗口中的每个更新周期执行相同的操作。

焦点的位置是(0,0,0),一些其他的边界框给出了我的初始相机位置(x,y,z)。从焦点(0,0,0)到相机位置9x,y,z的距离描述了球体的半径。

在我的脑海中,这基本上是围绕点(0,0,0)移动相机,我假设有一个数学函数可以用来为它提供我的相机起点,并计算出我的下一个相机位置。

这应该会导致模型看起来在空间中旋转。我的相机视图是从所有x,y,z,平面偏移的,这使得它成为一个3d问题,而不是2d问题。然而,我确实希望我的相机与模型保持相同的距离(焦点)

我试图实现的是这样的:-拿一支铅笔(我的模型又长又窄)。把它握在你的指尖,保持与手臂的长度,指尖指向天花板。把铅笔倾斜约30度。这是相机的开始位置。用手指旋转铅笔体,保持倾斜角度和与眼睛的距离。

THis帖子看起来很有帮助:Plotting a point on the edge of a sphere然而,这假设你知道到达初始x,y位置的半径。

有人能给我指出我需要做这件事的数学吗?我的数学太生疏了。

EN

回答 2

Stack Overflow用户

发布于 2013-07-30 17:09:45

看起来你想要的是围绕一个轴旋转一个向量,这可以使用rotation matrix很容易地完成

因此,如果你想要的旋转轴在zx平面上从z轴倾斜30度,你的旋转轴是(cos(pi/6),0,sin(pi/6)),增加旋转角度,将其插入rotation matrix得到矩阵R,新的相机位置向量将是R*(x,y,z)‘

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 16:24:53

从点(+-1,0,0),(0,+-1,0),(0,0,+-1)开始。这两个点形成了两个金字塔,所有的点都在单位球面上。

现在,您可以获取每个三角形的中点,并将其投影出来,以便它们也位于单位球体上。对于每个三角形,现在会给你3个新的三角形,你可以重复这个过程。

三角形中点的另一种选择是取每一条边的中点,并将它们连接起来。这给出了3个新的点,可以投影到单位圆上。这为每个细分提供了4个三角形。

根据需要重复多次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17941364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档