高分求大神解答!
如图所示:X轴的正方向向右,Y轴的正方向朝下。从终点 A 按照顺时针方向,如果点 C 位于直线BA的 0 – 180 度之间那么就认为点 C 位于直线BA的右侧,如果点C位于直线BA的 180 – 360度之间就认为点C在直线BA的左边。
我想问的是:如何根据给出的A 、B、C 三点的坐标判断出点C,位于直线BA的左侧还是右侧?
能贴出代码最好。急
[解决办法]
对于平面上的3点(坐标系是X向右,Y向上的)A(x1,y1),B(x1,y1),C(x1,y1),定义:
|x1 x2 x3|
S(A,B,C) = |y1 y2 y3| = (x1-x3)*(y2-y3) - (x2-x3)*(y1-y3)
|1 1 1 |
则有,当ABC为逆时针方向的,S(A,B,C)为正数;当ABC为顺时针方向的,S(A,B,C)为负数;当ABC为三点共线的,S(A,B,C)为0;
楼主的Y坐标轴是向下的,跟以上的结论相反就行了。
[解决办法]
回复4楼,是行列式,因为CSDN显示的问题,前面的空格都被缩进了,一直都有这样的问题。
S(A,B,C) =
|x1 x2 x3|
|y1 y2 y3| = (x1-x3)*(y2-y3) - (x2-x3)*(y1-y3)
| 1 1 1 |
这样写应该就看的清楚了。