2012-05-09 3 views
0

Я хочу повернуть прямоугольники на прямоугольник центральной точки.Вращение координаты прямоугольника

Например, у меня есть сетка размера прямоугольников 41 х 21

Так что мой центр прямоугольник 20 х 10

Теперь я хочу повернуть 22 х 14 до 90 градусов по центральному прямоугольнику.

Что будет формула для поворота 22 х 14.

любая помощь будет большим.

ответ

0

Как правило, проецируйте ячейки на плоскость, затем используйте rotation matrix, а затем проецируйте их обратно в сетку. Для этого примера его избыток, но работает, тем не менее.


Вы должны установить происхождение быть (21,11) не (0,0), поэтому первым перевести ваших очки

[x'] := [x - 21] 
[y'] [y - 11] 

Затем применить матрицу преобразование вращения (обратите внимание, что я предполагая традиционное направление осей)

[x''] := [ cos(-Pi/2) -sin(-Pi/2) ][x']  = [ y'] 
[y''] [ sin(-Pi/2) cos(-Pi/2) ][y']   [-x'] 

Затем не переводите происхождение. Поскольку ваш самолет не был квадратным, результирующая повернутая плоскость имеет другую форму (она измеряет 21x41 с началом 11,21). Я предположил, что это то, что вы хотели, и вы не хотели, чтобы точки могли «упасть» с самолета.

[x'''] := [x'' + 11] 
[y'''] [y'' + 21] 

Упрощая алгебра, это сводится к карте

[x] -> [ y ] 
[y]  [42-x] 

Ответ

(22,14) поворачивается (14,20)


Примечание: подсчитывая от 1, я делаю центр 41x21 как 21x11, а не 20x10?

+0

Спасибо Джеймс, посмотрите на сетку это 7,7 сетки с центральной точкой 3,3 6,0 \t 6,1 \t 6,2 \t 6,3 \t 6,4 \t 6,5 \t 6,6 5,0 \t \t 5,1 5,2 5,3 \t \t \t 5,4 5,5 5,6 \t \t 4,0 4,1 4,2 \t \t 4,3 \t 4,4 \t 4, 5 \t 4,6 3,0 \t 3,1 \t 3,2 \t 3, \t 3,4 3 \t \t 3,5 3,6 2,0 \t \t 2,1 2,2 2,3 \t \t 2,4 \t 2,5 \t 2,6 1,0 1,1 \t \t 1,2 \t 1,3 \t 1,4 \t 1,5 \t 1,6 0,0 \t 0,1 \t 0,2 \t 0,3 \t 0,4 \t 0,5 \t 0,6 90 степень Центральная точка = 3,3 4,3 >> 3,4 >> 2,3 >> 3,2 5,3 >> 3,5 >> 1,3 >> 3,1 6,3 >> 3,6 >> 0,3 >> 3,0 Какая будет формула, если мы хотим повернуть 90 градусов каждая коробка – Mudaser

+0

'(x, y) -> (y, 7-x)' –

+0

- та же самая формула может применяться под разными углами, например 7,20 или 190? –

Смежные вопросы