游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2580|回复: 9

怎么判断两个face是否相交?

[复制链接]

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2006-11-26 12:51:00 | 显示全部楼层 |阅读模式
rt

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2006-11-26 14:23:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

法线夹角正旋值为1

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
 楼主| 发表于 2006-11-26 14:52:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

什么意思?

48

主题

155

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
发表于 2006-11-26 15:07:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

不知道你所谓的Face是多边形面片呢?

还是数学意义上plane.

数学意义上的,只要法线不平行,就一定相交.除非两个面重合!
至于多边形面片,判断要复杂得多,具体我也不是很清楚哦!

<计算机图形学几何工具算法详解>这本书有讲解.推荐看下!

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
 楼主| 发表于 2006-11-26 15:31:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

我是说三角形

3

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
QQ
发表于 2006-11-26 15:35:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

对于两个三角形来讲,可以首先排除六个点共面的情况,然后问题就可以简化为三角形的三个端点构成的三条线段与另一个三角形构成的面是否相交的问题.这类算法比较简单,很多3D引擎里都有,无外乎判断点积或叉积的值而已.

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
 楼主| 发表于 2006-11-26 19:41:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

for example?

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-11-27 11:05:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

伪代码:
bool PolygonIntersectCheck( Polygon g1, Polygon g2 )
{
       if ( g1.normal == g2.normal || g1.normal == -g2.normal )
           return false;
       int nfront = 0, nback = 0, ndistnce;
       for ( i = 0; i < g2.nVerNum; ++i )
       {
           ndistnce = DotProduct( g1.normal, g2.ver );
           if ( ndistnce >= -g1.distance )
        nfront++;
           if ( ndistnce <= -g1.distance )
        nback++;
       }
       if ( nfront && nback )
          return true;
       return false;
}
注意 float epsilon.

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
 楼主| 发表于 2006-11-27 13:12:00 | 显示全部楼层

Re:怎么判断两个face是否相交?

g1.distance

DotProduct
是什么意思?

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2006-11-27 19:48:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 23:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表