怎么判断一个点是否在任意绘制的不规则区域内

如何判断一个点是否在任意绘制的不规则区域内
请问自己随手绘制的不规则区域,如何判断点是否在其中?直线呢?多边形呢?请指教!!!

------解决方案--------------------
如果是多边形的话:
设想从被判断的点P向左引一条水平射线,在所有与其相交的多边形的边当中,把向上穿越该射线的与向下穿越该射线的边数相互抵消,若最终全部抵消为零则点在多边形外,否则在多边形内. 当然,要对射线刚好与一条边交在该边的顶点上这种情况特别对待.
实际实现中我用的方法是:用一个变量D记录 "净穿越 "射线的边数.顺序遍历多边形的所有边,设当前遍历到的边的顶点为P1、P2(P1在前P2在后), 则将D的值累加上:sgn(P1.y-P.y)+sgn(P.y-P2.y),到最后看D的值是否为零,为零则在多边形外,否则在其内。 这样也不用区别对待射线经过顶点的情况了。

如果是任意区域嘛,总可以用多边形近似的。
------解决方案--------------------
SGN是符号函数:sgn(x)= 1,x> 0 ; -1,x <0; 0,x=0.
------解决方案--------------------
http://faq.lvjiyong.com/item/8452/

历史上这个问题讨论很多次了的,搜索也可以找到的
------解决方案--------------------
以这个点做2条垂直的直线 如果2条直线都和多边形相交 那就KO