资源简介
点是否在多边形内判断的C语言代码,有2维及3维两种情况的判断, 请注意:如果你决定使用其中某个函数,请将它拷出来,每个函数都能用,对应于不同的算法,请看说明,最后一个函数为三维情况。
代码片段和文件信息
#define MIN(xy) (x < y ? x : y)
#define MAX(xy) (x > y ? x : y)
//The following C function returns INSIDE or OUTSIDE indicating the status of a point P with respect to a polygon with N points.
#define INSIDE 0
#define OUTSIDE 1
typedef struct {
double xy;
} Point;
int InsidePolygon(Point *polygonint NPoint p)
{
int counter = 0;
int i;
double xinters;
Point p1p2;
p1 = polygon[0];
for (i=1;i<=N;i++) {
p2 = polygon[i % N];
if (p.y > MIN(p1.yp2.y)) {
if (p.y <= MAX(p1.yp2.y)) {
if (p.x <= MAX(p1.xp2.x)) {
if (p1.y != p2.y) {
xinters = (p.y-p1.y)*(p2.x-p1.x)/(p2.y-p1.y)+p1.x;
if (p1.x == p2.x || p.x <= xinters)
counter++;
}
}
}
}
p1 = p2;
}
if (counter % 2 == 0)
return(OUTSIDE);
else
return(INSIDE);
}
//The following code is by Randolph Franklin it returns 1 for interior points and 0 for exterior points.
int pnpoly(int npol float *xp float *yp float x float y)
{
int i j c = 0;
for (i = 0 j = npol-1; i < npol; j = i++) {
if ((((yp[i] <= y) && (y < yp[j])) ||
((yp[j] <= y) && (y < yp[i]))) &&
(x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
c = !c;
}
return c;
}
//The inside/outside test might then be defined in C as
typedef struct {
int hv;
} Point;
int InsidePolygon(Point *polygonint nPoint p)
{
int i;
double angle=0;
Point p1p2;
for (i=0;i p1.h = polygon[i].h - p.h;
p1.v = polygon[i].v - p.v;
p2.h = polygon[(i+1)%n].h - p.h;
p2.v = polygon[(i+1)%n].v - p.v;
angle += Angle2D(p1.hp1.vp2.hp2.v);
}
if (AB
- 上一篇:mcc插件安装指引
- 下一篇:数值分析三次样条两种边界matlab代码.rar
相关资源
- C语言的嵌入式汇编基本使用.docx(2页
- C语言嵌入式Modbus协议栈,支持主站和
- C语言封装的HttpClient接口
- C语言课设计算器
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- KMP算法C语言程序
- Linux c语言 学生成绩管理系统
- 弹跳的小球(test.c)
- 林锐—高质量C编程
- 基于c语言的通讯录系统
- C语言全套课件与教学资料-哈工大
- 计算机二级C语言真题.docx
- C语言实现 设备信息管理系统
- GBT 28169-2011 嵌入式软件 C语言编码规范
- C语言标准库函数大全.chm
- C语言常用代码(分章节)
- c语言课程设计:客房登记系统源码
- C语言常用算法源代码
- 吕鑫:VS2015之博大精深的0基础C语言视
- c语言文都讲义2020
- c语言课件56883
- C语言推箱子win控制台
- C语言程序设计50例.docx
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 数据结构(C语言版)ppt课件,清华,
- c语言编程经典例题100例 word版
评论
共有 条评论