不规则三角网 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 ---- ...
随机推荐
- 【JavaScript DOM 编程艺术】 笔记
第一章:JavaScript 简史 1.1 javascript的起源 JavaScript是一种脚本语言,通常只能通过web浏览器去完成一些操作而不能像普通意义上的程序那样独立运行,需要由Web浏览 ...
- Qt调用外部程序QProcess通信
mainwindow.cpp文件: -------------------------------- #include "mainwindow.h" #include " ...
- Nvidia CUDA 6 Installed In Ubuntu 12.04
环境:ubuntu 12.04 (x64) 如果不能够 service lightdm stop,显示:unknown service 或者其他的 sudo /etc/init.d/lightdm r ...
- 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
========================================================================================== 最近一直在看Dee ...
- Hibernate中HQL的日期差值计算,可计算相差多少秒
最近有个业务需求就是计算订单创建时间离现在超过 4 小时的订单都查找出来! 那么就需要用到日期函数了. 网上找了一下总共的日期函数有一下几个: CURRENT_DATE() 返回数据库当前日期 时间函 ...
- linux下tar用法
以下是linux下tar的用法,转一下,以便方便自己看(这里没把rar,zip类的转过来,一般rar,zip在linux下基本没人用,基本上是zip,unzip,rar,unrar,这些命令,并且ra ...
- X-factor Chains(POJ3421 素数)
X-factor Chains Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6212 Accepted: 1928 D ...
- Discuz!X2.5论坛在IIS和Apache环境配置实现伪静态
最近在研究自己的网站,然后把这文章分享出来,让不清楚怎么设置的童鞋参考,高手可以飘过~~~ URL 静态化是一个有利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 PHP 页面转换为静态化的 ...
- 认识元数据和IL(中)<第四篇>
书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件.程序集.托管模块,这些概念与元数据.IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了 ...
- 关于MySql链接url参数的设置
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=t ...