该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
%观测数据的输入
n=input('请输入闭合导线的点数:');
for i=1:n %按边数进行循环
a=num2str(i); %数字转换为字符串
string1=(char(('请输入第')',a,('条导线的边长:')'))';
bian(i)=input(string1);
b=num2str(i);
string2=(char(('请输入第')',b,('个转折角:')'))';
jiao1=input(string2,'s');
c=jiao1;
du=str2num(c(1:3));
fen=str2num(c(4:5));
miao=str2num(c(6:7));
jiao2(i)=du+fen/60+miao/3600;
end
%起算数据的输入
x=input('请输入起始已知点x的坐标:');
y=input('请输入起始已知点y的坐标:');
string3=(char('请输入起始已知方向的起算方位角:'));
fwj1=input(string3,'s');
c=fwj1;
du=str2num(c(1:3));
fen=str2num(c(4:5));
miao=str2num(c(6:7));
fwj2=du+fen/60+miao/3600;
%角度闭合差的计算
fb=sum(jiao2)-(n-2)*180;
for i=1:n
v(i)=(-1)*fb/n;
end
%真方位角计算
for i=1:n
if i==1
fwjz(1)=fwj2+jiao2(1)+v(1)-180;
end
if i>1
fwjz(i)=fwjz(i-1)+jiao2(i)+v(i)-180;
end
if fwjz(i)>0
fwjz1(i)=fwjz(i);
end
if fwjz(i)<0
fwjz1(i)=fwjz(i)+360;
end
end
%坐标闭合差计算
xzq=cosd(fwj2)*bian(1);
yzq=sind(fwj2)*bian(1);
for i=1:(n-1)
xz(i)=cosd(fwjz1(i))*bian(i+1);
yz(i)=sind(fwjz1(i))*bian(i+1);
end
fx=xzq+sum(xz);
fy=yzq+sum(yz);
fs=sqrt(fx^2+fy^2);
k=fs/sum(bian);
%坐标计算
for i=1:n
vx=(-1)*fx/sum(bian)*bian;
vy=(-1)*fy/sum(bian)*bian;
end
for i=1:n
if i==1
X(1)=x+xzq+vx(1);
Y(1)=y+yzq+vy(1);
end
if i>1
X(i)=X(i-1)+xz(i-1)+vx(i);
Y(i)=Y(i-1)+yz(i-1)+vy(i);
end
end