计算几何
来源:互联网 发布:剑三当战炮姐脸型数据 编辑:程序博客网 时间:2024/04/28 00:26
这里说一点计算几何的基本模板
点的表示
struct point{double x;double y;};
向量的表示
struct v{point start;point end;};
向量的加减法
P+Q = (x1+x2,y1+y2);
P+Q = (x1-x2,y1-y2);
向量的点乘
P*Q = (x1*x2+y1*y2);
double dotProduct(v* v1,v* v2){v vt1,vt2;double result;vt1.start.x = 0 , vt1.start.y = 0;vt1.end.x = v1->end.x - v1->start.x;vt1.end.y = v1->end.y - v1->start.y;vt2.start.x = 0 , vt2.start.y = 0;vt2.end.x = v2->end.x - v2->start.x;vt2.end.y = v2->end.y - v2->start.y;result = vt1.end.x * vt2.end.x + vt1.end.y * vt2.end.y;returb result;}
/*dotProduct*/double dmult(point p1,point p2,point p0){ return (p1.x-p0.x)*(p2.x-p0.x)+(p1.y-p0.y)*(p2.y-p0.y);}double dmult(double x1,double y1,double x2,double y2,double x0,double y0){ return (x1-x0)*(x2-x0)+(y1-y0)*(y2-y0);}
向量的叉乘
代码
double crossProduct(v* v1,v* v2){v vt1,vt2;double result;vt1.start.x = 0 , vt1.start.y = 0;vt1.end.x = v1->end.x - v1->start.x;vt1.end.y = v1->end.y - v1->start.y;vt2.start.x = 0 , vt2.start.y = 0;vt2.end.x = v2->end.x - v2->start.x;vt2.end.y = v2->end.y - v2->start.y;result = vt1.end.x * vt2.end.y - vt1.end.y * vt2.end.x;returb result;}
/*CorssProduct*/double xmult(point p1,point p2,point p0){ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}double xmult(double x1,double y1,double x2,double y2,double x0,double y0){ return (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);}
- 计算几何几何函数库
- 计算几何-几何库
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 互斥对象、事件对象与关键代码段的比较
- Installing SVN Via MacPorts
- poj 1135 Domino Effect(Dijkstra)
- C++静态成员函数小结(转)
- cvResize缩放“边缘检测”的图像后,图像变得模糊,如何解决?
- 计算几何
- Failed to execute goal org.apache.maven.plugins Compilation failure 非法字符: \65279
- BackupManager的使用与解析
- 判断电话号码运营商
- 面试准备(常用函数和数据结构)freopen (在程序调试时从文本输入,程序结果放在文本中)
- nginx作为反向代理服务器完成负载均衡
- Getting and installing the PEAR package manager
- log4j和web.xml配置webAppRootKey 的问题
- VS2003"无法启动调试 没有正确安装调试器"的解决方法