Как я могу получить нормальный вектор для плоскости из множества вершин?

Я работаю над небольшим проектом HLSL /C ++ для работы над моей графической работой, и я не уверен, как мне получить вектор-ориентир из многоугольника вершин. Я не могу найти формулу.

Положения P1, P2, P3

Давайте назовем их классом VertexPoint с примерами P1.x, P1.y, P1.z?

9 голосов | спросил RNewell122 26 J0000006Europe/Moscow 2017, 17:02:34

1 ответ


28

Вы можете легко найти нормаль, вычислив два вектора: V1 = P2-P1 и V2 = P3-P1, а затем найдите кросс-произведение N = V1 x V2. Затем вы нормализуете N. В зависимости от упорядочения вершин (по часовой стрелке или против часовой стрелки) вы получите нормальный вид спереди или сзади.

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

ответил Hermetix 26 J0000006Europe/Moscow 2017, 17:59:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132