您的位置:程序门 -> vc/mfc -> 图形处理/算法



可以利用gdi+判断一条直线是否穿过一个多边形?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


可以利用gdi+判断一条直线是否穿过一个多边形?[已结贴,结贴人:ek78986]
发表于:2007-01-26 18:50:02 楼主
可以利用gdi+判断一条直线是否穿过一个多边形?
发表于:2007-01-28 10:17:011楼 得分:1
gdi+中提供了判断一点是否位于多边形的函数,利用该函数应该可以判断一条直线是否穿过一个多边形.
发表于:2007-01-29 08:59:182楼 得分:17
判断是否有多边形顶点在直线上或是多边形的某条边的两个顶点在直线的两侧的情况
发表于:2007-01-29 09:51:543楼 得分:0
redangel001()   你说的这个函数我知道   但是我觉得如果这样做将会很麻烦
pointf*   m_polygonpoint;//假设这是一个4边形的顶点坐标
//   创建多边形的路径
graphicspath   layoutpointpath;
//   将多边形的顶点加入到路径中
layoutpointpatha.addpolygon(m_polygonpoint,4);
//   假设m_linepoint是我在直线通过for循环取出的点
//   判断直线的每个点是否在多边形以内
if(layoutpointpath.isvisible(m_linepoint,   &graphics))
{
        return   true;
}
else
{
        return   false;
}
发表于:2007-01-29 09:52:264楼 得分:0
hunton(追求完美)  
能否说的详细一些
发表于:2007-01-29 13:19:115楼 得分:0
不是吧,这还看不明白吗?原理就是一条直线要是要穿过一个多边形,必然就要和该多边形的至少一边相交啊
发表于:2007-01-30 09:00:386楼 得分:1
呵呵   兄弟   是不是做智能连接线需要这个东西
发表于:2007-01-30 15:52:547楼 得分:1
啥叫   智能连接线   ?????
连连看么?呵呵;

我觉得这个问题始终都要牵扯到这个多边形是否是凸多边形吧?如果是凹多边形可能还会麻烦一点。。。

发表于:2007-01-31 10:19:218楼 得分:0
不管是凹凸   只要相交就是穿过   干吗非要用gdi+
发表于:2007-01-31 11:17:449楼 得分:0
哈哈   怎样判断两条直线相交算法不会
//   ab两条直线
//   asp   aep为a直线起点和终点坐标
//   bsp   bep为b直线起点和终点坐标
//   如果((asp.x-bsp.x)(aep.x-bep.x)) <0且((asp.y-bsp.y)(aep.y-bep.y)) <0       那么直线a,b相交。
这样计算对?
发表于:2007-01-31 11:18:5310楼 得分:0
是涉及到凹凸面的多边形   还有圆形
发表于:2007-01-31 13:20:0811楼 得分:0
判断点ab是否在直线cd两侧的方法如下:
设平面上3点p1(x1,y1),p2(x2,y2),p3(x3,y3),
令s(p1,p2,p3)   =   (x1-x3)*(y2-y3)   -   (y1-y3)*(x2-x3)

如果s(a,c,d)=0,则点a在直线cd上;如果s(d,c,b)=0,则点b在直线cd上;如果s(a,c,d)与s(d,c,b)均不为0,且同号,则ab在直线cd的异侧,否则ab在直线cd的同侧
发表于:2007-01-31 14:01:5512楼 得分:0
感谢大家的帮忙


快速检索

最新资讯
热门点击