页数:12页文件大小:113.0 KB来源: 计算机图形学ppt课件
本课件围绕图形求交问题展开:先用向量参数方程求解空间两条直线段的交点并讨论无解判别,再给出平面上两线段求交的联立解法,随后推导线段与平面求交的点乘形式,最后介绍用交点计数法判定点是否位于凹多边形甚至带孔多边形内部。
计算机图形学讲义 第2章 基本图形的生成与计算—图形求交
主要内容
假设两条直线的端点分别为 P1、P2 和 Q1、Q2,则直线可以用向量形式表示为:
P(t) = A + Bt,0≤t≤1 Q(s) = C + Ds,0≤s≤1
其中,A = P1,B = P2 − P1,C = Q1,D = Q2 − Q1。构造方程 A + Bt = C + Ds(2.9)
对三维空间中的直线段来说,上述方程组实际上是一个二元一次方程组,由 3 个方程式组成。可以从其中两个解出 s、t,再用第三个验证解的有效性。当所得的解 (ti, si) 是有效解时,可用两个方程之一计算交点坐标。
根据向量的基本性质,可直接计算 s 与 t。对方程(2.9)两边构造点积得:
(C×D)·(A + Bt) = (C×D)·(C + Ds)
由于 C×D 同时垂直于 C 和 D,等式右边为 0。故有类似地可求出另一参数。
2. 求平面上两线段的交点
3. 求直线段与平面的交点
把平面上的点表示为 P(u,w) = A + uB + wC,即:x = a1 + u*b1 + w*c1;y = a2 + u*b1 + w*c1;z = a1 + u*b1 + w*c1。直线段上的点表示为 Q(t) = D + tE。
假设线段不平行于平面,则它们交于 R = P(u,w) = Q(t),即 A + uB + wC = D + tE。
等式两边点乘 (B×C),得:(B×C)·(A + uB + wC) = (B×C)·(D + tE)
由于 B×C 既垂直于 B,又垂直于 C,故有:(B×C)·A = (B×C)·(D + tE),可解出参数。如果无交点,则该式不成立。
4. 判断点是否在多边形内
当多边形是凹多边形,甚至还带孔时,可采用交点计数法判断点是否在多边形内。具体做法是,从判断点作一射线至无穷远:若交点个数为奇数,则点在多边形内;否则,点在多边形外。
5 计算实例
作业
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}