c语言实现点在多边形内部,求教这个判断点是否在多边形内的C语言算法用的什么原理....
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
//#define N
const int N=4;
int tt(double p[][2],int a,int b) //a为下标,不能为float
{
int temp[N],k=0;
double t;
for(int i=0;i
{if(i==a||i==b)
{ continue;}
t=p[i][0]*(p[b][1]-p[a][1])+(p[a][0]-p[b][0])*p[i][1]-p[a][0]*p[b][1]+p[b][0]*p[a][1];
if(t==0) return 0;else if(t>0) temp[k++]=1; elsetemp[k++]=-1;}
for(int j=1;j
{if(temp[0]!=temp[j]) return 0;}
return 1;}
int real(double p[][2])
{ int flag[N],m=0;
for(int i=0;i
{flag[i]=0;}
for( i=0;i
{for(int j=1;j
{if(flag[j]) continue;if(tt(p,m,j))
{ flag[m]=1; m=j;break;}}}
flag[m]=1;
for(i=0;i
{if(flag[i]==0) return 0;}
if(tt(p,0,m)) return 1;return 0;}
void main()
{double p[N][2];char ch='y'; while (ch=='y'||ch=='Y')
{cout<
for(int i=0;i
{cout<>p[i][0]>>p[i][1];//cin>>**p>>*(*p+1);cout<
if (real(p))cout<>ch;}}
c语言实现点在多边形内部,求教这个判断点是否在多边形内的C语言算法用的什么原理....相关推荐
- 判断素数、输出100内素数 C语言初学
素数又称质数.所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如13就是素数,因为它不能被 2~12 的任一整数整除. 判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每 ...
- 向量叉乘判断点是否在多边形内部
向量叉乘: 二维向量的叉乘 ( x1 , y1 ) * ( x2 , y2 ) = x1y2 - y1x2 如果值大于0 , 则表明 ( x2 , y2 ) 在 ( x1 , y1 )左边,反之在右边 ...
- 判断点是否处于多边形内的三种方法(转)
1. 叉乘判别法(只适用于凸多边形)想象一个凸多边形,其每一个边都将整个2D屏幕划分成为左右两边,连接每一边的第一个端点和要测试的点得到一个矢量v,将两个2维矢量扩展成3维的,然后将该边与v叉乘,判断 ...
- c语言实现点在多边形内部,C语言中实现 点在多边形内 算法
来源: 天极网 作者: 若水 2008-05-15/01:29 本文是采用射线法判断点是否在多边形内的C语言程序.多年前,我自己实现了这样一个算法.但是随着时间的推移,我决定重写这个代码.参考周培德的 ...
- 求任意多边形内部水平方向似最大矩形算法实现
背景说明 前段时间有个求点是否在多边形内部的需求,折腾了不少时间,现截取其中的的重点部分--求任意多边形内部水平方向似最大矩形--来搞篇博客. 求点是否在多边形内部这个算法很容易搞,一搜一大把,但数据 ...
- 判定点是否在不规则多边形内部的问题
2019独角兽企业重金招聘Python工程师标准>>> 问题如下: 话说在平面内有一个任意的不规则的封闭多边形,另外在这个平面内还有一个点,问题:如何高效的判定这个点是在这个多边形内 ...
- 【计算几何】点在多边形内部
问题描述:已知点P(x,y)和多边形Poly,判断点P(x,y)是否在多边形内部. 基本方法:射线法 以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外部,考虑沿着L从无 ...
- [转]如何判断一个点是否在一个多边形内部
原文地址:http://hi.baidu.com/wayright/item/ad18e4c0c5446b2dee4665c9 在多边性的存储中,每一个多边形都是由一系列连续的点组成,例如保存为数组P ...
- android arcgis多变形边框颜色,Arcgis for Android 判断指定点是否在多边形内部
Arcgis for Android 判断指定点是否在指定多边形的内部方法: /** * 判断坐标点是否落在指定的多边形区域内 * @param point 指定的坐标点 * @param list ...
最新文章
- Ubuntu18.04提示wifi无法连接
- Android SoundPool 的简单使用
- 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query
- matlab谐波仿真代码,matlab的谐波仿真程序基于ip-iq法???怎么出不来图像啊???...
- ProxySQL!像C罗一样的强大!
- 面向对象的JavaScript(1):创建简单的类
- 如何用python处理图片_用Python简单处理图片
- linux war 权限,Linux中mv重命名作用及打包war压缩文件及分配权限
- 计算机常用压缩软件有哪些,电脑用什么解压缩软件比较好?
- java 502错误_Spring Boot连接超时导致502错误的实战案例
- intel 显卡驱动的节能设置(新版驱动)
- MongoDB安装Python操作MongoDB
- 切换白天黑夜模式系统切换语言回调
- Qt编写水波进度条控件
- 世界著名的数学猜想,你知道几个?
- 09_Python3.6+selenium2.53.6自动化测试_通过class_name定位百度输入框
- 好想与你天长地久,共度岁月
- Lua基础入门—— 写出自己的魔兽世界插件
- idea本地项目push到远程仓库报错解决方法
- C++之让我不爽的地方(Java转C++,因为不习惯所以不爽)