Maya

【Maya:Python】2頂点間の距離を取得

2頂点間の距離を取得する方法について検索しても見つけることがなかなか出来ないでいましたが、ルートを使えば測れる事に気づきました。もしかしたら既存の機能である可能性もあります。

コード

# -*- coding: utf-8 -*-
import pymel.core as pm
import math
vtxList=pm.polyListComponentConversion(tv=1)
pm.select(vtxList, r=1)
vtxLists=pm.ls(fl=1, sl=1)

# 2頂点選択以外は処理しない
if len(vtxLists) != 2:
    print "2頂点選択してください"
else:    
    first = pm.pointPosition(vtxLists[0])
    x1 = first[0]
    y1 = first[1]
    z1 = first[2]
    
    second = pm.pointPosition(vtxLists[1])
    x2 = second[0]
    y2 = second[1]
    z2 = second[2]
    r = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2 + (z2 - z1) ** 2)
    print r,

math.sqrtでルートの計算が出来るようです。

実行方法

メッシュの頂点を2つ選択して実行してください。
2つ以外だと処理しないようにしています。