认识基本object:点、线、面 

一、点

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

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

二、线

  ①两点式

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

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

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

 typedef pair<double, double> _pair;
_pair point[MAXN];
typedef pair<_pair, _pair> _line;
/*两点确定一条直线; _pair P1; _pair P2;*/
_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 来表示  

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

  2、半平面 (待填)

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

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

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

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

end;

计算几何——认识基本object:点、线、面 。的更多相关文章

  1. 【BZOJ】1610: [Usaco2008 Feb]Line连线游戏(几何)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1610 两种做法,一种计算几何,一种解析几何,但是计算几何的复杂度远远搞出解析集合(虽然精度最高) 计 ...

  2. [模板] 计算几何2: 自适应Simpson/凸包/半平面交/旋转卡壳/闵可夫斯基和

    一些基本的定义在这里: [模板] 计算几何1(基础): 点/向量/线/圆/多边形/其他运算 自适应Simpson Simpson's Rule: \[ \int ^b_a f(x)dx\approx ...

  3. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  4. HDOJ 题目分类

    HDOJ 题目分类 /* * 一:简单题 */ 1000:    入门用:1001:    用高斯求和公式要防溢出1004:1012:1013:    对9取余好了1017:1021:1027:   ...

  5. 火币Huobi API

    本文介绍火币Huobi API REST API 简介 火币为用户提供了一套全新的API,可以帮用户快速接入火币PRO站及HADAX站的交易系统,实现程序化交易. 访问地址 适用站点 适用功能 适用交 ...

  6. iOS开发 - 多线程实现方案之NSThread篇

    NSThread API //类方法:创建一个线程 + (void)detachNewThreadWithBlock:(void (^)(void))block API_AVAILABLE(macos ...

  7. JAVA中this和super用法

    参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...

  8. js创世纪--刨根问底原型和原型链

    原型和原型链 看图说话: 1.对象内部具有[[Prototype]]属性,该属性不可直接访问,浏览器通过__proto__(两条'_')可以让用户读写该内部属性,最重要的是,该属性指向创建本对象的原型 ...

  9. hdu 4643 GSM 计算几何 - 点线关系

    /* hdu 4643 GSM 计算几何 - 点线关系 N个城市,任意两个城市之间都有沿他们之间直线的铁路 M个基站 问从城市A到城市B需要切换几次基站 当从基站a切换到基站b时,切换的地点就是ab的 ...

随机推荐

  1. Oracle11g for CentOS6-*

    lsnrctl startsqlplus /nologstartup

  2. IDC 内网机器 通 过 iptables SNAT上网的配置方法

    有三台机器, A .B .C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网. 假设A机器 外网IP为: 60.12.13.14  内网IP为: 192.168. ...

  3. 我的周记6——"不破楼兰誓不还“

    周6 2019-06-13  天气:雨 这张照片是我那天中午回家的时候拍的,下着中雨.这是谁的孩子,又是谁的妈妈.看到这样的场景心里还是蛮有触动的, 因为我现在是离家千里的孩子,思念着故乡也想念着亲人 ...

  4. 利用OneDNS同步chrome数据

    将DNS服务器改成OneDNS的 117.50.11.11 备用改为 117.50.22.22 然后刷新自己的DNS缓存,接着测试一下https://test.onedns.net即可 这样既可以正常 ...

  5. [BZOJ1382]Mars Maps

    Description In the year 2051, several Mars expeditions have explored different areas of the red plan ...

  6. 计算机视觉-SIFT特征匹配进行目标转换

    Lowe将SIFT算法分解为如下四步: 1. 尺度空间极值检测:搜索所有尺度上的图像位置.通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点. 关键点定位:在每个候选的位置上,通过一个拟合精细的模 ...

  7. JSON(2)JSONObject解析Josn和创建Jsonf示例

    1.解析Json /* * test.josn内容如下: { "languages":[ {"id":"1","name" ...

  8. windows 迁移数据库

    1) Prerequisites    ---------------- - The copy of the datafiles must be done with the database clos ...

  9. (五)SpringIoc之Bean的作用域

    此文转自 https://blog.csdn.net/icarus_wang/article/details/51586776# 有状态bean和无状态bean请看 https://blog.csdn ...

  10. java 之冒泡排序

    冒泡排序:可以想象成煮开水,气泡在瓶底的时候是比较小的,到达水面的时候达到最大. 冒泡排序的思想:先确定是升序还是降序,这里升序为例.每两个相邻的数字进行比较,前一个数字比后面一个数字大,就将两个数字 ...