MouseRotate с использованием Java3D

Я использую MouseRotate класс java 3d, и я использую его для вращения двух цилиндров. Но проблема в том, что когда я вращаю один цилиндр, другой цилиндр вращается вместе с ним. Есть ли способ обойти это или я должен сделать это по-другому?

Спасибо.


person ARAZA    schedule 04.08.2011    source источник
comment
Трудно сказать, не зная кода. Так не могли бы вы показать код?   -  person Ocaso Protal    schedule 04.08.2011
comment
кросспост daniweb.com/software-development/java/threads/375587   -  person mKorbel    schedule 04.08.2011
comment
Это код, над которым я работаю. Есть два цилиндра, каждый из которых имеет группу преобразования, называемую вращениемGroup. Я использую Mouserotate для вращения двух цилиндров. MouseRotate myMouseRotate = new MouseRotate(); myMouseRotate.setSchedulingBounds (границы); myMouseRotate.setFactor (0, 0,1); myMouseRotate.setTransformGroup(rotationXform); группа вращения.addChild (myMouseRotate);   -  person ARAZA    schedule 04.08.2011


Ответы (1)


после краткого изучения API MouseRotate я предполагаю, что необходимы следующие шаги

  • создайте 2 экземпляра MouseRotate, используя конструктор с TransformGroup. Один с TransformGroup каждого цилиндра
  • теперь вам нужно реализовать выбор цилиндра для вращения, либо щелкнув их, либо нажав кнопку (например, кнопку 1 для первого, 2 для второго). После выбора одного цилиндра следует использовать соответствующий MouseRotate, а другой деактивировать.
person monty    schedule 04.08.2011
comment
Это можно сделать, но проблема в том, что везде, где я вращаю мышь на холсте, вращается цилиндр. Есть ли способ деактивировать это, поскольку цилиндр вращается независимо от того, находится на нем мышь или нет. - person ARAZA; 04.08.2011
comment
Я не знаком с Java3D, но если вы можете переключаться между двумя цилиндрами, также должна быть возможность отменить выбор обоих. Самым грязным способом вы можете создать невидимый объект, повернув его. Лучшим способом было бы деактивировать MouseRotate, если никто не должен быть преобразован. - person monty; 05.08.2011