不规则三角网 Delaunay——TIN
http://blog.csdn.net/u010025211/article/details/25032209
开源库:http://www.cs.cmu.edu/~quake/triangle.html
下载地址: 链接:http://pan.baidu.com/s/1jIlxK6U 密码:2xgg
知识点一:平面中判断一个点是否在三角形内部。
#include <stdio.h>
//m,n表示待检测点的x,y坐标,a,b,c表示三角形的三个点
bool isInTriangle(double m,double n,double ax,double bx,double cx,double ay,double by,double cy)
{
double u = (m-ax)*(by-ay)-(n-ay)*(bx-ax);
u/=(cx-ax)*(by-ay)-(cy-ay)*(bx-ax);
double v = (m-ax)*(cy-ay)-(n-ay)*(cx-ax);
v/=(bx-ax)*(cy-ay)-(by-ay)*(cx-ax);
return u>&&v>&&(u+v)<=;
}
int main(void) { bool answer = true;
answer = isInTriangle(0.5,0.7,,,,,,); printf("%s\n", answer?"Point is in triangle.":"Points isn't in triangle."); answer = isInTriangle(0.5,0.3,,,,,,);
printf("%s\n", answer?"Point is in triangle.":"Points isn't in triangle."); }
知识点二、判断一点是否在三角形的外接圆内
1、外接圆的圆心
#include <stdio.h> void getCenterOfCircle(double &x,double &y,double x1,double x2,double x3,double y1,double y2,double y3)
{
x=(x2*x2-x1*x1+y2*y2-y1*y1)*(y3-y1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(y2-y1);
x/=*(x2-x1)*(y3-y1)-*(x3-x1)*(y2-y1);
y=(x2*x2-x1*x1+y2*y2-y1*y1)*(x3-x1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(x2-x1);
y/=*(y2-y1)*(x3-x1)-*(y3-y1)*(x2-x1);
}
int main(void) { bool answer = true; double x=,y=;
getCenterOfCircle(x,y,,,,,,); printf("%f %f\n", x,y); }
2.判断点(m,n)是否在三角形的外接圆内
#include <stdio.h> void getCenterOfCircle(double &x,double &y,double x1,double x2,double x3,double y1,double y2,double y3)
{
x=(x2*x2-x1*x1+y2*y2-y1*y1)*(y3-y1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(y2-y1);
x/=*(x2-x1)*(y3-y1)-*(x3-x1)*(y2-y1);
y=(x2*x2-x1*x1+y2*y2-y1*y1)*(x3-x1)-(x3*x3-x1*x1+y3*y3-y1*y1)*(x2-x1);
y/=*(y2-y1)*(x3-x1)-*(y3-y1)*(x2-x1);
}
bool isInCircumcircle(double m,double n,double x1,double x2,double x3,double y1,double y2,double y3)
{
double x=;
double y=;
getCenterOfCircle(x,y,x1,x2,x3,y1,y2,y3);
return (m-x)*(m-x)+(n-y)*(n-y)<=(x1-x)*(x1-x)+(y1-y)*(y1-y);
}
int main(void) { double x=,y=;
bool answer = true;
answer = isInCircumcircle(,-,,,,,,);
printf("%s\n", answer?"Point is in Circumcircle.":"Points isn't in Circumcircle.");
}
不规则三角网 Delaunay——TIN的更多相关文章
- 不规则三角网(TIN)(转)
来自:http://blog.csdn.net/kikitamoon/article/details/8217641 Ⅰ 数字高程模型(DEM) 地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法 ...
- Matlab绘图基础——散点生成三角网(TIN)
%例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2)); %生成三角网 triplot(dt);hold on; ...
- Visualize Surface by Delaunay Triangulator
Visualize Surface by Delaunay Triangulator eryar@163.com Abstract. Delaunay Triangulation is the cor ...
- MATLAB绘制三角网及三维网线
今天博主给大家介绍一些比较常见的可视化操作,绘制三角网及三维网线. 三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状,优点为 ...
- 基于GIS空间分析的多边形提取技术
现有基于矢量图形的骨架线提取方法主要包括数据预处理.基于约束 Delauny 三角剖分的骨架线结点生成和骨架线的连接 3 个过程,上述过程都可利用现有 GIS 系统的数据处理.空间分析和建模功能实现. ...
- 盘点十大GIS相关算法
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
- ArcGIS Engine中的8种数据访问 (转)
数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...
- ArcEngine读取数据(数据访问) (转)
读取和访问数据是进行任何复杂的空间分析及空间可视化表达的前提,ArcGIS支持的数据格式比较丰富,下面就这些格式Shapefile.Coverage.Personal Geodatabase.Ente ...
- AE常见接口之间的关系(较笼统)+arcgis常见概念
常见的接口有如下关系 IworkspaceFactory-------------->IworkSpace------------------>IfeatureWorkSpace ---- ...
随机推荐
- .Net Memory -- GC基本知识
参考资料: http://blogs.msdn.com/b/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of ...
- 关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类
关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类 24. 三 / J2EE / 没有评论 简单的j2ee设计模式, UI通过DAO层访问数据库或者xml文 ...
- js各种验证文本框输入格式
不能为空 <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> 只能输入英文 ...
- Response 关于浏览器header的方法
Response.AddHeader Response.AddHeader使用实例 1.文件下载,指定默认名 Response.AddHeader("content-type" ...
- 2015年阿里巴巴蚂蚁金服校招JAVA研发工程师内推电话面试
没想到阿里校招如此之早,虽然早已进入复习备战状态,但还是感觉有些措手不及...找了个在蚂蚁金服做HR的同学帮忙了内推,然后在最近的几天匆匆忙忙地复习JAVA(之前都把精力放在了数据结构.算法等基础上了 ...
- android style="@[package:]style/style_name" ----------styles.xml
android.widget ----XML attribute |____style="@[package:]style/style_name"
- 活生生的例子:qInstallMessageHandler接受指定类型的函数指针,这样就可以随心所欲的让程序员自定义函数名以及函数位置
理论:qInstallMessageHandler是被定义在全局空间里: http://doc.qt.io/qt-5/qtglobal.html#QtMessageHandler-typedef 实践 ...
- Application.HookMainWindow完全替代了原来的窗口过程(但是好像也会继续传递)
unit HookMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialo ...
- POJ 2579 Fiber Network(状态压缩+Floyd)
Fiber Network Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3328 Accepted: 1532 Des ...
- hdu 5610 Baby Ming and Weight lifting
Problem Description Baby Ming is fond of weight lifting. He has a barbell pole(the weight of which c ...