- 积分
- 7
- 注册时间
- 2010-12-29
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2012-7-30 10:23:04
|
显示全部楼层
来自 北京
自己顶一下
刚才找到一种方法:如何判定一个空间点在四面体内部?
假定四面体的四个顶点为:
V1 = (x1, y1, z1) V2 = (x2, y2, z2) V3 = (x3, y3, z3) V4 = (x4, y4, z4)
你测试的空间点为:
P = (x, y, z)
如果下面的5个行列式有相同的符号,则点P在四面体内:
|x1 y1 z1 1|
D0 = |x2 y2 z2 1|
|x3 y3 z3 1|
|x4 y4 z4 1|
|x y z 1|
D1 = |x2 y2 z2 1|
|x3 y3 z3 1|
|x4 y4 z4 1|
|x1 y1 z1 1|
D2 = |x y z 1|
|x3 y3 z3 1|
|x4 y4 z4 1|
|x1 y1 z1 1|
D3 = |x2 y2 z2 1|
|x y z 1|
|x4 y4 z4 1|
|x1 y1 z1 1|
D4 = |x2 y2 z2 1|
|x3 y3 z3 1|
|x y z 1|
需要注意的一些情况:
如果正好 D0=0, 则该四面体是退化的四面体(比如退化成三角形,此时四点共面)。
如果 Di=0(i 不等于0),则P位于四面体的边界面i上 (边界面i是指和Vi相对应的其它三个顶点形成的面)。
如果Di的符号和D0不同,则Di位于边界面i的外边。
如果所有Di的符号都和D0相同,则P 位于边界面i之内(在四个边界面内,就是在四面体之内)。
等式D0 = D1+D2+D3+D4成立。
这个公式能够扩展到任何维的单纯形 (在2D情况下是三角形,在3D情况下是四面体)。
注意:bi = Di/D0 就是通常的重心坐标。
注意:比较Di 和D0的符号仅是判定P和Vi是否在边界面i的同一边。 |
|