|
|
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
Прошу помощи вот в каком вопросе. вот что дано. 2d плоскость. есть два квадрата с центром в одной точке координаты которой х и у у каждого из квадротов помима х и у есть смещение offset на которое надо приозвести смещение отностиельно х и у соответвенно у одно квадрата значение будет offset_х1=0 и offset_у1=0 и для другого offset_х2,offset_у2 так же есть угол поворота на который нужно повернуть квадраты альфа вопрос. как имея приведенные данные вычеслить offset_х2,offset_у2 для второго квадрата с учетом поворота? offset_х2=? offset_у2=? для примера если offset_х2=1 offset_у2=1 offset_х1=0 offset_у1=0 альфе = 0 получится одни квадрат над другим как сделать это для 45 градусов например я не знаю буду рад ссылками,ответам, формулами и клчевым словам по которым вести поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 13:14 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
Игорь Сирохин, Смотрите "матрица поворота", сдвиг. Еще не хватает координат точки, относительно которой поворачиваем. Не понятно, какие данные у Вас есть, и что Вы хотите найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 13:29 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
x1ca4064, есть offset_х_первого кдадрата offset_у_первого квадрата х у альфа найти offset_х2 offset_у2 относительно первого с учетом поворота ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 13:42 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
x1ca4064, как выполнить именно сам поворот квадрата нашел а вот со здвигом сложности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 13:45 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю что считать надо через вектор с координатами 0 0 и х и у ? normal = Math.sqrt((x2)*(x2)+(y2)*(y2)); unit_axis.x = (x2) / normal; unit_axis.y = (y2) / normal; unit_axis.x *= inc; unit_axis.y *= inc; x += unit_axis.x; y += unit_axis.y; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 14:21 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
Игорь Сирохинправильно ли я понимаю что считать надо через вектор с координатами 0 0 и х и у ? normal = Math.sqrt((x2)*(x2)+(y2)*(y2)); unit_axis.x = (x2) / normal; unit_axis.y = (y2) / normal; unit_axis.x *= inc; unit_axis.y *= inc; x += unit_axis.x; y += unit_axis.y; Содержиоме кода, это вычисление каких-то sin и cos, зачем они Вам? Опишите Вашу задачу в изначальном виде, писать код еще рановато. Без потери общности, можно принять, что центр квадратов находится в точке (0,0). Что Вам необходимо сделать с ними. Как Вы используете информацию, о том, что это квадраты, а не параллерограммы, например. Может, Вам необходимо вычислить новые координаты вершин квадратов? - тогда необходимы данные о длине их сторон, последовательности операций (поворот+сдвиг или наоборот), координаты точки, относительно которой поворачиваем. После правильной формулировки, решение будет тривиальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 19:15 |
|
||
|
Сдвиг после поворота
|
|||
|---|---|---|---|
|
#18+
Игорь Сирохинесть два квадрата с центром в одной точке координаты которой х и у т.е.? мб, х у них не одинаковые, а у разные(исходя из рисунка)? 1) углы поворотов квадратов будут одинаковые независимо от этого угла. т.е. 2 квадрат нужно повернуть на такой же угол, что и первый. 2) правильно ли я понял, что вам известно расстояние от центра(угла, стороны) 1 квадрата до другого? и после перемещения расстояние должно сохраниться? тогда координаты х 2 квадарта будут равны расстоянию между квадратами изначально(при совпадении у) умножить на синус угла поворота координаты у 2 квадрата будут равны расстоянию между квадратами изначально(при совпадении у) умножить на косинус угла поворота ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 21:45 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37681129&tid=1342410]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 473ms |

| 0 / 0 |
