0
我有一個平面定義爲xyz矢量和一個位於平面上的點。在三維空間中找到等距離的所有點位於預定義平面上的4個點
我想生成的xyz座標上在限定的距離/半徑(r
)圍繞限定點(centroid
)平面4點(N_points
)。
我目前的解決方案只適用於2D。我想擴展這個在3D中工作,但我的幾何知識是讓我失望。任何想法將不勝感激。
def circlePoints(r, N_points, plane=(1,1,1), centroid=(0,0,0), rotation=0):
(plane_x, plane_y, plane_z) = plane
(centroid_x, centroid_y, centroid_z) = centroid
step = (np.pi*2)/N_points
rot=rotation
i=0
points=[]
for i in xrange(N_points):
x = round(centroid_x + ((np.sin(rot)*r)/plane_x), 2)
y = round(centroid_y + ((np.cos(rot)*r)/plane_y), 2)
z=0 #?
points.append((x,y,z))
rot+=step
return points
print circlePoints(1, 4, [1,2,0], [2,3,1])
print circlePoints(1, 4)
你爲什麼要(......)'? –
,因爲我在默認情況下得到了一個很長的返回點'circlePoints(1,4)' – JoshuaBox
你能告訴我更多關於你如何定義你的飛機嗎?你需要4個參數來指定一個3D平面,但你只有3. – Imran