0

我已经使用以下代码在 Maya 中创建了一个拖动器上下文,pos 保存我的鼠标光标的 2D 坐标,我想将其转换为 3D 坐标作为我想要启动的射线源,我希望它通过 python 脚本或通过python api,,

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--------
    ????????

提前致谢

4

2 回答 2

1

实际上,您可能想查看draggerContext命令帮助中的space(sp)标志。

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

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

...应该为您打印单击的世界空间 XYZ 值。

于 2011-11-23T17:43:52.383 回答
0

您是否查看过 draggerContext 的投影 (-pr) 选项?

鼠标坐标是二维数据,投影选项是解决如何映射第三维的方法。对于光线,也许以下选项之一与您的问题相关:

xAxis 投影到 X 轴上的最近点 yAxis 投影到 Y 轴上的最近点 zAxis 投影到 Z 轴上的最近点

希望对您有所帮助,祝您好运。

于 2010-03-04T08:47:50.190 回答