Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Матрица расчета обводки многоугольника (https://javascript.ru/forum/offtopic/54829-matrica-rascheta-obvodki-mnogougolnika.html)

khusamov 02.04.2015 15:33

Матрица расчета обводки многоугольника
 
Как насчитать матрицу преобразования длЯ вычисления обводки вокруг многоугольника?

Gozar 02.04.2015 21:49

Что-то я сомневаюсь, что вопрос решается с помощью матрицы преобразований. Разве в матрице не действует правило, что линии должны быть параллельны.

ПС: звезда тоже многоугольник.

Кстати определив угловые координаты многоугольника наверное уже можно сделать обводку, хотя если многоугольник в виде спирали, то тут уже всё не так просто. Ищи в других языках, стопудово уже кто-то решал эту задачу.

khusamov 02.04.2015 21:52

Правило паралельных линий вроде есть... но о каких линиях идет речь? Например при масштабировании или повороте.

Gozar 02.04.2015 21:59

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

http://htmlbook.ru/blog/matritsa-preobrazovanii - тут написано, что с помощью матрицы вычисляются новые координаты, но если ты знаешь координаты, то зачем тебе вычислять их, делаешь отступ и готово.

Не то, чтобы я был силен в математике... Но я не вижу очереди отвечающих.

khusamov 02.04.2015 22:56

Вот тут обсуждается вопрос.
http://dxdy.ru/topic55771.html
Правда у меня задача попроще, у меня не кривая, а многоугольник.
Плохо то, что ответа и там нет.

JsLoveR 05.04.2015 18:15

Многоугольник состоит из n-го кол-ва отрезков. Необходимо для каждого отрезка находить его нормаль на ширину нужной обводки. В местах стыка 2-х отрезков находить 2 точки, которыми они сопрягаются. Всё довольно просто.

khusamov 05.04.2015 19:34

JsLover, ну в общем-то я примерно так и представлял делать... Просто хотелось бы делать это матрицей, умножая ее на координаты вершин многоуольника.

JsLoveR 05.04.2015 21:47

А как найти точки сопряжения 2-х отрезков в таком случае? Матрица преобразования используется для перемещений, поворотов, масштабирования, остальных различных трансформаций.


Часовой пояс GMT +3, время: 01:38.