[matlab] 11.多边形凹凸性检测
MATLAB 检测 11 多边形
2023-09-11 14:14:58 时间
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
clear all;close all;clc; n=20; p=rand(n,2); p=createSimplyPoly(p); %创建简单多边形 hold on; for i=1:n if i==1 %处理第一个点 v1=p(n,:)-p(1,:); %当前点到前一点向量 v2=p(2,:)-p(1,:); %当前点到后一点向量 elseif i==n %最后一个点 v1=p(n-1,:)-p(n,:); v2=p(1,:)-p(n,:); else %其他点 v1=p(i-1,:)-p(i,:); v2=p(i+1,:)-p(i,:); end r=det([v1;v2]); %叉乘后第三个向量的方向 if r>0 plot(p(i,1),p(i,2),'r>'); elseif r<0 plot(p(i,1),p(i,2),'bs'); end end plot(p(:,1),p(:,2),'k'); p=circshift(p,1); plot(p(:,1),p(:,2),'k');
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
function p=createSimplyPoly(p) cen=mean(p); ang=atan2(p(:,1)-cen(1),p(:,2)-cen(2)); %每个点到坐标中心极角 p=[p,ang]; p=sortrows(p,3); %按极角排序 p=p(:,1:2); end
有时需要对多边形各顶点的凹凸性做判断。
先计算待处理点与相邻点的两个向量,再计算两向量的叉乘,根据求得结果的正负可以判断凹凸性。
结果为负则为凹顶点,为正则为凸顶点。
凹顶点用"bs"表示,凸顶点用"r>"表示。
相关文章
- matlab RANSAC拟合空间球
- matlab 点云可视化(4)——可视化点云包围框
- [转载] 关于matlab GUI的一点心得
- Matlab:Matlab编程语言的简介、安装、学习路线(几十项代码编程案例分析)之详细攻略
- 遗传算法(GA)优化后RBF神经网络优化分析(Matlab代码实现)
- 【旅行商问题】基于遗传算法求解TSP问题(Matlab代码实现)
- 衡量金融资产回报和波动溢出效应并应用于全球股票市场(Matlab代码实现)
- 【无人车】无人驾驶地面车辆避障研究(Matlab代码实现)
- ECG信号处理——包括基本波检测、信号去噪、信号重建度量(Matlab代码实现)
- 【目标检测】基于稀疏表示的高光谱图像(Matlab代码实现)
- 【图像处理】小波编码图像中伪影和纹理的检测(Matlab代码实现)
- 基于灰度共生矩阵的图形纹理检测及路面状况的 SVM 分类实现(Matlab代码实现)
- 【MATLAB】绘制三维曲线图、PEAKS函数曲线
- 【MATLAB】MATLAB 仿真 — 基于matlab的QPSK系统仿真
- 【图像处理】基于matlab自适应中值滤波图像去噪
- 【图像处理】基于matlab形态学水果蔬菜缺陷检测
- 【图像处理】基于 MATLAB 和计算机视觉工具箱的红外图像弱小目标检测与跟踪
- 通过MATLAB实现雷达数字化正交解调、数字脉冲处理、固定目标对消、动目标检测MTD、恒虚警CFAR处理
- m基于matlab的超宽带MIMO雷达对目标的检测仿真,考虑时间反转
- 基于matlab的CHPSO异质粒子群优化算法仿真
- 基于典型相关分析的故障检测和过程监控算法研究(Matlab代码实现)
- 【故障诊断】风力涡轮机自动故障检测和隔离的最优解决方案研究(Matlab代码实现)