Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Fregloin от Октябрь 28, 2013, 13:46



Название: Вращение элемента сцены относительно произвольной точки
Отправлено: Fregloin от Октябрь 28, 2013, 13:46
Привет. Нужно реализовать вращение элемента относительно точки.
Казалось бы просто задать setTransformOriginPoint() и проблема решена.

Допустим есть у меня полигон - несколько точек, которые соеденены между собой. Нужно вращать вокруг выделенной точки.
Т.е. в первый раз все работает, получил координаты выделенной точки, и вращаю. Далее нужно выделить другую точку - и все, координаты смещаются.
Я так понимаю что нужно задействовать матрицы преобразования, но не могу найти нормальное описание, как их использовать в данном случае.


Название: Re: Вращение элемента сцены относительно произвольной точки
Отправлено: Fregloin от Октябрь 28, 2013, 16:39
Может быть картинки прояснят суть дела.

Есть полигон с якорями. Нужно вращать относительно выделеного якоря. В первый раз при 0 повороте получается вылеить якорь и вращать вокруг него.
После вращения его уже не получается нормально выделить так как его координаты уже не в той матрице, в которой поступают от сцены.
Не могу разобраться, подскажите пожалуйста.


Название: Re: Вращение элемента сцены относительно произвольной точки
Отправлено: _OLEGator_ от Октябрь 28, 2013, 16:49
Ты не картинки заливай, ты код показывай, как обрабатываешь нажатие.
Скорее всего у тебя не хватает перевода в систему координат элемента (mapTo*, mapFrom*)