最後の旅を始めよう

-黒の英雄譚・零-

三次元における2点AB間の距離をPythonを使って求めよ

2023年12月03日 | MAYA_Pyhon...
結論から申し上げますと
やっぱりAIは凄いな…という、お話です。

3DCG系のDCCツールを使用していると、
どうしてもオブジェクト同士の距離を求めるツールが必要な場面が出て来ますよね。

まあ↓この公式に当てはめれば三次元における2点間の距離出るのですけど、
√(xA−xB)^2+(yA−yB)^2+(zA−zB)^2

問題は…
これを、どうやってPythonで表してやればいいのか
さっぱり見当が付かないとういうところですね。

そもそも、ルート計算はどう表せば良いか解りませんし、
べき乗の計算も「^」をPythonは受け付けない様で、一体どうすれば良いのか
途方に暮れていた訳ですが…

ただ、これをChatGPTに聞いてみたら
一発で答えが出てしまいました!すごい!

Pythonでは
↓*を二つ重ねる事でべき乗計算を表して、
(xA-xB)**2

↓0.5でべき乗計算する事でルートを表すみたいです。
** 0.5

・・・なるほど!


という訳で、
Mayaで指定した二つのオブジェクトの距離を求めるスクリプトを書いてみました。


#三次元における2点AB間の距離を求める
def fFindDistance( vStart, vEnd ):
    lAp = cmds.xform(vStart,worldSpace=True,translation=True,q=True)
    lBp = cmds.xform(vEnd,worldSpace=True,translation=True,q=True)    
    oDistance = (lAp[0]-lBp[0])**2+(lAp[1]-lBp[1])**2+(lAp[2]-lBp[2])**2    
    return oDistance ** 0.5
fFindDistance( "locator1", "locator2" )



"locator1", "locator2" の名前を、
任意のオブジェクトの名前に変える事で距離を測る事が出来ます。




コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 続々々々々々々々・レイブラ... | トップ | 【アイデアノート】ゲーム株... »
最新の画像もっと見る

コメントを投稿

MAYA_Pyhon...」カテゴリの最新記事