生成简单多边形后,有时还需要对多边形各顶点的凹凸性做判断。

先计算待处理点与相邻点的两个向量,再计算两向量的叉乘,根据求得结果的正负可以判断凹凸性。

结果为负则为凹顶点,为正则为凸顶点。

凹顶点用o表示,凸顶点用*表示。

结果如下:

matlab代码如下:

clear all;close all;clc;

n=;

p=rand(n,);

p=createSimplyPoly(p); %创建简单多边形

hold on;

for i=:n

if i== %处理第一个点

v1=p(n,:)-p(,:); %当前点到前一点向量

v2=p(,:)-p(,:); %当前点到后一点向量

elseif i==n %最后一个点

v1=p(n-,:)-p(n,:);

v2=p(,:)-p(n,:);

else %其他点

v1=p(i-,:)-p(i,:);

v2=p(i+,:)-p(i,:);

end

r=det([v1;v2]); %叉乘后第三个向量的方向

if r>

plot(p(i,),p(i,),'*');

elseif r<

plot(p(i,),p(i,),'o');

end

end

plot(p(:,),p(:,));

p=circshift(p,);

plot(p(:,),p(:,));

createSimplyPoly.m

function p=createSimplyPoly(p)

cen=mean(p);

ang=atan2(p(:,)-cen(),p(:,)-cen()); %每个点到坐标中心极角

p=[p,ang];

p=sortrows(p,); %按极角排序

p=p(:,:);

end

&lbrack;matlab&rsqb; 11&period;多边形凹凸性检测

clear all;close all;clc; n=20; p=rand(n,2); p=createSimplyPoly(p); %创建简单多边形 hold on; for i=1:n if i= ...

matlab练习程序(射线法判断点与多边形关系)

依然是计算几何. 射线法判断点与多边形关系原理如下: 从待判断点引出一条射线,射线与多边形相交,如果交点为偶数,则点不在多边形内,如果交点为奇数,则点在多边形内. 原理虽是这样,有些细节还是要注意一下 ...

matlab练习程序(SUSAN检测)

matlab练习程序(SUSAN检测) SUSAN算子既可以检测角点也可以检测边缘,不过角点似乎比不过harris,边缘似乎比不过Canny.不过思想还是有点意思的. 主要思想就是:首先做一个和原图像 ...

atitit&period;编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质

atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质 #---语言的 工具和材料双重性 有的人说语言是个工具,有的人说语言是个材料..实际上语言同时属于两个属性. ...

&lpar;转&rpar;matlab练习程序(HOG方向梯度直方图)

matlab练习程序(HOG方向梯度直方图)http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html HOG(Histogram o ...

PCL—点云分割(基于凹凸性) 低层次点云处理

博客转载自:http://www.cnblogs.com/ironstark/p/5027269.html 1.图像分割的两条思路 场景分割时机器视觉中的重要任务,尤其对家庭机器人而言,优秀的场景分割 ...

matlab练习程序(透视投影,把lena贴到billboard上)

本练习程序是受到了这个老外博文的启发,感觉挺有意思,就尝试了一下.他用的是opencv,我这里用的是matlab. 过去写过透视投影,当时是用来做倾斜校正的,这次同样用到了透视投影,不过更有意思,是将 ...

matlab练习程序(构造简单多边形)

简单多边形是指各边不相交的多边形. 首先计算出所有顶点中心位置. 然后求每个顶点与中心的极角. 再对极角进行排序. 连接排序后的点就行了. 结果如下: matlab代码如下: clear all;cl ...

matlab练习程序(简单多边形的核)

还是计算几何, 多边形的核可以这样理解:这个核为原多边形内部的一个多边形,站在这个叫核的多边形中,我们能看到原多边形的任何一个位置. 算法步骤如下: 1.根据原多边形最大和最小的x,y初始化核多边形, ...

随机推荐

Python 端口,IP扫描

Python Socket函数 (1)TCP发送数据时,已建立好连接,不需要指定地址.UDP是面向无连接,每次分别指定发给谁. (2)s.bind(address) 将套接字绑定到地址,在AF_INE ...

深入理解javascript原型和闭包系列

从下面目录中可以看到,本系列有16篇文章,外加两篇后补的,一共18篇文章.写了半个月,从9月17号开始写的.每篇文章更新时,读者的反馈还是可以的,虽然不至于上头条,但是也算是中规中矩,有看的人,也有评 ...

Sql常用语法以及名词解释

Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

Python&plus;PyQt 数据库基本操作

Sqlite: 使用Python的sqlite3: 需要注意下commit方式与qt稍有不同 import sqlite3 class DBManager(): def __init__(self): ...

JavaScript&colon; top对象

一般的JS书里都会在讲框架集的时候讲top,这会让人误解,认为top对象只是代表框架集,其实top的含义应该是说浏览器直接包含的那一个页面对象,也就是说如果你有一个页面被其他页面以iframe的方式包 ...

OpenSSL初瞻及本系列的博文的缘由

OpenSSL初瞻及本系列的博文的缘由1.为什么要写关于“OpenSSL源码分析与学习笔记”系列博文?非常重要的两个原因是Heartbleed和学校课程.我虽然是一个非常崇尚自学的人但是并不代表我不擅 ...

python自学笔记(三)python基本数据类型之列表list

列表list特性概括 1.有序集合 2.通过偏移来索引,从而读取数据 3.支持嵌套 4.可变的类型(dict 字典也是可变的) (1)切片 a = [1,2,3,4,5,6,7] 正向索引 a[0:4 ...

shell编程-项目部署(优化篇)

在实际工作中小编遇到了一个问题那就是当我去操作部署脚本的时候,另一个人也可以操作,这怎么能行啊,后来小编就觉得重新优化下代码,给它加一个进程锁 老规矩,先梳理下思路: 同一时间内,脚本只能够允许一个人 ...

HandlerInterceptor里&commat;Autowired对象为空的解决方法

That's because Spring isn't managing your PagePopulationInterceptor instance. You are creating it yo ...

matlab 凸多边形,matlab练习程序(多边形顶点凹凸性)相关推荐

  1. 判断多边形的凹凸性和计算多边形面积:利用向量叉乘

    根据百度百科的讲解: 凸多边形 现在重点讲解顶点凹凸性法(最常用也是较为简单的方法):计算总结在最后. 利用向量叉乘的相关知识进行计算:假设当前连续的三个顶点分别是P1,P2,P3.计算向量P1P3, ...

  2. 平面凸多边形顶点排序MATLAB,凸多边形顶点顺逆时针排序

    实现思路非常简单和直观,本方法针对与二维平面上的凸多边形.多边形顶点坐标数据结构咱就以opencv举例 现有一组凸多边形二维平面坐标数组//base on opencv std::vector< ...

  3. matlab绘制频散曲线,Matlab绘制频散曲线程序代码.docx

    Matlab绘制频散曲线程序代码.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  4. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  5. dmc matlab程序,matlab编的DMC程序.doc

    matlab编的DMC程序 clear all; % close all; %系统模型建立 num=[0.8]; den=[225 1]; [a,b,c,d]=tf2ss(num,den); % st ...

  6. 精馏塔matlab,MATLAB图解精馏塔理论塔板数程序代码

    <MATLAB图解精馏塔理论塔板数程序代码>由会员分享,可在线阅读,更多相关<MATLAB图解精馏塔理论塔板数程序代码(6页珍藏版)>请在人人文库网上搜索. 1.MATLAB图 ...

  7. 车牌识别与计算机编程,基于MATLAB的车牌识别程序详解.ppt

    基于MATLAB的车牌识别程序详解 自定义一个字符函数,用来从车牌区域中提取出7个字符,其中利用切割函数来进行切割. 程序:function [word,result]=getword(d) word ...

  8. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  9. php调用python绘图程序_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  10. matlab控制算法C语言,PID算法Matlab仿真程序和C程序

    <PID算法Matlab仿真程序和C程序>由会员分享,可在线阅读,更多相关<PID算法Matlab仿真程序和C程序(6页珍藏版)>请在人人文库网上搜索. 1.增量式PID控制算 ...

最新文章

  1. SharePoint 客户端经常弹出Windows验证登录框问题
  2. 斯坦福团队开发智能盲杖,搭载激光雷达,可探测障碍规划路线,完全开源可在家DIY...
  3. leetcode算法题--最长字符串链
  4. jdbc hibernate ibatis 操作Blob 和Clob类型字段(不断更新)
  5. Android journey 1@关于编码风格和命名规范
  6. Oracle SQL语句执行步骤
  7. 飞鸽传书从天齐庙南门出来
  8. 运动会管理系统论文java_java+ssh+mysql大学运动会管理系统(源码+论文+任务书+ppt)...
  9. python分段函数 保留两位小数_使用Python适合分段函数
  10. db链接相关链接相关参数理解
  11. C++基本语法简介,C++程序简介
  12. Appium 屏幕页面滑动(swipe函数实现)
  13. JZOJ_3928. 射击 (Standard IO)
  14. How to do Regularization?(如何正则化)(1)----吴恩达机器学习
  15. 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
  16. C#调用触摸屏小键盘
  17. kodi android 卡顿,解决KODI v17/16在电视上不能打开4K播放卡顿的问题
  18. 诸葛:分析师是如何写好数据研究报告的?
  19. Hibernate错误:java.lang.NoClassDefFoundError: Could not initialize class com.zhbit.util.HibernateUtils
  20. android expandablelistview横向,Android ExpandableListView使用小结(一)

热门文章

  1. GPU共享内存小结---pycuda
  2. pandas 中delete、drop函数的用法
  3. 制作字幕.html教程,手机拍的视频如何加字幕 字幕制作软件使用教程
  4. kettle 完成处理后的字母含义,(I)nput, (O)utput, (R)ead, (W)ritten, (U)pdated, (E)rror
  5. ROS学习笔记14:ROS摄像头驱动及数据接口
  6. 如果说《热带风暴》在你身上刮过,你还剩下什么?
  7. Java多线程系列--【JUC集合10】- ConcurrentLinkedQueue
  8. Typora修改空格样式(blockquote)
  9. [多媒体] 10大开源视频剪辑软件
  10. Jupyter notebook 运行时出现 “服务似乎挂掉了,但是会立刻重启的”