首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

高分求大神解答!该怎么解决

2012-10-12 
高分求大神解答!如图所示:X轴的正方向向右,Y轴的正方向朝下。从终点 A 按照顺时针方向,如果点 C 位于直线BA

高分求大神解答!


如图所示: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 |

这样写应该就看的清楚了。

热点排行