2009-12-10 5 views
0

다음 코드를 사용하여 마야에서 드래거 컨텍스트를 만들었습니다. pos는 마우스 커서의 2D 좌표를 보유하고 있습니다.이 포인터를 3D 좌표로 변환하여 시작하려는 레이의 소스가되도록하고 싶습니다. 파이썬 스크립트 나 파이썬 API를 통해 ,, 사전에어떻게 마야에서 마우스의 3D 위치를 얻을 수 있습니까?

import maya.cmds as mc 

mc.draggerContext('testContext', pressCommand='getCursorPos()', 
        dragCommand='getCursorPos()', cursor='default') 

def getCursorPos(): 

    #--get the 2D position of cursor (on the view port)---- 

    pos = mc.draggerContext('testContext', query=1, dragPoint=1) 

    #----convert to 3D coordinates in the scene-------- 
    ???????? 

덕분에

+1

# Error : RuntimeError : file 4 행 : # –

답변

0

당신은 draggerContext에 대한 (-pr) 옵션 투사를 검토 한 적이 있습니까?

마우스 좌표는 2 차원의 데이터이고, 투영 옵션은 3 차원이 매핑되는 방식을 결정하는 방법입니다.

x 축 프로젝트 Z에 가장 가까운 지점에 Y 축 Z 축 프로젝트에 가장 가까운 지점에 X 축 y 축 프로젝트에 가장 가까운 지점에

가 여기 축 : 광선 들어, 어쩌면 다음 옵션 중 하나는 귀하의 질문에 관련이 그것이 도움이되고 행운이 있기를 바란다.

1

사실, 당신은 draggerContext 명령 도움말의 공간 (SP)을 조사 플래그 싶어 할 수도 있습니다.

mc.draggerContext('sampleContext', dragCommand='getCursorPos()', space='world') 

def getCursorPos(): 
    print mc.draggerContext('testContext', query=1, dragPoint=1) 

... 클릭하면 월드 와이드 XYZ 값이 출력됩니다.

관련 문제