|
Поворот прямоугольника с изменением центра поворота. | ☑ | ||
---|---|---|---|---|
0
DGorgoN
16.11.11
✎
12:50
|
Есть прямоугольник с заданными координатами xy, длина и ширина допустим х1 и у1. Прямоугольник можно повернуть, но ось поворота всегда 1 - точка ху.
Ломаю голову как можно сдвинуть центр вращения на произвольную точку. |
|||
1
Ненавижу 1С
гуру
16.11.11
✎
12:51
|
а теперь более внятно
|
|||
2
DGorgoN
16.11.11
✎
12:51
|
Хотя вроде делал раньше, просто формулу не помню..
|
|||
3
sda553
16.11.11
✎
12:52
|
Углы прямоугольника задаем векторами. Матрица поворота на вектора и ответ. Геометрию надо было учить аналитическую
|
|||
4
sda553
16.11.11
✎
12:52
|
||||
5
DGorgoN
16.11.11
✎
12:53
|
(3) Проблема в том что он уже есть готовый, это обьект. Если он точками был бы представлен то без проблем
|
|||
6
sda553
16.11.11
✎
12:53
|
Из объекта вычисли точки
|
|||
7
1Сергей
16.11.11
✎
12:54
|
Скольки-мерное пространство?
|
|||
8
Ненавижу 1С
гуру
16.11.11
✎
12:54
|
я так понял на (1) тупо забили
|
|||
9
sda553
16.11.11
✎
12:55
|
Я телепат: у ТС программа компьютерная описывает объект заданный координатами одного из углов, длиной и шириной. ТС спрашивает как получить новый объект путем поворота старого вокруг произвольной оси
|
|||
10
DGorgoN
16.11.11
✎
12:57
|
(9) Еще объекту можно только задавать координаты и угол поворота с центром xy.
Вот именно что грамотно сформулировать вопрос не могу - думаю если б сформулировал грамотно сам бы ответ нашел =) |
|||
11
DGorgoN
16.11.11
✎
12:58
|
Грубо говоря взяли лист А4 бумаги. Мы можем его повертеть взявшись за один из углов. Как можно сделать так что бы можно было его виртуально проткнуть и крутить уже вокруг этой оси..
|
|||
12
1Сергей
16.11.11
✎
12:59
|
(9) если так. то, ему нужно тупо просчтать координаты точки при повороте:
x1=смещениеХ+(x1-смещениеХ)*cos(Угол)-(смещениеУ-y1)*sin(Угол); y1=смещениеУ+(x1-смещениеХ)*sin(Угол)+(y1-смещениеУ)*cos(Угол); |
|||
13
1Сергей
16.11.11
✎
13:00
|
пардон.
x1=смещениеХ+(x1-смещениеХ)*cos(Угол)+(смещениеУ-y1)*sin(Угол); // Не минус, а плюс в середине |
|||
14
sda553
16.11.11
✎
13:00
|
(12) Нет не так, тебе надо расчитать координаты ВСЕХ 4 углов относительно точки вращения (а не относительно начала координат) и применить это преобразование ко всем 4-м координатам
|
|||
15
ptiz
16.11.11
✎
13:01
|
Каждый угол - точка.
Получаем координаты точки в новой системе координат (где проткнули), поворачиваем, сдвигаем координаты к исходным. |
|||
16
1Сергей
16.11.11
✎
13:01
|
(14) тупо повернуть каждую точку не канает? Я специально написал смещения
|
|||
17
sda553
16.11.11
✎
13:02
|
(16) Да, вроде ошибок нет, можно и так
|
|||
18
sda553
16.11.11
✎
13:03
|
(17) Но ты конечно понимаешь, что во втором выражении в программе надо использовать старое значение x1
|
|||
19
1Сергей
16.11.11
✎
13:04
|
(18) верное замечание
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |