测量程序设计
实验报告
实验名称:坐标正反算
实验三 坐标正反算
实验目
编写坐标正反算程序格式化文件数进行计算验证程序
二实验容
1编写坐标正算程序
1) 建立xy_direct命名函数函数输入输出格式
[x2y2] xy_direct(x1y1distance azimuth)
度转度分秒:
>> function dms degree2dms(jiaodu)
>>degree fix(jiaodu)
>>mimute fix((jiaodudegree)*60)
>>second ((jiaodudegree)*60mimute)*60
>>dms degree+mimute100+second10000
度分秒转度:
>> function degree dms2degree(jiaodu)
>>degree fix(jiaodu)
>> mimute fix((jiaodudegree)*100)
>>second (jiaodudegreemimute100)*10000
>>degree degree+mimute60+second3600
弧度转度:
>> function dmsrad2dms(rad)
>> radabs(rad)
>> jiaodurad*1800pi
>> lfix(a)
>> b(al)*600
>> mfix(b)
>> al+m1000+(bm)*0006
>> if(rad<0)
>> dmsa
>> else
>> dmsa
>> end
>> degree fix(jiaodu)
>> mimute fix((jiaodudegree)*60)
>> second ((jiaodudegree)*60mimute)*60
>> dms degree+mimute100+second10000
>> if(rad<0)
dmsdms
else
dmsdms
end
return
>> function [x2y2] xy_direct(x1y1distance azimuth)
>>x2x1+distance*cos(azimuth*pi180)
>>y2y1+distance*sin(azimuth*pi180)
>>end
2) 文件data1txt中数进行坐标正算已知点计算点坐标格式存贮文件data2txt中
data1txt格式: x1 y1 距离 方位角(ddmmss)
data2txt格式:
x1 y1 x2 y2
>> [filenamepathname]uigetfile
>> file[pathnamefilename]
>> dataimportdata(file)
>> [x1y1]datadata([12])
>> azimuthdms2degree(datadata(4))
>> distancedatadata(3)
>> [x2y2]xy_direct(x1y1distanceazimuth)
>>[x2y2]xy_direct(datadata(1)datadata(2)distanceazimuth)
>> [filename_outpathname_out]uiputfile
>> fileout[pathname_outfilename_out]
>> fidfopen(fileout'wt')
>> fprintf(fid'x1 y1 x2 y2\n')
>> fprintf(fid'82f 82f 82f 82f\n'[datadata(12)x2y2])
>> fclose('all')
ans
0
2编写坐标反算程序
1)建立xy_inv命名函数函数输入输出格式
[distance azimuth] xy_inv(x1y1 x2y2)
>> function [distance azimuth] xy_inv(x1y1 x2y2)
>> delt_xx2x1
>> delt_yy2y1
>> [mx]size(delt_x)
>> azimuthzeros(0m)
>> for i1m
azimuth_tempatan2(abs(delt_y(i))abs(delt_x(i)))
if delt_x(i)>0&&delt_y(i)>0
azimuth(i)azimuth_temp
elseif delt_x(i)>0&&delt_y(i)<0
azimuth(i)2*piazimuth_temp
elseif delt_x(i)<0&&delt_y(i)>0
azimuth(i)piazimuth_temp
else delt_x(i)<0&&delt_y(i)<0
azimuth(i)pi+azimuth_temp
end
end
>> azimuthrad2dms(azimuth)
>> distancesqrt((x2x1)^2+(y2y1)^2)
>> fprintf('两点间距离:83f 方位角:83f'distanceazimuth)
2) 文件data2txt中数进行坐标反算计算结果格式存贮文件data3txt中
Data3txt格式: x1 y1 x2 y2 距离 方位角(ddmmss)
>> [filenamepathname] uigetfile
>>file [pathname filename]
>>dataimportdata(file)
>> [distance azimuth] xy_inv(datadata(1)datadata(2)datadata(3)datadata(4))
>> [filename_outpathname_out] uiputfile
>>fileout [pathname_out filename_out]
>>fid fopen(fileout'wt')
>>fprintf(fid' x1 y1 x2 y2 距离 方位角(ddmmss)\n')
>>fprintf(fid'82f 82f 82f 82f 82f 84f\n'[datadata(14)distanceazimuth']')
>>fclose('all')
3函数
开根号sqrt(x)
sin(rad)cos(rad)atan2(yx)find
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档