2009-12-10 23 views
0

J'ai créé un contexte dragger dans maya en utilisant le code suivant, pos détient mes coordonnées 2D du curseur de la souris, je veux le convertir en coordonnées 3D pour être la source du rayon que je veux lancer, je le veux soit par script python ou par l'api python ,,comment (en maya) puis-je obtenir la position 3D de la souris?

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

merci à l'avance

+1

# Erreur: RuntimeError: fichier ligne 4: # –

Répondre

0

Avez-vous examiné la projection (-PR) options pour le draggerContext?

Les coordonnées de la souris sont des données sur 2 dimensions, et les options de projection sont des méthodes pour résoudre la manière dont la 3ème dimension est mappée. Pour les rayons, peut-être l'une des options suivantes est pertinente à votre question:

projet axeX à un point sur l'axe X du projet axeY à point le plus proche sur l'axe Y projet Zaxis à l'axe point Z le plus proche le plus proche

Voilà En espérant que cela aide et bonne chance.

1

En fait, vous voudrez peut-être regarder dans l'espace (sp) drapeau dans l'aide de la commande de draggerContext.

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

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

... vous devriez imprimer les valeurs XYZ du Worldspace.