认识基本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. linq to EF分组查询 group by 的使用

    第一种:查询表达式语法: IQueryable<EnrollmentDateGroup> data = from student in db.Students group student ...

  2. SpringMVC数据绑定四(自定义的类型转换器)

    1.PropertyEditor 继承PropertyEditorSupport //controller @Controller public class TestController extend ...

  3. ubuntu下7z文件的解压方法(转载)

    转自:http://qtlinux.blog.51cto.com/3052744/569406 打开终端,键入以下命令: apt-get install p7zip-full 控制台会打出以下信息: ...

  4. (3)css文本样式

    本篇学习资料主要讲解: 如何用css 的样式定义方法来介绍文字的使用. 第(1)节:用css设置文本样式.                       一.弄懂文本文字的制作.利用css的样式定义版面 ...

  5. BOA服务器搭建步骤

    1.下载Boa Webserver的源码 http://www.boa.org/ 2.解压并编译Boa Webserver $ tar xvf boa-0.94.13.tar.gz 由于Boa Web ...

  6. redis问题集结

    redis和memcached比较? redis中数据库默认是多少个db 及作用? python操作redis的模块? 如果redis中的某个列表中的数据量非常大,如果实现循环显示每一个值? redi ...

  7. 环境变量解释以及在Linux下的环境变量设置

    一.环境变量解释 环境变量是什么? 引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.例如Windows系统中的path环境变量,当要求 ...

  8. [POI2008]CLO

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个t ...

  9. 题解报告:Luogu P3368 【模板】树状数组 2(区间修改,单点查询)

    题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...

  10. 线程池机制使nginx性能提高9倍

    原文标题:Thread Pools in NGINX Boost Performance 9x! 原文官方地址:https://www.nginx.com/blog/thread-pools-boos ...