计算几何——认识基本object:点、线、面 。
认识基本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:点、线、面 。的更多相关文章
- 【BZOJ】1610: [Usaco2008 Feb]Line连线游戏(几何)
http://www.lydsy.com/JudgeOnline/problem.php?id=1610 两种做法,一种计算几何,一种解析几何,但是计算几何的复杂度远远搞出解析集合(虽然精度最高) 计 ...
- [模板] 计算几何2: 自适应Simpson/凸包/半平面交/旋转卡壳/闵可夫斯基和
一些基本的定义在这里: [模板] 计算几何1(基础): 点/向量/线/圆/多边形/其他运算 自适应Simpson Simpson's Rule: \[ \int ^b_a f(x)dx\approx ...
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- HDOJ 题目分类
HDOJ 题目分类 /* * 一:简单题 */ 1000: 入门用:1001: 用高斯求和公式要防溢出1004:1012:1013: 对9取余好了1017:1021:1027: ...
- 火币Huobi API
本文介绍火币Huobi API REST API 简介 火币为用户提供了一套全新的API,可以帮用户快速接入火币PRO站及HADAX站的交易系统,实现程序化交易. 访问地址 适用站点 适用功能 适用交 ...
- iOS开发 - 多线程实现方案之NSThread篇
NSThread API //类方法:创建一个线程 + (void)detachNewThreadWithBlock:(void (^)(void))block API_AVAILABLE(macos ...
- JAVA中this和super用法
参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...
- js创世纪--刨根问底原型和原型链
原型和原型链 看图说话: 1.对象内部具有[[Prototype]]属性,该属性不可直接访问,浏览器通过__proto__(两条'_')可以让用户读写该内部属性,最重要的是,该属性指向创建本对象的原型 ...
- hdu 4643 GSM 计算几何 - 点线关系
/* hdu 4643 GSM 计算几何 - 点线关系 N个城市,任意两个城市之间都有沿他们之间直线的铁路 M个基站 问从城市A到城市B需要切换几次基站 当从基站a切换到基站b时,切换的地点就是ab的 ...
随机推荐
- supervisor - Python进程管理工具
经常会碰到要写一些守护进程,简单做法放入后台: shell> nohup python xxx.py & 偶尔这么做还可以接受,如果一堆这样的呢? 当然还有一个问题,就是各种服务,对应的 ...
- jquery中跳出each循环
or循环 VS jquery.each continue return true break return false
- 【黑金教程笔记之003】【建模篇】【Lab 02 闪耀灯和流水灯】—笔记
(1) 扫描频率和闪耀频率? 模块: /**************************************** module name:flash_module function ...
- bzoj 2618【半平面交模板】
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> usin ...
- 洛谷 P4016 负载平衡问题 【最小费用最大流】
求出平均数sum,对于大于sum的点连接(s,i,a[i]-sum,0),表示这个点可以流出多余的部分,对于小于sum的点连接(i,t,sum-a[i],0)表示这个点可以接受少的部分,然后每个点向相 ...
- Ubuntu 下Python和pip的版本
首先python只是个指向特定版本的软链接,具体指向那个是可以我们自己设置的, 而在Ubuntu中默认是指向python2的,并且python2其实也是个指向特定版本的软链接 所以我们要做的就是删除这 ...
- quickpow || 快速幂
洛谷例题 推荐自行脑补:百度百科 如果 ,那么 : 前言:快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. 拿题目样例 Input :2 1 ...
- hasLayout原理【转】
项目中经常用到:*html .clearfix{ height:1%;} //IE6能识别*+html .clearfix{height:1%;} //IE7能识别1,有很多方式能触发hasLayo ...
- 进击的Python【第十三章】:Web前端基础之HTML与CSS样式
进击的Python[第十四章]:Web前端基础之HTML与CSS样式 一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客 ...
- ROS学习笔记五:创建和使用ROS msg和srv
1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint* ...