怎么计算出一点是非在一个三角形内,上和外
知道三角形的三顶点和这个点的x,y坐标,用什么方法计算,要求高效!
大家给几个思路吧
问题点数:100、回复次数:12Top
1 楼alphapaopao(炮炮)回复于 2004-08-03 20:24:33 得分 10
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=32704
要学会查资料Top
2 楼lixiaosan(小三)回复于 2004-08-03 20:37:04 得分 10
http://bbs.chinagamedev.net/showthread.php?s=a434cbbe761f154b69b42a60767041aa&t=6783Top
3 楼nlstone(天外流星)回复于 2004-08-03 20:50:13 得分 10
什么啊,这好像是我当年第一次复试时做过的上机题:(
对上机实现而言,用CRgn判最简单Top
4 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-08-04 11:32:36 得分 10
判断是否在内用CRgn是否在上用数学的方法了,通过三角形三条边的点斜式方程判断点是否在直线上,上述两种情况能判断了,是否在三角形外了也就解决了。Top
5 楼LocalVar(分乃身外之物,即使我回答对了,也别给分)回复于 2004-08-04 11:39:59 得分 10
算法如下,自己优化
增加一个明显位于多边形外的点B,假设你的点是A,则做一条连接AB的线段,计算这条线段与多边形的几条边相交,奇数则点位于多边形内或多边形上(你应该知道如何判断内和上吧),偶数位于多边形外Top
6 楼alphapaopao(炮炮)回复于 2004-08-04 12:01:23 得分 10
楼上的那个速度太慢。
FAQ里面的还有 NEHE 里面的算法比较快。Top
7 楼johnshao(笨笨)回复于 2004-08-04 12:09:19 得分 10
将三角形作为多边形来处理Top
8 楼simouse()回复于 2004-08-04 13:10:48 得分 5
NEHE是什么Top
9 楼syy64(太平洋)回复于 2004-08-04 19:16:51 得分 10
http://community.csdn.net/Expert/topic/3208/3208637.xml?temp=.1932947Top
10 楼wongflying(网飞飞)回复于 2004-08-04 20:10:01 得分 10
该点p依次和三角形的三顶点p1、p2、p3求夹角,注意必须按照一定的顺序(顺时针或者逆时针),求出来最大的夹角大于180,则在外,等于180,在边上,小于180,则在里面。Top
11 楼clshan(Matrix)回复于 2004-08-05 08:37:01 得分 0
能不能不用角度去算,效率太低Top
12 楼alphapaopao(炮炮)回复于 2004-08-05 09:57:24 得分 5
又找到一篇 http://bbs.chinagamedev.net/archive/index.php/t-5556.html
可能是比较优良的算法。Top




