Я пытаюсь программно генерировать скошенные ребра для 2D-полигонов. Например, учитывая массив из 4 вершин, определяющих квадрат, я хочу сгенерировать что-то вроде этого:
_________
|\ _____ /|
| | | |
| | | |
| |_____| |
|/_______\|
Но вычисление вершин внутренней формы сбивает меня с толку.
Простое создание копии исходной фигуры и ее уменьшение не будет работать в общем случае. (Представьте себе, что вы пытаетесь наклонить N-образный многоугольник таким образом.)
Мой алгоритм до сих пор включает анализ смежных ребер (тройки вершин; например, левый нижний, верхний левый и верхний правый вершины квадрата). Оттуда мне нужно найти угол между ними, а затем создать вершину где-нибудь вдоль этого угла, в зависимости от того, насколько я хочу, чтобы скос был.
И так как у меня мало математического фона, я застрял здесь. Как мне найти этот центральный угол? Или есть гораздо более простой способ решения этой проблемы?