计算几何——认识基本object:点、线、面 。

认识基本object:点、线、面 

 

一、点

点用P(x, y)来表示;如:

1 typedef pair<double, double> _pair;
2 _pair point[MAXN];

 

二、线

  ①两点式

    L:  (y- y1)/ (y2- y1)= (x- x1)/ (x2- x1).

    需要条件:用于已知两点坐标的情况。P1(x1, y1); P2(x2, y2);

    在使用上几乎没有什么缺点。

1 typedef pair<double, double> _pair;
2 _pair point[MAXN];
3 typedef pair<_pair, _pair> _line;
4 /*两点确定一条直线; _pair P1; _pair P2;*/
5 _line Line[MAXN];

 

  ②斜截式

    L:  y= kx+ b;

    需要条件:用于已知斜率和y轴截距。k; b;

    优点:能够简单 快速&直观 的推出关系式,如计算两条直线交点。

    缺点:一些特殊情况不适用,如当k 不存在时。

  ③点斜式

    L:  y- y1= k(x- x1);

    需要条件:用于已知斜率和一点坐标的情况。k; P1(x1, y1); 

    缺点:同样依赖于斜率,当斜率不存在时不适用。

  ④截距式

    L: (x/ a)+ (y/ b)= 1;

    需要条件:用于已知所有截距的情况。x轴截距a; y轴截距b;

  ⑤一般式

    L: ax+ by+ c= 0;

    缺点:除了求交点或点到直线距离,其他方面都是缺点。不推荐使用。

 

三、面

  1、圆

    用圆心O(x, y)和半径R 来表示  

1 typedef pair<double, double> _pair;
2 _pair point[MAXN];
3 typedef pair<_pair, double> _round;
4 /*圆心_pair O; 半径double R*/
5 _round Round[MAXN];

 

  2、半平面 (待填)

    用一个向量来表示 半平面,向量逆时针的方向为半平面的内部。 

1 typedef pair<double, double> _pair;
2 typedef pair<_pair, _pair> _line;
3 /*确定一条向量;  向量OP:_pair O; _pair P;*/

 

Ps:平面内的一条直线把这个平面分成两部分,每一部分对这个平面来说,都叫做半平面。包括这条直线的半平面叫做闭半平面,否则叫做开半平面。

Ps: 一般的,我们默认向量的逆时针方向为半平面的内部。上图中即为向量的左半平面。

 

 

 

 

end;

 

posted @ 2019-04-20 22:15  egoist的翻绳游戏  阅读(514)  评论(0编辑  收藏  举报