浏览量:189

4.1. 三角形简介

本篇文章禁止用于任何商业目的,版权申明、版本说明等见《前言》。

PDF文档和源码下载地址:https://github.com/twinklingstar20/Programmers_Computational_Geometry

4.1. 三角形简介

三角形面片,在图形学上有非常重要的应用,很多三维模型都是以三角形面片为基础图元。

在二维空间上,给定一个三角形\(T:\Delta {V_0}{V_1}{V_2}\),三角形的有符号面积可以表示为:

\[{\mathop{\rm Area}\nolimits} (T) = \frac{1}{2}({V_1} – {V_0}) \times ({V_2} – {V_0}) \tag{4.1}\]

2015-3-23 1-17-22

图4.1 逆时针朝向的三角形\(\Delta {V_0}{V_1}{V_2}\)和边\(\overline {{V_0}{V_1}} \)的法向量

三角形顶点顺序影响\({\mathop{\rm Area}\nolimits} (T) = \frac{1}{2}({V_1} – {V_0}) \times ({V_2} – {V_0})\)的正负,\(\left| {{\mathop{\rm Area}\nolimits} (T)} \right|\)表示三角形面积的大小。如果\({\mathop{\rm Area}\nolimits} (T) \succ 0\),说明\(\Delta T\)是逆时针顺序的;如果\({\mathop{\rm Area}\nolimits} (T) \prec 0\),说明是顺时针顺序的;如果\({\mathop{\rm Area}\nolimits} (T) = 0\),说明三个顶点共线,三角形是退化情况。在与三角形相关的算法中,需要特别注意三角形的顶点顺序,例如三角形\(T\)的一条边是\({e_0} = {V_1} – {V_0} = ({e_x},{e_y})\),若三角形是逆时针方向的,则由三角形内部指向外部的法向量是\({\vec n_0} = ({e_y}, – {e_x})\),如图4.1所示,否则,\({\vec n_1} = ( – {e_y},{e_x})\)。再举个例子,三角形的边\(\overline {{V_0}{V_1}} \)所在的直线,把平面分成两个半空间,现在需要判断点\(P\)与三角形上的顶点\({V_2}\)是否在同一侧,设三角形是逆时针方向的,令\(d = ({V_1} – {V_0}) \times (P – {V_0})\),如果\(d \prec 0\),则点\(P\)与顶点\({V_2}\)在不同侧;如果\(d \succ 0\),则两点在同侧。但是,如果三角形是顺时针方向的话,得到的结果是相反的,即若\(d \prec 0\),则两点在同侧,若\(d \succ 0\),则两点在不同侧。

在三维空间上,给定一个三角形\(T:\Delta {V_0}{V_1}{V_2}\),三角形的面积大小为:

\[{\mathop{\rm Area}\nolimits} (T) = \frac{1}{2}\left\| {({V_1} – {V_0}) \times ({V_2} – {V_0})} \right\| \tag{4.2}\]

三点可以确定一个平面,平面的法向量为:

\[\vec n = ({V_1} – {V_0}) \times ({V_2} – {V_0}) \tag{4.3}\]

2015-3-23 1-17-35

图4.2 三维空间上的\(\Delta {V_0}{V_1}{V_2}\)和法向量\(\vec n\)

顶点的顺序影响法向量的方向,遵守右手法则,如图4.2所示。若三个点共线,那么计算出来的面积\({\mathop{\rm Area}\nolimits} (T) = 0\),法向量\(\vec n\)是一个零向量。

 

spacer

Leave a reply