У меня есть двумерная полигональная сетка из соединенных треугольников, представленных так:
- массив вершин :
V = A, B, C, D, E, ...
- массив индексов , индексы вершин треугольников в группах по 3 против часовой стрелки:
I = 0, 4, 3,
...
(так, например, V[0], V[4], V[3]
, который A-E-D
образует треугольник)
http://img694.imageshack.us/img694/8968/meshg.png
Пример сетки
Теперь я хочу пересечь граничные точки в против часовой стрелки , начальная вершина не имеет значения:
G, H, A, D, C, F
Причина этого в том, что я хочу вычислять динамические 2D тени, как в этой статье: http://www.gamedev.net/reference/programming/features/2dsoftshadow/page3.asp
Какой лучший способ сделать это? Я думал о вычислении выпуклой оболочки, но это кажется слишком дорогим, потому что он не использует индексы вершин треугольника, должен быть лучший способ.
Есть ли способ заставить его работать даже для нескольких многоугольников в одном представлении, чтобы я получал список списков граничных точек для каждого связанного многоугольника?
Спасибо, abenthy