- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 编程实践题
编程实践题
一、程序功能
图根控制测量中的测角交会计算(涉及的计算公式可以参考《现代普通测量学》)。
二、程序要求
1. 程序能完成前方交会、测方交会未知点坐标计算,坐标计算使用的余切公式如下:
2. 侧方交会计算时,能够适应任意一个已知内角未设站测量水平角的情况;
3. 程序能够进行两种测角交会的检核计算,
前方交会采用两组三角形分别计算坐标,然后通过两组坐标计算横向位移(不得超过所测地形图图上0.2mm)进行检核;
侧方交会能过检核角的计算值值与观测值之差(不得超过40秒)进行检核。
三、编程思路
为实现程序功能,至少应编写以下类文件:
1. 定义控制点类,成员域包括x、y坐标,为了扩充程序功能,还考虑加入高程、等级属性;
public class J_Controlpoint
{
public int x, y;
public J_Controlpoint(int x_p,int y_p)
{x=x_p;
y=y_p;
}}
2. 定义基本计算类,该类至少包括以下方法:
余切公式计算待定点坐标;{ x_p1=(x_a*Math.cot(b*Math.PI/180)+x_b*Math.cot(a*Math.PI/180)-y_a+y_b)/(Math.cot(a*Math.PI/180)+Math.cot(b*Math.PI/180));
y_p1=(y_a*Math.cot(b*Math.PI/180)+y_b*Math.cot(a*Math.PI/180)+x_a-x_b)/(Math.cot(a*Math.PI/180)+Math.cot(b*Math.PI/180));}
public double J_Calculation
{public static Point cosine (J_Controlpoint a, J_Controlpoint b,double α,double β)
{double cotα=Math.cos(Math.toRadians(α))/Math.sin(Math.toRadians(α));
double cotβ=Math.cos(Math.toRadians(β))/Math.sin(Math.toRadians(β));
Point p=new Point(0,0);
p.x=(_a.x*cotβ+_b.x*cotα-_a.y+_b.y)/(cotα+cotβ);
p.y=(_a.y*cotβ+_b.y*cotα+_a.x-_b.x)/(cotα+cotβ);
return p;
}
根据两点坐标计算坐标方位角;
public static double angle(Point a,Point b){
double tan_ab=(_b.y-_a.y)/(_b.x-_a.x);
double angle_ab=Math.toDegrees(Math.atan(tan_ab));
if(angle_ab0){
angle_ab+=360;
}
return angle_ab;
}
根据两点坐标计算两点之间的水平距离
public static double distance(Point a,Point b){
double i=Math.sqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y));
return i;
}
3. 定义一个坐标检核接口,该接口包含一个根据两组坐标判断成果是否合格的方法。
public interface J_Point
{if(i=0.02)
System.out.printIn(“所计算结果符合要求!”);
else
System.out.printIn(“所计算结果不符合要求!”);}
4. 定义一个角度检核接口,刻接口包含一个根据检核角判断成果是否合格的方法。
public interface J_Angle
{ if(Math.sqrt((x_p1-x_p)* (x_p1-x_p)+ (y_p1-y_p)* (y_p1-y_p))=0.02)
System.out.printIn(“所计算结果符合要求!”);
else
System.out.printIn(“所计算结果不符合要求!”);
}
5. 定义前方交会类,完成前方交会坐标计算,实现坐标检核接口,完成检核计算。
class Qian
{ Point A;//已知点
Point B;//已知点
Point C;//已知点,仅用于检核
//Point p;//待定点
//Point p_1;//待定点,仅用于检核
double α;//已知角
double β;//已知角
do
文档评论(0)