![]() |
[求助]画四边形
请问知道四个点的坐标(经纬度)如何画四边形(不规则)用matlab
6.5 谢谢! |
用PLOT函数,plot([x],[y]),[x][y]是坐标向量,是四边形的四个点的坐标围成的,所以含有5个元素,由一个元素起始转一圈,到这个元素结束的一个向量。
|
这个问题没那么简单,仔细考虑以后,我自己编了一个绘制任意多边形的程序,分享一下。
x,y是所需的直角坐标系坐标。 function dbx(x,y) a=min(x);b=max(x);c=min(y);d=max(y); [X,Y]=meshgrid(linspace(a,b,100),linspace(c,d,100));k=size(X) Z=X+Y*i; z=x+y*i;n=length(x);P=zeros*Z;Q=P;R=P;T=P; P=abs(Z-z(1));Q=abs(Z-z(2));R=abs(Z-z(3));T=abs(Z-z(4));S=P+Q+R+T;S=reshape(S,1,k(1)*k(2)); m=find(S==min(S)); Z=reshape(Z,1,k(1)*k(2));Zmin=Z(m); a1=angle(z-Zmin); b1=sort(a1); c1=zeros(size(a1)); for j=1:n c1(j)=find(a1==b1(j)); end c1 for j=1:(n-1) hold on,plot([x(c1(j)),x(c1(j+1))],[y(c1(j)),y(c1(j+1))]);hold on,plot([x(c1(j)),x(c1(j+1))],[y(c1(j)),y(c1(j+1))]); if j==n-1 plot([x(c1(j+1)),x(c1(1))],[y(c1(j+1)),y(c1(1))]);hold off end end |
谢谢大家了
|
所有时间均为北京时间。现在的时间是 03:00。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.