计算几何C源码浅析.docxVIP

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/* 计算几何 目录? ㈠?点的基本运算? 1.?平面上两点之间距离?1? 2.?判断两点是否重合?1? 3.?矢量叉乘?1? 4.?矢量点乘?2? 5.?判断点是否在线段上?2? 6.?求一点饶某点旋转后的坐标?2? 7.?求矢量夹角?2? ㈡?线段及直线的基本运算? 1.?点与线段的关系?3? 2.?求点到线段所在直线垂线的垂足?4? 3.?点到线段的最近点?4? 4.?点到线段所在直线的距离?4? 5.?点到折线集的最近距离?4? 6.?判断圆是否在多边形内?5? 7.?求矢量夹角余弦?5? 8.?求线段之间的夹角?5? 9.?判断线段是否相交?6? 10.判断线段是否相交但不交在端点处?6? 11.求线段所在直线的方程?6? 12.求直线的斜率?7? 13.求直线的倾斜角?7? 14.求点关于某直线的对称点?7? 15.判断两条直线是否相交及求直线交点?7? 16.判断线段是否相交,如果相交返回交点?7? ㈢?多边形常用算法模块? 1.?判断多边形是否简单多边形?8? 2.?检查多边形顶点的凸凹性?9? 3.?判断多边形是否凸多边形?9? 4.?求多边形面积?9? 5.?判断多边形顶点的排列方向,方法一?10? 6.?判断多边形顶点的排列方向,方法二?10? 7.?射线法判断点是否在多边形内?10? 8.?判断点是否在凸多边形内?11? 9.?寻找点集的graham算法?12? 10.寻找点集凸包的卷包裹法?13? 11.判断线段是否在多边形内?14? 12.求简单多边形的重心?15? 13.求凸多边形的重心?17? 14.求肯定在给定多边形内的一个点?17? 15.求从多边形外一点出发到该多边形的切线?18? 16.判断多边形的核是否存在?19? ㈣?圆的基本运算? 1?.点是否在圆内?20? 2?.求不共线的三点所确定的圆?21? ㈤?矩形的基本运算? 1.已知矩形三点坐标,求第4点坐标?22? ㈥?常用算法的描述?22? ㈦?补充? 1.两圆关系:?24? 2.判断圆是否在矩形内:?24? 3.点到平面的距离:?25? 4.点是否在直线同侧:?25? 5.镜面反射线:?25? 6.矩形包含:?26? 7.两圆交点:?27? 8.两圆公共面积:?28? 9.?圆和直线关系:?29? 10.?内切圆:?30? 11.?求切点:?31? 12.?线段的左右旋:?31? 13.公式:?32? */ /*?需要包含的头文件?*/? #include?cmath?? /*?常用的常量定义?*/? const?double?INF??=?1E200???? const?double?EP??=?1E-10? const?int??MAXV?=?300? const?double?PI??=?3 /*?基本几何结构?*/? struct?POINT? {? ?double?x;? ?double?y;? ?POINT(double?a=0,?double?b=0)?{?x=a;?y=b;}?//constructor? };? struct?LINESEG? {? ?POINT?s;? ?POINT?e;? ?LINESEG(POINT?a,?POINT?b)?{?s=a;?e=b;}? ?LINESEG()?{?}? };? struct?LINE???????????//?直线的解析方程?a*x+b*y+c=0??为统一表示,约定?a?=?0? {? ???double?a;? ???double?b;? ???double?c;? ???LINE(double?d1=1,?double?d2=-1,?double?d3=0)?{a=d1;?b=d2;?c=d3;}? };? /********************** ?*????????????????????*? ?*???点的基本运算?????*? ?*????????????????????*? ?**********************/? double?dist(POINT?p1,POINT?p2)????????????????//?返回两点之间欧氏距离? {? ?return(?sqrt(?(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)?)?);? }? bool?equal_point(POINT?p1,POINT?p2)???????????//?判断两个点是否重合?? {? ?return?(?(abs(p1.x-p2.x)EP)(abs(p1.y-p2.y)EP)?);? }? /*************************************

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档