判断一个点是否在pie生成的扇形中解决思路

判断一个点是否在pie生成的扇形中
判断一个点是否在pie生成的扇形中,我绘制了一个饼型图,希望鼠标点击在饼中的某个扇形中

------解决方案--------------------
扇形分割成三角形和冠顶部分,分成两块判别。设圆心为O,扇形边的顶点为A和B,要判别的点为P。
一、判别点P与三角形OAB的位置关系
定义:平面上的三点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) ) 的情况在理论上是不存在的;

------解决方案--------------------
计算点与圆心的距离 先判断距离
再计算当前点与圆心的角度, 是否在扇形角度范围
------解决方案--------------------
下载我的“PieHasTT.zip”(0)分:
http://download.csdn.net/detail/schlafenhamster/2736109