http://blog.csdn.net/u010025211/article/details/25032209

开源库:http://www.cs.cmu.edu/~quake/triangle.html

下载地址: 链接:http://pan.baidu.com/s/1jIlxK6U 密码:2xgg

知识点一:平面中判断一个点是否在三角形内部。

  1. #include <stdio.h>
  2. //m,n表示待检测点的x,y坐标,a,b,c表示三角形的三个点
  3. bool isInTriangle(double m,double n,double ax,double bx,double cx,double ay,double by,double cy)
  4. {
  5. double u = (m-ax)*(by-ay)-(n-ay)*(bx-ax);
  6. u/=(cx-ax)*(by-ay)-(cy-ay)*(bx-ax);
  7. double v = (m-ax)*(cy-ay)-(n-ay)*(cx-ax);
  8. v/=(bx-ax)*(cy-ay)-(by-ay)*(cx-ax);
  9. return u>&&v>&&(u+v)<=;
  10. }
  11. int main(void) {
  12.  
  13. bool answer = true;
  14. answer = isInTriangle(0.5,0.7,,,,,,);
  15.  
  16. printf("%s\n", answer?"Point is in triangle.":"Points isn't in triangle.");
  17.  
  18. answer = isInTriangle(0.5,0.3,,,,,,);
  19. printf("%s\n", answer?"Point is in triangle.":"Points isn't in triangle.");
  20.  
  21. }

知识点二、判断一点是否在三角形的外接圆内

      1、外接圆的圆心

  1. #include <stdio.h>
  2.  
  3. void getCenterOfCircle(double &x,double &y,double x1,double x2,double x3,double y1,double y2,double y3)
  4. {
  5. x=(x2*x2-x1*x1+y2*y2-y1*y1)*(y3-y1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(y2-y1);
  6. x/=*(x2-x1)*(y3-y1)-*(x3-x1)*(y2-y1);
  7. y=(x2*x2-x1*x1+y2*y2-y1*y1)*(x3-x1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(x2-x1);
  8. y/=*(y2-y1)*(x3-x1)-*(y3-y1)*(x2-x1);
  9. }
  10. int main(void) {
  11.  
  12. bool answer = true;
  13.  
  14. double x=,y=;
  15. getCenterOfCircle(x,y,,,,,,);
  16.  
  17. printf("%f %f\n", x,y);
  18.  
  19. }

   2.判断点(m,n)是否在三角形的外接圆内

  1. #include <stdio.h>
  2.  
  3. void getCenterOfCircle(double &x,double &y,double x1,double x2,double x3,double y1,double y2,double y3)
  4. {
  5. x=(x2*x2-x1*x1+y2*y2-y1*y1)*(y3-y1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(y2-y1);
  6. x/=*(x2-x1)*(y3-y1)-*(x3-x1)*(y2-y1);
  7. y=(x2*x2-x1*x1+y2*y2-y1*y1)*(x3-x1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(x2-x1);
  8. y/=*(y2-y1)*(x3-x1)-*(y3-y1)*(x2-x1);
  9. }
  10. bool isInCircumcircle(double m,double n,double x1,double x2,double x3,double y1,double y2,double y3)
  11. {
  12. double x=;
  13. double y=;
  14. getCenterOfCircle(x,y,x1,x2,x3,y1,y2,y3);
  15. return (m-x)*(m-x)+(n-y)*(n-y)<=(x1-x)*(x1-x)+(y1-y)*(y1-y);
  16. }
  17. int main(void) {
  18.  
  19. double x=,y=;
  20. bool answer = true;
  21. answer = isInCircumcircle(,-,,,,,,);
  22. printf("%s\n", answer?"Point is in Circumcircle.":"Points isn't in Circumcircle.");
  23. }

不规则三角网 Delaunay——TIN的更多相关文章

  1. 不规则三角网(TIN)(转)

    来自:http://blog.csdn.net/kikitamoon/article/details/8217641 Ⅰ 数字高程模型(DEM) 地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法 ...

  2. Matlab绘图基础——散点生成三角网(TIN)

    %例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2));       %生成三角网 triplot(dt);hold on;   ...

  3. Visualize Surface by Delaunay Triangulator

    Visualize Surface by Delaunay Triangulator eryar@163.com Abstract. Delaunay Triangulation is the cor ...

  4. MATLAB绘制三角网及三维网线

    今天博主给大家介绍一些比较常见的可视化操作,绘制三角网及三维网线. 三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状,优点为 ...

  5. 基于GIS空间分析的多边形提取技术

    现有基于矢量图形的骨架线提取方法主要包括数据预处理.基于约束 Delauny 三角剖分的骨架线结点生成和骨架线的连接 3 个过程,上述过程都可利用现有 GIS 系统的数据处理.空间分析和建模功能实现. ...

  6. 盘点十大GIS相关算法

    1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...

  7. ArcGIS Engine中的8种数据访问 (转)

    数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...

  8. ArcEngine读取数据(数据访问) (转)

    读取和访问数据是进行任何复杂的空间分析及空间可视化表达的前提,ArcGIS支持的数据格式比较丰富,下面就这些格式Shapefile.Coverage.Personal Geodatabase.Ente ...

  9. AE常见接口之间的关系(较笼统)+arcgis常见概念

    常见的接口有如下关系 IworkspaceFactory-------------->IworkSpace------------------>IfeatureWorkSpace ---- ...

随机推荐

  1. (转)Ubuntu中使用dpkg安装deb文件提示依赖关系问题,仍未被配置

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638149.html 参考网址: http://zhidao.baidu.com/link?url=b ...

  2. 浅谈Linux系统的启动流程

    Linux系统的启动时通过读取不同的配置文件,执行相应的Shell脚本完成的.当然本文只是简单的从文件的角度分析,更深层次的本文没涉及. 主要读取了以下文件:  /boot/grub/grub.con ...

  3. Struts2+JQuery+JSON实现异步交互

    1.环境 jquery:jquery-1.9.0.min.js struts2:基本包就不说了,就说说应用json的包,主要有struts2-json-plugin-2.3.8.jar json:js ...

  4. 推荐的 CSS 书写顺序

    //显示属性 display list-style position float clear //自身属性 width height margin padding border background ...

  5. 【Xamarin挖墙脚系列:打造独特的Xamarin.IOS开发环境】

    苹果的产品,依赖特定的开发环境. Mac  +  Xcode  不可缺少.所以,必须有Mac系统. 1-虚拟机搭建 2-土豪有Mac电脑设备 但是我觉得还是顺带上Visual Studio才是完美.. ...

  6. HTML5学习摘录

    设计原理 不是规范里都包含什么,而是规范里为什么会包含它们,以及在设计这个规范的时候,设计者们是怎么看待这些东西的. 发展史:HTML2.0——>HTML3.2——>HTML4.0.1—— ...

  7. UESTC_最少花费 2015 UESTC Training for Dynamic Programming<Problem D>

    D - 最少花费 Time Limit: 30000/10000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  8. 【转】android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)

    关键词:android  camera CMM 模组 camera参数  CAMIF平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos 4210) 作者 ...

  9. hdu 5465 Clarke and puzzle(前缀和,异或,nim博弈)

    Problem Description Clarke is a patient with multiple personality disorder. One day, Clarke split in ...

  10. 数据连接池——JNDI

    数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP).数据库连接池到底是什么?它比jd ...