3D 空間内の他の 2 つの点の間で等距離にある点を見つけようとしています。たとえば、シーンに 2 つの立方体があります。Pymel を使用して、これら 2 つの球の間に等距離に 5 つ (または 3 つ、または 80...) のロケーターを追加したいと考えています。
次のように、球の中間点を簡単に見つけることができます。
import pymel.core as pm
import pymel.core.datatypes as dt
pos_1, pos_2 = pm.selected()
point_1 = dt.Vector(pos_1.getTranslation())
point_2 = dt.Vector(pos_2.getTranslation())
midway_point = (point_1 + point_2) / 2
ただし、2 つの球の間の線上に複数の点を取得する方法がわかりません。
私はこのようなことを試しました:
import pymel.core as pm
import pymel.core.datatypes as dt
pos_1, pos_2 = pm.selected()
point_1 = dt.Vector(pos_1.getTranslation())
point_2 = dt.Vector(pos_2.getTranslation())
distance = point_1.distanceTo(point_2)
divided_distance = distance / 5
for i in range (1, 5):
position = point_1 + (divided_distance * i)
pm.spaceLocator(position = position, absolute = True)
これにより、2 つの球の間に 5 つのロケータが追加されますが、それらは 3D 空間の 2 つの点を結ぶ線上にはありません。
誰かが私を正しい方向に向けることができますか?