如何在嵌入 3D 的表面上绘制测地线曲线?

Ton*_*oni 6 python matlab geometry computational-geometry geometry-surface

我想到了这个视频,或者这个模拟,我想在 3D 中重现某种表面上的测地线,由函数 f(x,y) 从某个起点给出。

中点法似乎计算和代码激烈,所以我想问一下如果有基于在不同的点法向量表面近似测曲线的方法。每个点都有一个与之相关的切向量空间,因此,似乎知道法向量并不能确定向前移动曲线的特定方向。

我曾尝试使用 Geogebra,但我意识到可能需要转移到其他软件平台,例如 Python(或 Poser?)、Matlab 或其他平台。

这个想法可行吗,我能得到一些关于如何实施它的想法吗?


如果它提供了一些关于如何回答问题的想法,之前有一个答案(现在不幸被删除)建议使用函数形式 z = F(x,y) 的地形的中点方法,从之间的直线开始端点,分裂成短段[我假设 XY 平面 (?) 上的直线],并在表面上提升 [我假设 XY 平面 (?) 上的段之间的节点]。接下来它建议找到“一个中点”[我猜是连接表面上每对连续投影点对的线段的中点(?)],并投影“它”[我猜这些中点中的每一个都接近,但不完全在表面(?)] 正交于表面(法线方向),使用方程 Z + t = F(X + t Fx, Y + t Fy) [我猜这是一个点积意味着为零...

在此处输入图片说明

(?)],其中 (X,Y,Z) 是中点的坐标,Fx,Fy 是 F 的偏导数,t 是未知数 [这是我理解这个的主要问题......我应该怎么做一旦我找到它?将其添加到 (X,Y,Z) 的每个坐标中,如 (X+t, Y+t, Z+t)?进而?]。这是 t 中的非线性方程,通过牛顿迭代求解。


作为更新/书签,Alvise的Vianello慷慨公布的启发上测地线Python的计算机模拟页面在GitHub上。非常感谢!

小智 0

当最小化长度积分时,可以通过变分欧拉方程找到表面上的测地线。这产生了两个未知数的两个二阶 ODE 系统。您可以通过 Runge-Kutta 等求解器轻松求解。

https://proofwiki.org/wiki/Geodesic_Equation/2d_Surface_Embedded_in_3d_Euclidean_Space