[问题] 这段程式码的数学意义

楼主: st40182 (天羽)   2018-10-27 15:46:58
最近在找利用numpy建模的资料
原本是使用python的 ax.plot_trisurf 来绘制立体图形
但是不知为何地画出来总是破图
所以才去找更好的建模方法
后来找到这段
https://stackoverflow.com/questions/29800749/delaunay-triangulation-of-points-from-2d-surface-in-3d-with-python
缩:https://goo.gl/4iLj93
下面的回应
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.tri as mtri
X = np.load('./mydatars.npy')
# My data points are strictly positive. This doesn't work if I don't center
about the origin.
X -= X.mean(axis=0)
rad = np.linalg.norm(X, axis=1)
zen = np.arccos(X[:,-1] / rad)
azi = np.arctan2(X[:,1], X[:,0])
tris = mtri.Triangulation(zen, azi)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_trisurf(X[:,0], X[:,1], X[:,2], triangles=tris.triangles,
cmap=plt.cm.bone)
plt.show()
===================================================
红色的那段就是我看不懂得点
不太晓得他这么做的数学意义是什么
另外
虽然说将他的程式码稍作修改后可以跑出我所期望的轮廓
但是还有点瑕疵
模型总是会有一条裂痕
我原本以为是建模开始与结束没连接起来而产生的问题
但是补上去之后瑕疵仍然存在着
想请问有没有什么方法可以修补
谢谢!
作者: edwar (海边的野孩子)   2018-10-28 01:06:00
可能是换算成球座标之类的
作者: iphone2003 (307)   2018-10-28 02:14:00
应该是球座标没错,那个X的第0到2行应该是x,y,z座标吧,rad代表半径,zen代表天顶角,azi是方位角
楼主: st40182 (天羽)   2018-10-28 16:18:00
谢谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com