求三维坐标系下 线与面的遮挡关系 算法

yqwphome 2008-11-25 09:37:19
三维坐标系下已知 一线段起点和终点的坐标值(PFx,PFy,PFx),(PTx,PT,PTx),

一小平面面片四点坐标值(P1x,P1y,P1x),(P2x,P2y,P2x),(P3x,P3y,P3x),(P4x,P4y,P4x)

请教如何判断此线段的可见性,此时视点在原点。(面看做四条线组成的线框模型)

其实是线框模型的消隐问题,我做到判断可见性时一头雾水,不能把情况分全分好,且没有合适的算法。孙家广的图形学上有此

段内容,但是我看不懂,所以来此请教各位了,急用,不甚感激!!!
...全文
281 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
superdiablo 2008-11-26
  • 打赏
  • 举报
回复
线段(x1,y1)<->(x2,y2)与多边性的相交判断:
(1)求多边形所在平面方程。
(2)求线段所在直线。
(3)求直线与平面交点。
(4)若交点(x,y)不在线段上则证明线段与多边形不相交。判断方法:(y-y1)/x-x1)与(y-y2)/(x-x2)同号则交点不在线段上。
(5)若交点不在多边形内则证明线段与多边形不相交。判断方法:依次求多边形(ABCD)每两个相邻顶点与交点O组成的角,即角AOB,BOC,COD,DOA,然后相加,为0则点在多边形外,为360则在内。交点在多边形边上的情况可另外判断。求角度方法:设三个点为A(x1,y1) O(x0,y0), B(x2,y2),以O为原点,则三个点变为A(x1-x0,y1-y0) O(0,0), B(x2-x0,y2-y0);则可求出AOX,BOX角度,这儿X为X轴方向。从而可求出AOB角度,注意这儿求出的角度有正负,要分AB坐标情况讨论,比较复杂。
Yofoo 2008-11-26
  • 打赏
  • 举报
回复
小平面与原点构成一四角体(无限高)

可见 等效于 一线段与这四角体的相交的情况
yqwphome 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 glacier3d 的回复:]
感觉直观的求法即:先求视点与PF、PT相连的两条连线与四边形所在面的交点,然后再确定交点所连线段与四边形的相交情况。(至于线与多边性的相交判断,图形学里好像有很好算法,记不得了)
[/Quote]

线与多边性的相交判断 要的就是它啊。我在学校,翻遍很多书,只有清华孙家光老师的有一些相关内容,但是书中描述的算法很晦涩不易实现,下面有链接:

依然感谢你,至少理我了,好几天没人回复,郁闷啊~
glacier3d 2008-11-26
  • 打赏
  • 举报
回复
感觉直观的求法即:先求视点与PF、PT相连的两条连线与四边形所在面的交点,然后再确定交点所连线段与四边形的相交情况。(至于线与多边性的相交判断,图形学里好像有很好算法,记不得了)

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧