计算几何——多边形 计算几何点类
来源:互联网 发布:游戏原画 知乎 编辑:程序博客网 时间:2024/05/20 03:47
任务:设计一个二维点类,可以进行一些向量运算
接口:
结构体:point成员变量: double x,y 点的坐标重载运算符:+,-,*,/,==成员函数: input() 输入一个点 norm() 计算向量模长相关函数: double sqr(double x) 计算一个数的平方 double det(const point &a, const point &b) 计算两个向量的叉积 double dot(const point &a, const point &b) 计算两个向量的点积 double dist(const point &a, const point &b) 计算两个点的距离 point rotate_point(const point &p, double A) 向量op绕原点逆时针旋转A(弧度)
代码
const double pi=acos(-1,0);inline double sqr(double x){ return x*x;}struct point { double x,y; point () {} point (double a, double b) : x(a), y(b) {} void input() { scanf("%lf%lf", &x, &y); } friend point operator + (const point &a, const point &b){ return point (a.x + b.x, a.y + b.y); } friend point operator - (const point &a, const point &b){ return point (a.x - b.x, a.y - b.y); } friend point operator == (const point &a, const point &b){ return cmp (a.x - b.x) == 0 && cmp (a.y - b.y) == 0; } friend point operator * (const point &a, const double &b){ return point (a.x * b, a.y * b); } friend point operator * (const double &a, const point &b){ return point (a * b.x, a * b.y); } friend point operator / (const point &a, const double &b){ return point (a.x / b, a.y / b); } double norm() { return sqrt(sqr(x) + sqr(y)); }; double det(const point &a, const point &b){ return a.x * b.y - a.y * b.x; } double dot(const point &a, const point &b){ return a.x * b.x + a.y * b.y; } double dist(const point &a, const point &b){ return (a-b).norm(); } point rotate_point(const point &p, double A){ double t.x = p.x, t.y = p.y; return point(tx * cos(A) - ty * sin(A), tx * sin(A) + ty * cos(A)); }
例题 poj 2653
阅读全文
0 0
- 计算几何——多边形 计算几何点类
- 计算几何——多边形 计算几何误差修正
- 计算几何——多边形三角化
- 计算几何模板——点类
- 计算几何-点与多边形的位置
- 【计算几何】点在多边形内部
- 【计算几何】点在多边形内部
- 计算几何_多边形
- 【计算几何】多边形
- 计算几何之多边形
- [计算几何] 计算多边形面积
- NOJ1070南邮仙林自行车停放场——计算几何+多边形
- poj1654—Area(计算几何求多边形面积)
- 计算几何:多边形重心模板
- 计算几何-多边形的重心
- 多边形重心问题-计算几何
- 计算几何-多边形的重心
- 计算几何-多边形的重心
- 获取系统URL访问的前三名(通过Scala方式实现/通过Spark方式实现),Spark将URL访问日志进行分类并通过自定义Partitioner的方式将文件写入到不同分区上
- Hello CSDN
- web.xml 配置中classpath: 与classpath*:的区别
- ubuntu 16.04 dpgk安装deb包因缺少依赖文件失败
- RN Unable to process incoming event 'ProgressComplete ' (ProgressCompleteEvent)
- 计算几何——多边形 计算几何点类
- 结构体作为函数参数
- JAVA第一课第四节知识点
- windows+caffe+cuda8.0+cudnn5.1+gtx1080ti cudnn编译时opencv编译出错,找不到指定文件。
- Qt(C++)项目中使用 Basler 工业相机(2 参数设置)
- (转)java中Statement详细用法
- Canvas学习笔记之画矩形
- 一些英文词的标准缩写
- web 项目中设置 cookie 的时候添加 domain 和不添加 domain 的区别