不规则三角网 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 ---- ...
随机推荐
- HDU 5735 - Born Slippy
题意: 一棵 n 个节点的根树,i 节点权重 wi 对每一个节点s,找到这样一个长 m 的标号序列 v : 1. vi是vi-1 的祖先 2. f[s] = w[vi] + ∑(i=2, m) (w[ ...
- Linux中Firefox——Firebug插件安装及使用
Firebug的安装方法即打开方式同httpfox Firebug使用指南: Firebug可以随时编辑页面:在HTML标签中,点击窗口上方的"inspect"命令,然后再选择页面 ...
- Qt Creator下载
Qt官网 http://qt.digia.com qt的历史版本可以到http://download.qt-project.org/archive/qt/下载
- Qt通过odbc读取excel数据
传统的读取方式是通过Excel.Application,这种方式不仅操作繁琐,而且速度也不快. 通过odbc读取,可以使用select语句直接读取整个工作表,处理excel数据就跟数据库一样方便. 当 ...
- 配置sphinx
1.先安装sphinxclient #cd /usr/local/src #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz ...
- C语言之预处理命令
/**************************************************************************** Title:C之预处理命令 Time:201 ...
- C# 多线程的自动管理(线程池) 基于Task的方式
C# 多线程的自动管理(线程池) 在多线程的程序中,经常会出现两种情况: 1. 应用程序中线程把大部分的时间花费在等待状态,等待某个事件发生,然后给予响应.这一般使用 ThreadPool(线程 ...
- java设计模式--行为型模式--状态模式
什么是行为型模式,小编觉得就是对行为的一种描述啦,一种对某种行为模型的定义. 状态模式: 状态模式 概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被 ...
- Cache 大致原理
System.Web.Caching.Cache 根据CPU数量,每一个核心CPU有一个CacheSingle实例,CacheSingle有一个 CacheExpires属性然后CacheExpire ...
- CentOS 6.5 CodeBlocks::wxWidgets安装与配置
第一步, #yum install codeblocks codeblocks-contrib codeblocks-devel 第二步,到官方下载源码包,我下的是wxX11的3.0版的. #tar ...