如何在Python中获得半球的坐标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中获得半球的坐标相关的知识,希望对你有一定的参考价值。
目前,我有一些Python代码来获取球体表面上的等距点。现在,我想编辑此代码以获得半球表面上的等距点。我假设我需要更改一些简单的参数,但我仍然是Python新手。
我的代码:
from numpy import pi, cos, sin, arccos, arange
import mpl_toolkits.mplot3d
import matplotlib.pyplot as plt
num_pts = 10000
indices = arange(0, num_pts, dtype=float) + 0.5
phi = arccos(1 - 2*indices/num_pts)
theta = pi * (1 + 5**0.5) * indices
x, y, z = cos(theta) * sin(phi), sin(theta) * sin(phi), cos(phi);
fig_size = plt.rcParams["figure.figsize"]
fig_size[0] = 75
fig_size[1] = 75
plt.rcParams["figure.figsize"] = fig_size
plt.figure().add_subplot(111, projection='3d').scatter(x, y, z, s=1);
plt.show()
#saves the coordinates
import numpy as np
import sys
points = np.transpose(np.array([x,y,z]))
#np.savetxt(sys.stdout, points, fmt="%.6f")
np.savetxt('data.txt', points, fmt="%.6f")
谢谢您的帮助!
答案
最简单的方法:
X = np.stack((x,y,z)) # stack up all coordinates
mask = X[-1]>=0 # mask of elements where z coordinate larger than 0
x,y,z = X.T[mask].T # mask out the elements where z coordinate < 0
然后绘制这些点。你会得到一个半球我想
以上是关于如何在Python中获得半球的坐标的主要内容,如果未能解决你的问题,请参考以下文章