如何在三维空间中在球体上绘制球面三角形?

2024-04-27 17:42:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设你知道球面三角形的三个顶点。 那么如何在3D中绘制球体的边呢?在

我需要一些python代码在Blender 3d建模软件中使用。在

我已经在搅拌机里做了三维球体。在

谢谢,祝您愉快。在

注1:

球面上有3个点/顶点(p1,p2,p3)作为球面三角形 但我需要在3D中追踪球体上的边

那么,确定球面上三角形的每对点之间的所有顶点需要什么方程呢 3条边从p1到p2-p2到p3和o3到p1

我知道这和球面上测地线的大圆有关 但是找不到合适的方程在球坐标系下进行计算!在

谢谢


大圆圈

如果能看到一个有大圆的解,并直接在球坐标系中看到tehsolution,那会很有趣的!在

但在欧几里得空间里做这件事还是很有趣的

谢谢


好吧,我用了两点之间的线段

但并没有像之前所说的那样做

我用了另一种方法-贝塞尔线插值**

我用贝塞尔曲线参数化了这条线 然后细分并计算弦上每个细分贝塞尔点的比率和角度 它工作得非常好而且非常精确

但是,看看如何用早期的方法来实现这一点是很有趣的 循环不确定怎么做?在

如何在这里加载python代码 用Ctrl-V就过去了?在

感谢和快乐2.5


我用的是搅拌机论坛 但没人能一直得到一个明确的答案!在

这就是为什么我在这里尝试-冒险

我做的第一步似乎有用 现在要做一个循环,得到第一条边的多段,然后再做其他边

2-其他主题 我在这里打开一个关于贝塞尔三角形贴片的帖子 我知道这不是我们的工具 但只是为了证明这是怎么做到的 你有没有请一个python sript来做这些三角形补丁 我确实问过搅拌机的问题,但没有回答 也在IRC python和sems上死了 也许男人们正忙着完成2.5 Beta版的vesion,它应该在一到两周内发布

嘿谢谢你的数学讨论 如果我有问题,明天再来

快乐数学和2.5


Tags: 方法代码数学细分球面方程球体坐标系
2条回答

一种简便易行的方法是创建三角形并将面细分到所需的详细程度,然后将所有顶点规格化为所需的半径。在

创建正弦网格

在Blender中创建正弦波网格的Python代码:

import math
import Blender
from Blender import NMesh

x = -1 * math.pi

mesh = NMesh.GetRaw()
vNew = NMesh.Vert( x, math.sin( x ), 0 )
mesh.verts.append( vNew )

while x < math.pi:
 x += 0.1
 vOld = vNew
 vNew = NMesh.Vert( x, math.sin( x ), 0 )
 mesh.verts.append( vNew )
 mesh.addEdge( vOld, vNew )

NMesh.PutRaw( mesh, "SineWave", 1 )
Blender.Redraw()

代码的解释在:http://davidjarvis.ca/blender/tutorial-04.shtml

绘制边的算法

画一条线段和画三条线段是一样的,所以问题可以重述为:

How do you draw an arc on a sphere, given two end points?

换句话说,在球体上的以下两点之间绘制一条圆弧:

  • P1=(x1,y1,z1
  • P2=(x2,y2,z2

通过沿弧p1p2绘制许多中点来解决此问题,如下所示:

  1. 计算球体的半径:^{pr 2}$
  2. 计算P1和P2之间直线的中点(m):^{pr 3}$
  3. 计算到P1和P2之间直线中点的长度:^{pr 4}$
  4. 计算球体半径与中点长度之比:^{pr 5}$
  5. 沿圆弧计算中点:^{pr 6}$

对于p1到p2,创建两条边:

  • P1到Am
  • Am到P2

两条边将穿过球体。要解决这个问题,请计算P1Am和AmP2之间的中点。中点越多,直线段就越接近球体的曲面。在

由于Blender的计算相当精确,因此产生的弧可能(渐进地)被球体隐藏。或者说,一旦你创建了一个三角形的网格,你就会离开它。在

使用样条曲线

另一个解决方案是从下面创建一个spline

  • 球体半径(如上计算)
  • P1
  • Am
  • P2

生成的样条线必须移动到球体的前面。在

搅拌机艺术家论坛

Blender experts对于如何解决这个问题也会有很好的想法;试着问问他们。在

另请参见

{a4}

http://cr4.globalspec.com/thread/27311/Urgent-Midpoint-of-Arc-formula

相关问题 更多 >