![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2010
Сообщений: 430
|
Здравствуйте.
Задача такая: есть плоскость, нужно на ней прокладывать что-то вроде труб (кликнул один раз, кликнул в другом месте второй раз, от первой точки до второй нужно нарисовать «трубу»), для трубы используется модель вроде цилиндра. Т.е., насколько я понимаю нужно взять координаты первого клика, координаты второго клика по плоскости, узнать расстояние между точками, увеличить модель до размеров этого расстояния и повернуть её в направлении от одной точки к другой (т.к. изначально модель ориентирована по оси Z). Делаю так: // хочу увеличить «длину», для этого вычисляется расстояние между точками кликов // и делится на «длину» модели (разница макс и мин границ баундбокса) _model.scaleZ = Vector3D.distance(_p1, _p2)/(_model.boundBox.maxZ-_model.boundBox.minZ); // затем нужно ориентировать модель в направлении от первого клика ко второму _model.rotationZ = Vector3D.angleBetween(_p2, _p1); Длина модели не равна длине между точками (больше, чем нужно). «Труба» поворачивается не в сторону второй точки. Что сделано неправильно?
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. Последний раз редактировалось Srednas; 13.04.2012 в 08:13. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|