У меня мало проблем с позиционированием объектов в java 3d engine. Я пытаюсь разместить мою 3d модель в центре координат, используя центр объекта на основе его. Это означает, что центр объекта расположен у основания объекта, но не посередине его высоты, как это сделано в java3d. Вот как java3d делает это: ...
Я не репутацию 10 ... я могу разместить только 2 URLs ... Так что есть гиперссылка horizont view И то, что мне нужно быть: ...
object placed in 0,0,0 by the center of it's basejava 3d позиция объекта
Как я могу это сделать?
Я использует этот код:
TransformGroup tg = this.olib.get_model(model); // Taking my model from lib
Transform3D transform = new Transform3D();
//p.x =0; p.y=0; p.z=0; (center)
Vector3d vector = new Vector3d(p.x, p.y, p.z); // p is a class x,y,z,yAxis(rotation), scale
transform.setScale(p.scale);
Transform3D rotate1 = new Transform3D();
rotate1.rotY(p.yAxis);
transform.mul(rotate1);
transform.setTranslation(vector);
tg.setTransform(transform);
objRoot.addChild(tg);
Я не уверен на 100%, я понимаю проблему. Вы можете уточнить свой вопрос? – rich
Извините за мой английский .. Мне нужно разместить 3D-объект выше, потому что разработанный центр моего объекта в его основе. Java считает, что центр посередине высоты объекта, потому что объект высок. – user2463226
, то, вероятно, проблема заключается в вашей модели, а не в коде. вы можете, конечно, попытаться компенсировать это с помощью перевода (линейное преобразование), но я думаю, что я начну с попытки исправить модель. – rich