ありません - とメルでそれを行うための簡単な方法は。しかし、Pythonではこれをかなり簡単に行うことができます。
まず、OpenMaya APIの一部であるMMatrix
として必要な座標系の行列を取得する必要があります。次に、別のAPIクラスであるMPointとしてチェックしたい位置を取得します。ここではそれらを取得するための安価な方法があります(そこに速い方法があるが、彼らは多くのwordierだ):あなたは、マトリックスとポイントを持っていたら
from maya.api.OpenMaya import MVector, MMatrix, MPoint
import maya.cmds as cmds
def world_matrix(obj):
"""'
convenience method to get the world matrix of <obj> as a matrix object
"""
return MMatrix(cmds.xform(obj, q=True, matrix=True, ws=True))
def world_pos(obj):
"""'
convenience method to get the world position of <obj> as an MPoint
"""
return MPoint(cmds.xform(obj, q=True, t=True, ws=True))
、相対的な位置は、単純に倍の行列の逆行列を指す:
relative_position = world_pos('pSphere1') * world_matrix('pCube1').inverse()
print relative_position
# (0.756766, -0.0498943, 3.38499, 1)
結果は、番号(X、Y、ZおよびW)を有するMPoint、あろう。 4位は常に1になるので、無視してもかまいませんが、数学では尺度と剪断を考慮する必要があります。
カメラ錐台のオブジェクトを検索しようとしていますか? – Achayan
オブジェクトがカメラの錐台の内側にあるかどうかを判断する必要はありません。オブジェクトまたは頂点がカメラからどれだけ離れているかを調べるだけです。 –