已知四边形四个顶点,怎么遍历四边形内的元素

已知四边形四个顶点,如何遍历四边形内的元素
使用CxImage类对一个不规则四边形内的所有像素进行操作,有什么算法可以遍历四边形所有像素呢?

------解决方案--------------------
1,获得该四边形的Rgn
2,获得该四边形的外部Rect。
3,遍历Rect,再判断点是否在Rgn内。
------解决方案--------------------
根据四个顶点可以做出四条边的方称
然后规矩四个顶点可以做出四边形的外接矩形
然后遍历这个矩形
买个像素根据其和四条边的方程的关系可以得出他们是在四边形内还是在外
------解决方案--------------------
探讨
如何获得四个顶点的四边形方程呢?

引用:

根据四个顶点可以做出四条边的方称
然后规矩四个顶点可以做出四边形的外接矩形
然后遍历这个矩形
买个像素根据其和四条边的方程的关系可以得出他们是在四边形内还是在外

------解决方案--------------------
看看CRgn吧,画多边型。
------解决方案--------------------
1.获取该四边形4个顶点ABCD的最小横坐标xmin,最小纵坐标ymin,最大横坐标xmax,最大纵坐标ymax,然后对矩形E(xmin,ymin),F(xmax,ymin),G(xmax,ymax),H(xmin,ymax)内的点遍历。如果点在四边形ABCD内,则操作,否则跳过。
2.判定点与四边形的位置关系,可以把该四边形分割成2个三角形,然后进行分别判定。凸四边形的分割容易,有凹角的就麻烦多了。
3.判定点与三角形的位置关系。
定义:平面上的三点P1(x1,y1),P2(x2,y2),P3(x3,y3)的面积量:
|x1 x2 x3|
S(P1,P2,P3) = |y1 y2 y3| = (x1-x3)*(y2-y3) - (y1-y3)*(x2-x3)
|1 1 1 |
已知:三角形的三个顶点A,B,C,及平面上的一点P,
(1)、 若abs( S(A,B,C) ) = abs( S(P,B,C) ) + abs( S(A,P,C) ) + abs( S(A,B,P) ) ,则P在三角形ABC的内部或边上;如果还有abs( S(P,B,C) )、abs( S(A,P,C) ) 和abs( S(A,B,P) )全都大于0,则说明P在三角形ABC的内部,否则P在三角形ABC的边上,具体为:S(P,B,C)为0,则说明P在BC边上,S(A,P,C)为0,则说明P在AC边上,S(A,B,P)为0,则说明P在AB边上;
(2)、 若abs( S(A,B,C) ) < abs( S(P,B,C) ) + abs( S(A,P,C) ) + abs( S(A,B,P) ) ,则P在三角形ABC的外部;
(3)、 对abs( S(A,B,C) ) > abs( S(P,B,C) ) + abs( S(A,P,C) ) + abs( S(A,B,P) ) 的情况在理论上是不存在的;
------解决方案--------------------
探讨
我处理的是上十万像素的,用ptInRegion这个函数太慢了,我想问,有没有可以遍历四边形效率更高的算法呢,用四边形判断会比用ptInRegion效率高么??如果我处理的都是平行四边形,并且对四边形内的像素做同样的处理,有没有更有效的方法呢?

引用:

引用:
如何获得四个顶点的四边形方程呢?

引用:

根据四个顶点可以做出四条……