博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab练习程序(多边形顶点凹凸性)
阅读量:6457 次
发布时间:2019-06-23

本文共 952 字,大约阅读时间需要 3 分钟。

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

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

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

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

结果如下:

matlab代码如下:

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),'*');           elseif r<0        plot(p(i,1),p(i,2),'o');             endendplot(p(:,1),p(:,2));p=circshift(p,1);plot(p(:,1),p(:,2));

createSimplyPoly.m

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

 

转载地址:http://arnzo.baihongyu.com/

你可能感兴趣的文章
提高效率—编程中的技巧
查看>>
导出excel——弹出框
查看>>
高并发程序设计
查看>>
ExtJs之组件(window)
查看>>
SoapUI中如何传递cookie
查看>>
shell中的一些技巧和知识
查看>>
eclipse 导出Runnable JAR file ,双击无法执行原因与解决 双击后闪退的原因 批处理java打包文件 @echo off start javaw -jar *.jar...
查看>>
静态成员变量的初始化
查看>>
POJ 1269 Intersecting Lines(判断两直线位置关系)
查看>>
MSSQL数据库跨表和跨数据库查询方法简(转)
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
SSM——查询_分页
查看>>
梯度下降(Gradient descent)
查看>>
Windows平台分布式架构实践 - 负载均衡
查看>>
如何让LinearLayout也有类似Button的点击效果?
查看>>
JAVA读取文件方法大全
查看>>
寻找最小的k个数
查看>>
CSS3中的动画效果记录
查看>>
CI框架整合微信公共平台接口
查看>>