气象万千0除以0等于几什么等于什么

1879人阅读
Polar极坐标地图投影,主要用于714数字雷达、多普勒天气雷达图像的显示、处理,以及屏幕坐标(像素点)与经纬度坐标的转换。 Polar.java <font color="#1&/**<font color="#2&&*<font color="#3&&*&&Polar&投影(扫描方式,自正北方向顺时针)<font color="#4&&*<font color="#5&&*&&&&&PACKAGE:&mon.projection<font color="#6&&*&&&&FILENAME:&Polar.java<font color="#7&&*&&&&LANGUAGE:&Java2&v1.4<font color="#8&&*&&&&ORIGINAL:&无<font color="#9&&*&DESCRIPTION:&极坐标投影(主要用于雷达图像处理)<font color="#0&&*&&&&&RELATED:&mon.projection.Lambert(兰勃特投影)<font color="#1&&*&&&&&&EDITOR:&UltraEdit-32&v12.20a(Windows)&NEdit(Linux)<font color="#2&&*&&&&&&CREATE:&&20:08:23<font color="#3&&*&&&&&&UPDATE:&<font color="#4&&*&&&&&&AUTHOR:&刘泽军&()<font color="#5&&*&&&&&&&&&&&&&&广西气象减灾研究所<font color="#6&&*&&&&Guangxi&Institude&of&Meteorology&and&Disaster-reducing&Research(GIMDR)<font color="#7&&*<font color="#8&&*&&&&Compile&:&javac&Polar.java<font color="#9&&*<font color="#0&&*&How&to&use&Polar&class:<font color="#1&&*<font color="#2&&*&Polar&polar&=&new&Polar(new&Point(240,&240),&109.24,&24.35,&1.5);//构造函数<font color="#3&&*&polar.setScale(1.0);//设置比例尺,1公里对应1个像素点<font color="#4&&*&...<font color="#5&&*<font color="#6&&*/<font color="#7&<font color="#8&/**<font color="#9&&*<font color="#0&&*&&&&&&&&&扫描平面<font color="#1&&*&&&&&&&&&&&&/<font color="#2&&*&&&&&&&&&&&/<font color="#3&&*&&&&&&&&&&/<font color="#4&&*&&&&&&&&&/<font color="#5&&*&&&&&&&&/<font color="#6&&*&&&&&&&/&&仰角<font color="#7&&*&&&&&&--------------------&0度平面<font color="#8&&*<font color="#9&&*&如图所示:<font color="#0&&*&&&&&&&&&&扫描平面=&0度平面,需要乘以cos(仰角)<font color="#1&&*&&&&&&&&&&0度平面=&扫描平面,需要除以cos(仰角)<font color="#2&&*<font color="#3&&*&注意,日常显示的雷达图是扫描平面上的图。本类所说的屏幕指扫描平面。<font color="#4&&*<font color="#5&&*/<font color="#6&<font color="#7&/**<font color="#8&&*&雷达扫描示意图<font color="#9&&*<font color="#0&&*&&&&&&&&&&&&&&&&&&&&359&0<font color="#1&&*&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&radius<font color="#2&&*&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&/<font color="#3&&*&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&/<font color="#4&&*&&&&&&&&&&&&&&&&&&&&&&&&|angle/<font color="#5&&*&&&&&&&&&&&&&&&&&&&&&&&&|&&&&/<font color="#6&&*&&&&&&&&&&&&&&&&&&&&&&&&|&^&/<font color="#7&&*&&&&&&&&&&&&&&&&&&&&&&&&|&&/<font color="#8&&*&&&&&&&&&&&&&&&&&&&&&&&&|&/<font color="#9&&*&&&&&&&&&&&&&&&&&&&&&&&&|/<font color="#0&&*&270&-----------------中心-----------------&90<font color="#1&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#2&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#3&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#4&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#5&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#6&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#7&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#8&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#9&&*&&&&&&&&&&&&&&&&&&&&&&&&|<font color="#0&&*&&&&&&&&&&&&&&&&&&&&&&&180<font color="#1&&*/<font color="#2&<font color="#3&/**<font color="#4&&*&&Polar.java的函数列表<font color="#5&&*&&1、计算球面距离<font color="#6&&*&&double&distanceOfSphere(double&lon1,&double&lat1,&double&lon2,&double&lat2);<font color="#7&&*&&2、构造函数,不考虑仰角<font color="#8&&*&&Polar(Point&pos,&double&lon,&double&lat);<font color="#9&&*&&3、构造函数,考虑仰角<font color="#0&&*&&Polar(Point&pos,&double&lon,&double&lat,&double&elv);<font color="#1&&*&&4、获得极坐标中心点的屏幕位置<font color="#2&&*&&getCenterPosition();<font color="#3&&*&&5、设置极坐标中心点的屏幕位置<font color="#4&&*&&setCenterPosition(Point&pos);<font color="#5&&*&&6、获得极坐标中心点的经度<font color="#6&&*&&getCenterLongitude();<font color="#7&&*&&7、获得极坐标中心点的纬度<font color="#8&&*&&getCenterLatitude();<font color="#9&&*&&8、设置极坐标中心点的经纬度<font color="#0&&*&&setCenterCoordinate(double&lon,&double&lat);<font color="#1&&*&&9、获得仰角<font color="#2&&*&&getElevation();<font color="#3&&*&&10、设置仰角<font color="#4&&*&&setElevation(double&elv);<font color="#5&&*&&11、获得缩放比例尺<font color="#6&&*&&getScale();<font color="#7&&*&&12、设置缩放比例尺<font color="#8&&*&&setScale(double&value);<font color="#9&&*&&13、获得经纬度对应的屏幕坐标(扫描平面),主要用于体扫数据显示、底图叠加等。<font color="#0&&*&&getPosition(double&lon,&double&lat);<font color="#1&&*&&14、获得极坐标对应的屏幕坐标(扫描平面),主要用于体扫数据显示、底图叠加等。<font color="#2&&*&&getXY(double&radius,&double&angle);<font color="#3&&*&&15、根据屏幕坐标获得极半径<font color="#4&&*&&getRadius(int&x,&int&y);<font color="#5&&*&&16、根据经纬度坐标获得<font color="#6&&*&&getRadius(double&lon,&double&lat);<font color="#7&&*&&17、根据屏幕坐标获得极角<font color="#8&&*&&getAngle(int&x,&int&y);<font color="#9&&*&&18、根据经纬度坐标获得极角<font color="#0&&*&&getAngle(double&lon,&double&lat);<font color="#1&&*&&19、根据屏幕坐标获得对应的经度值,主要用于雷达产品的定位、底图叠加、转换为经纬度网格产品、拼图等。<font color="#2&&*&&getLongitude(int&x,&int&y);<font color="#3&&*&&20、根据屏幕坐标获得对应的纬度值,主要用于雷达产品的定位、底图叠加、转换为经纬度网格产品、拼图等。<font color="#4&&*&&getLatitude(int&x,&int&y);<font color="#5&&*&&21、获得屏幕坐标对应的经纬度<font color="#6&&*&&public&Point2D.Double&getCoordinate(int&x,&int&y);<font color="#7&&*/<font color="#8&<font color="#9&package&mon.<font color="#0&<font color="#1&import&java.awt.*;<font color="#2&import&java.awt.geom.*;<font color="#3&import&java.lang.Math.*;<font color="#4&<font color="#5&public&class&Polar&{<font color="#6&<font color="#7&&&&&//静态常量,地球半径,来源:《大气科学常用公式》,P601,附录<font color="#8&&&&&public&static&double&RADIUS&&&&&&&&&=&<font color="#71.004;//地球平均半径,单位:公里(Km)。<font color="#9&&&&&public&static&double&RADIUS_POLAR&&&=&<font color="#56.755;//地球两极半径,单位:公里(Km)。<font color="#0&&&&&public&static&double&RADIUS_EQUATOR&=&<font color="#73.140;//地球赤道半径,单位:公里(Km)。<font color="#1&<font color="#2&&&&&//私有成员<font color="#3&&&&&private&Point&&&centerP&&&&&&&&&&&&&//中心对应的屏幕位置<font color="#4&&&&&private&double&&centerLongitude&=&<font color="#.0;&&&&&&//中心经度<font color="#5&&&&&private&double&&centerLatitude&&=&<font color="#.0;&&&&&&//中心纬度<font color="#6&&&&&private&double&&perKilometer&&&&=&<font color="#.0;&&&&&&//比例尺:一公里对应的像素点数(扫描平面)<font color="#7&&&&&private&double&&elevation&&&&&&&=&<font color="#.0;&&&&&&//仰角<font color="#8&&&&&private&double&&cosineElevation&=&<font color="#.0;&&&&&&//仰角的余弦值<font color="#9&&&&&private&double&&kmPerDegreeX&&&&=&<font color="#.0;&&&&&&//1经度对应的距离(公里),不同纬度数值不同<font color="#0&&&&&private&double&&kmPerDegreeY&&&&=&<font color="#.0;&&&&&&//1纬度对应的距离(公里),不同纬度数值不同<font color="#1&<font color="#2&/**<font color="#3&&*&功能:计算球面上两点间的距离(单位:公里),原在edu.gimdr.Atmos.Meteorology类中写有,为避免import过多的类,故重写一份<font color="#4&&*&参数:<font color="#5&&*&&lon1,lat1&&&-&第1点的位置(经纬度)<font color="#6&&*&&lon2,lat2&&&-&第2点的位置(经纬度)<font color="#7&&*&返回值:<font color="#8&&*&&&&&&球面距离<font color="#9&&*/<font color="#0&&&&&public&static&double&distanceOfSphere(double&lon1,&double&lat1,&double&lon2,&double&lat2)&{<font color="#1&&&&&&&&&/*&&公式:<font color="#2&&&&&&&&&&&&&A(x,y)&&B(a,b)<font color="#3&&&&&&&&&&&&&AB点的球面距离=R*{arccos[cos(b)*cos(y)*cos(a-x)+sin(b)*sin(y)]},&by&Google<font color="#4&&&&&&&&&*/<font color="#5&<font color="#6&&&&&&&&&double&&rlon1&&&=&Math.toRadians(lon1);<font color="#7&&&&&&&&&double&&rlat1&&&=&Math.toRadians(lat1);<font color="#8&&&&&&&&&double&&rlon2&&&=&Math.toRadians(lon2);<font color="#9&&&&&&&&&double&&rlat2&&&=&Math.toRadians(lat2);<font color="#0&<font color="#1&&&&&&&&&return(Polar.RADIUS*(Math.acos(Math.cos(rlat2)*Math.cos(rlat1)*Math.cos(rlon2-rlon1)+Math.sin(rlat2)*Math.sin(rlat1))));<font color="#2&&&&&}<font color="#3&<font color="#4&/**<font color="#5&&*&功能:构造函数<font color="#6&&*&参数:<font color="#7&&*&&&&&&pos&&&&&-&中心对应的屏幕位置<font color="#8&&*&&&&&&lon&&&&&-&中心对应的经度坐标<font color="#9&&*&&&&&&lat&&&&&-&中心对应的纬度坐标<font color="#0&&*&返回值:<font color="#1&&*&&&&&&无<font color="#2&&*/<font color="#3&&&&&public&Polar(Point&pos,&double&lon,&double&lat)&{<font color="#4&&&&&&&&&elevation&&&&&&&=&<font color="#.0;//无仰角<font color="#5&&&&&&&&&cosineElevation&=&<font color="#.0;<font color="#6&&&&&&&&&setCenterPosition(pos);<font color="#7&&&&&&&&&setCenterCoordinate(lon,&lat);<font color="#8&&&&&}<font color="#9&<font color="#0&/**<font color="#1&&*&功能:构造函数<font color="#2&&*&参数:<font color="#3&&*&&&&&&pos&&&&&-&中心对应的屏幕位置<font color="#4&&*&&&&&&lon&&&&&-&中心对应的经度坐标<font color="#5&&*&&&&&&lat&&&&&-&中心对应的纬度坐标<font color="#6&&*&&&&&&elv&&&&&=&仰角<font color="#7&&*&返回值:<font color="#8&&*&&&&&&无<font color="#9&&*/<font color="#0&&&&&public&Polar(Point&pos,&double&lon,&double&lat,&double&elv)&{<font color="#1&&&&&&&&&elevation&&&&&&&=&Math.toRadians(Math.IEEEremainder(Math.abs(elv),&<font color="#.0));//在0-90度之间,但不能为90度<font color="#2&&&&&&&&&cosineElevation&=&Math.cos(elevation);//仰角的余弦值<font color="#3&&&&&&&&&setCenterPosition(pos);<font color="#4&&&&&&&&&setCenterCoordinate(lon,&lat);<font color="#5&&&&&}<font color="#6&<font color="#7&/**<font color="#8&&*&功能:获得极坐标中心位置<font color="#9&&*&参数:<font color="#0&&*&&&&&&无<font color="#1&&*&返回值:<font color="#2&&*&&&&&&极坐标中心对应的屏幕位置<font color="#3&&*/<font color="#4&&&&&public&Point&getCenterPosition()&{<font color="#5&&&&&&&&&return(centerPosition);<font color="#6&&&&&}<font color="#7&<font color="#8&/**<font color="#9&&*&功能:设置极坐标的中心位置(屏幕坐标)<font color="#0&&*&参数:<font color="#1&&*&&&&&&pos&&&&&-&新的中心位置(屏幕坐标)<font color="#2&&*&返回值:<font color="#3&&*&&&&&&无<font color="#4&&*/<font color="#5&&&&&public&void&setCenterPosition(Point&pos)&{<font color="#6&&&&&&&&&centerPosition&&=&<font color="#7&&&&&}<font color="#8&<font color="#9&/**<font color="#0&&*&功能:获得极坐标中心对应的经度坐标<font color="#1&&*&参数:<font color="#2&&*&&&&&&无<font color="#3&&*&返回值:<font color="#4&&*&&&&&&极坐标中心对应的经度坐标<font color="#5&&*/<font color="#6&&&&&public&double&getCenterLongitude()&{<font color="#7&&&&&&&&&return(centerLongitude);<font color="#8&&&&&}<font color="#9&<font color="#0&/**<font color="#1&&*&功能:获得极坐标中心对应的纬度坐标<font color="#2&&*&参数:<font color="#3&&*&&&&&&无<font color="#4&&*&返回值:<font color="#5&&*&&&&&&极坐标中心对应的纬度坐标<font color="#6&&*/<font color="#7&&&&&public&double&getCenterLatitude()&{<font color="#8&&&&&&&&&return(centerLatitude);<font color="#9&&&&&}<font color="#0&<font color="#1&/**<font color="#2&&*&功能:设置极坐标的中心位置(经纬度坐标)<font color="#3&&*&参数:<font color="#4&&*&&&&&&lon&&&&&-&新的中心位置(经度值)<font color="#5&&*&&&&&&lat&&&&&-&新的中心位置(纬度值)<font color="#6&&*&返回值:<font color="#7&&*&&&&&&无<font color="#8&&*/<font color="#9&&&&&public&void&setCenterCoordinate(double&lon,&double&lat)&{<font color="#0&&&&&&&&&centerLongitude&=&<font color="#1&&&&&&&&&centerLatitude&&=&<font color="#2&&&&&&&&&//中心经纬度或仰角发生改变,必须重新计算经向和纬向的1度对应的球面距离<font color="#3&&&&&&&&&kmPerDegreeX&&&&=&distanceOfSphere(centerLongitude,&centerLatitude,&centerLongitude+<font color="#.0,&centerLatitude)&/&cosineE<font color="#4&&&&&&&&&kmPerDegreeY&&&&=&distanceOfSphere(centerLongitude,&centerLatitude,&centerLongitude,&centerLatitude+<font color="#.0)&/&cosineE<font color="#5&&&&&}<font color="#6&<font color="#7&/**<font color="#8&&*&功能:获得仰角<font color="#9&&*&参数:<font color="#0&&*&&&&&&无<font color="#1&&*&返回值:<font color="#2&&*&&&&&&仰角的度数<font color="#3&&*/<font color="#4&&&&&public&double&getElevation()&{<font color="#5&&&&&&&&&return(Math.toDegrees(elevation));<font color="#6&&&&&}<font color="#7&<font color="#8&/**<font color="#9&&*&功能:设置仰角<font color="#0&&*&参数:<font color="#1&&*&&&&&&elv&&&&&-&新的仰角<font color="#2&&*&返回值:<font color="#3&&*&&&&&&无<font color="#4&&*/<font color="#5&&&&&public&void&setElevation(double&elv)&{<font color="#6&&&&&&&&&elevation&&&&&&&=&Math.toRadians(Math.IEEEremainder(Math.abs(elv),&<font color="#.0));//在0-90度之间,但不能为90度<font color="#7&&&&&&&&&cosineElevation&=&Math.cos(elevation);//仰角的余弦值<font color="#8&&&&&&&&&//中心经纬度或仰角发生改变,必须重新计算经向和纬向的1度对应的球面距离<font color="#9&&&&&&&&&kmPerDegreeX&&&&=&distanceOfSphere(centerLongitude,&centerLatitude,&centerLongitude+<font color="#.0,&centerLatitude)&/&cosineE<font color="#0&&&&&&&&&kmPerDegreeY&&&&=&distanceOfSphere(centerLongitude,&centerLatitude,&centerLongitude,&centerLatitude+<font color="#.0)&/&cosineE<font color="#1&&&&&}<font color="#2&<font color="#3&/**<font color="#4&&*&功能:获得比例尺,即1公里对应的像素点数<font color="#5&&*&参数:<font color="#6&&*&&&&&&无<font color="#7&&*&返回值:<font color="#8&&*&&&&&&比例尺<font color="#9&&*/<font color="#0&&&&&public&double&getScale()&{<font color="#1&&&&&&&&&return(perKilometer);<font color="#2&&&&&}<font color="#3&<font color="#4&/**<font color="#5&&*&功能:设置比例尺,即1公里对应的像素点数<font color="#6&&*&参数:<font color="#7&&*&&&&&&value&&&-&比例尺数值<font color="#8&&*&返回值:<font color="#9&&*&&&&&&无<font color="#0&&*/<font color="#1&&&&&public&void&setScale(double&value)&{<font color="#2&&&&&&&&&perKilometer&&&&=&<font color="#3&&&&&}<font color="#4&<font color="#5&/**<font color="#6&&*&功能:获得经纬度对应的屏幕像素坐标,与雷达仰角有关,主要用于体扫数据显示、底图叠加等。<font color="#7&&*&参数:<font color="#8&&*&&&&&&lon&-&经度<font color="#9&&*&&&&&&lat&-&纬度<font color="#0&&*&返回值:<font color="#1&&*&&&&&&对应的屏幕坐标<font color="#2&&*/<font color="#3&&&&&public&Point&getPosition(double&lon,&double&lat)&{<font color="#4&&&&&&&&&double&&disX&&&&=&distanceOfSphere(lon,&centerLatitude,&centerLongitude,&centerLatitude)/cosineE<font color="#5&&&&&&&&&double&&disY&&&&=&distanceOfSphere(centerLongitude,&lat,&centerLongitude,&centerLatitude)/cosineE<font color="#6&&&&&&&&&return(new&Point(centerPosition.x+(lon&centerLongitude?<font color="#:-<font color="#)*(int)(disX*perKilometer),centerPosition.y-(lat&centerLatitude?<font color="#:-<font color="#)*(int)(disY*perKilometer)));<font color="#7&&&&&}<font color="#8&<font color="#9&/**<font color="#0&&*&功能:获得极坐标对应的屏幕像素坐标,与雷达仰角无关,主要用于体扫数据显示、底图叠加等。<font color="#1&&*&参数:<font color="#2&&*&&&&&&radius&&&&&&-&极半径<font color="#3&&*&&&&&&angle&&&&&&&-&角度(以正北方向顺时针)<font color="#4&&*&返回值:<font color="#5&&*&&&&&&对应的屏幕坐标<font color="#6&&*/<font color="#7&<font color="#8&&&&&public&Point&getXY(double&radius,&double&angle)&{<font color="#9&&&&&&&&&int&x&&&=&(new&Double(radius&*&Math.sin(Math.toRadians(angle)))).intValue();<font color="#0&&&&&&&&&int&y&&&=&(new&Double(radius&*&Math.cos(Math.toRadians(angle)))).intValue();<font color="#1&&&&&&&&&return(new&Point(centerPosition.x+x,&centerPosition.y-y));<font color="#2&&&&&}<font color="#3&<font color="#4&/**<font color="#5&&*&功能:获得屏幕像素点位置的极坐标半径,由于是输入参数是扫描平面上的值,故与雷达仰角无关。<font color="#6&&*&参数:<font color="#7&&*&&&&&&x&&&-&水平坐标<font color="#8&&*&&&&&&y&&&-&垂直坐标<font color="#9&&*&返回值:<font color="#0&&*&&&&&&与极坐标中心的距离,即极半径<font color="#1&&*/<font color="#2&&&&&public&double&getRadius(int&x,&int&y)&{<font color="#3&&&&&&&&&return(Math.sqrt(<font color="#.0*(x-centerPosition.x)*(x-centerPosition.x)+<font color="#.0*(y-centerPosition.y)*(y-centerPosition.y)));<font color="#4&&&&&}<font color="#5&<font color="#6&/**<font color="#7&&*&功能:获得经纬度位置的极坐标半径,与雷达仰角有关。<font color="#8&&*&参数:<font color="#9&&*&&&&&&lon&-&经度坐标<font color="#0&&*&&&&&&lat&-&纬度坐标<font color="#1&&*&返回值:<font color="#2&&*&&&&&&与极坐标中心的距离(象素点),即极半径<font color="#3&&*/<font color="#4&&&&&public&double&getRadius(double&lon,&double&lat)&{<font color="#5&&&&&&&&&Point&&&pos&=&getPosition(lon,&lat);//此函数已经考虑了仰角的影响<font color="#6&&&&&&&&&return(getRadius(pos.x,&pos.y));<font color="#7&&&&&}<font color="#8&<font color="#9&/**<font color="#0&&*&功能:获得屏幕像素点位置的极坐标角度(扫描平面与0度平面均相同),与雷达仰角无关。<font color="#1&&*&参数:<font color="#2&&*&&&&&&x&&&-&水平坐标<font color="#3&&*&&&&&&y&&&-&垂直坐标<font color="#4&&*&返回值:<font color="#5&&*&&&&&&角度值,自正北方向顺时针<font color="#6&&*/<font color="#7&&&&&public&double&getAngle(int&x,&int&y)&{<font color="#8&&&&&&&&&double&&agl&=&<font color="#.0;<font color="#9&&&&&&&&&if(&x&==&centerPosition.x&&&&y&==&centerPosition.y&)&{//重合<font color="#0&&&&&&&&&&&&&agl&=&<font color="#.0;<font color="#1&&&&&&&&&}<font color="#2&&&&&&&&&else&if(&x&==&centerPosition.x&)&{<font color="#3&&&&&&&&&&&&&agl&=&y&&&centerPosition.y&?&<font color="#0.0&:&<font color="#0.0;<font color="#4&&&&&&&&&}<font color="#5&&&&&&&&&else&if(&y&==&centerPosition.y&)&{<font color="#6&&&&&&&&&&&&&agl&=&x&&&centerPosition.x&?&<font color="#.0&:&<font color="#0.0;<font color="#7&&&&&&&&&}<font color="#8&&&&&&&&&else&{<font color="#9&&&&&&&&&&&&&agl&=&Math.toDegrees(Math.atan(<font color="#.0*Math.abs(x-centerPosition.x)/Math.abs(y-centerPosition.y)));<font color="#0&&&&&&&&&&&&&agl&=<font color="#1&&&&&&&&&&&&&&&&&&&&&x&&&centerPosition.x&&&&y&&&centerPosition.y&?&agl&:&&&&&&&&&&&&//直角坐标的第一象限<font color="#2&&&&&&&&&&&&&&&&&&&&&x&&&centerPosition.x&&&&y&&&centerPosition.y&?&<font color="#0.0&-&agl&:&&&&//直角坐标的第二象限<font color="#3&&&&&&&&&&&&&&&&&&&&&x&&&centerPosition.x&&&&y&&&centerPosition.y&?&<font color="#0.0&+&agl&:&&&&//直角坐标的第三象限<font color="#4&&&&&&&&&&&&&&&&&&&&&x&&&centerPosition.x&&&&y&&&centerPosition.y&?&<font color="#0.0&-&agl&:&&&&//直角坐标的第四象限<font color="#5&&&&&&&&&&&&&&&&&&&&&<font color="#6&&&&&&&&&}<font color="#7&&&&&&&&&System.out.println(agl);<font color="#8&&&&&&&&&return(agl);<font color="#9&&&&&}<font color="#0&<font color="#1&/**<font color="#2&&*&功能:获得经纬度位置的极坐标角度(扫描平面与0度平面均相同),与雷达仰角无关。<font color="#3&&*&参数:<font color="#4&&*&&&&&&lon&-&水平坐标<font color="#5&&*&&&&&&lat&-&垂直坐标<font color="#6&&*&返回值:<font color="#7&&*&&&&&&角度值,自正北方向顺时针<font color="#8&&*/<font color="#9&&&&&public&double&getAngle(double&lon,&double&lat)&{<font color="#0&/*<font color="#1&//若通过获得屏幕坐标来计算角度,精度比较差,特别是在极坐标中心附近<font color="#2&&&&&&&&&Point&&&p&&&=&getPosition(lon,&lat);<font color="#3&&&&&&&&&return(getAngle(p.x,&p.y);<font color="#4&*/<font color="#5&&&&&&&&&double&&agl&=&<font color="#.0;<font color="#6&&&&&&&&&if(&lon&==&centerLongitude&&&&lat&==&centerLatitude&)&{//重合<font color="#7&&&&&&&&&&&&&agl&=&<font color="#.0;<font color="#8&&&&&&&&&}<font color="#9&&&&&&&&&else&if(&lon&==&centerLongitude&)&{<font color="#0&&&&&&&&&&&&&agl&=&lat&&&centerLatitude&?&<font color="#0.0&:&<font color="#0.0;<font color="#1&&&&&&&&&}<font color="#2&&&&&&&&&else&if(&lat&==&centerLatitude&)&{<font color="#3&&&&&&&&&&&&&agl&=&lon&&&centerLongitude&?&<font color="#.0&:&<font color="#0.0;<font color="#4&&&&&&&&&}<font color="#5&&&&&&&&&else&{<font color="#6&&&&&&&&&&&&&//注:由于经向和纬向的球面距离不等(华南,经向&纬向),故点(1,1)与中心点(0,0)的极角不等45度,而应是略大于45度<font color="#7&&&&&&&&&&&&&agl&=&Math.toDegrees(Math.atan((Math.abs(lon-centerLongitude)*kmPerDegreeX)/(Math.abs(lat-centerLatitude)*kmPerDegreeY)));<font color="#8&&&&&&&&&&&&&agl&=<font color="#9&&&&&&&&&&&&&&&&&&&&&lon&&&centerLongitude&&&&lat&&&centerLatitude&?&agl&:&&&&&&&&&&&//第一象限<font color="#0&&&&&&&&&&&&&&&&&&&&&lon&&&centerLongitude&&&&lat&&&centerLatitude&?&<font color="#0.0&-&agl&:&&&//第二象限<font color="#1&&&&&&&&&&&&&&&&&&&&&lon&&&centerLongitude&&&&lat&&&centerLatitude&?&<font color="#0.0&+&agl&:&&&//第三象限<font color="#2&&&&&&&&&&&&&&&&&&&&&lon&&&centerLongitude&&&&lat&&&centerLatitude&?&<font color="#0.0&-&agl&:&&&//第四象限<font color="#3&&&&&&&&&&&&&&&&&&&&&<font color="#4&&&&&&&&&}<font color="#5&&&&&&&&&return(agl);<font color="#6&&&&&}<font color="#7&<font color="#8&/**<font color="#9&&*&功能:获得屏幕坐标对应的经度值(根据目标点的经向球面距离来计算,雷达南面和北面的值略有差别),与雷达仰角有关。<font color="#0&&*&&&&&&&主要用于雷达产品的定位、底图叠加、转换为经纬度网格产品、拼图等。<font color="#1&&*&参数:<font color="#2&&*&&&&&&x&&&-&横坐标,自西向东<font color="#3&&*&&&&&&y&&&-&纵坐标,自北向南<font color="#4&&*&返回值:<font color="#5&&*&&&&&&对应的经度坐标<font color="#6&&*/<font color="#7&&&&&public&double&getLongitude(int&x,&int&y)&{<font color="#8&&&&&&&&&double&&lat&&&&&&&&&=&getLatitude(x,&y);<font color="#9&&&&&&&&&double&&disX0&&&&&&&=&distanceOfSphere(centerLongitude,&lat,&centerLongitude+<font color="#.0,&lat);//0度平面上1经度的球面距离<font color="#0&&&&&&&&&double&&disX&&&&&&&&=&disX0&/&cosineE&&&&&&//扫描平面上1经度的距离<font color="#1&&&&&&&&&double&&perDegreeX&&=&disX&*&perK&&&&&&&&&&//扫描平面上1经度的对应的像素点数<font color="#2&&&&&&&&&return(centerLongitude&+&(x&-&centerPosition.x)&/&perDegreeX);<font color="#3&&&&&}<font color="#4&<font color="#5&/**<font color="#6&&*&功能:获得屏幕坐标对应的纬度值(根据极坐标中心点的纬向球面距离来计算),与雷达仰角有关。<font color="#7&&*&&&&&&&主要用于雷达产品的定位、底图叠加、转换为经纬度网格产品、拼图等。<font color="#8&&*&参数:<font color="#9&&*&&&&&&x&&&-&横坐标,自西向东(未用到)<font color="#0&&*&&&&&&y&&&-&纵坐标,自北向南<font color="#1&&*&返回值:<font color="#2&&*&&&&&&对应的纬度坐标<font color="#3&&*/<font color="#4&&&&&public&double&getLatitude(int&x,&int&y)&{<font color="#5&&&&&&&&&/*<font color="#6&&&&&&&&&&&&&目标点&A(X,Y)&弧度<font color="#7&&&&&&&&&&&&&中心点&B(A,B)&弧度<font color="#8&&&&&&&&&&&&&AB球面距离=R*{arccos[cos(B)*cos(Y)*cos(A-X)+sin(B)*sin(Y)]},&by&Google<font color="#9&&&&&&&&&&&&&经度相同&=&&AB&=&R*{arccos[cos(B)*cos(Y)+sin(B)*sin(Y)]}<font color="#0&&&&&&&&&&&&&=&&AB&=&R*{arccos[cos(B-Y)]}<font color="#1&&&&&&&&&&&&&=&&AB&=&R&*&(B-Y)<font color="#2&&&&&&&&&&&&&=&&AB&/&R&=&B&-&Y<font color="#3&&&&&&&&&&&&&=&&Y&=&B&-&AB&/R<font color="#4&&&&&&&&&&&&&=&&Y&=&B&-&(y-centerPosition.y)/perKilometer/R<font color="#5&&&&&&&&&*/<font color="#6&&&&&&&&&return(Math.toDegrees(Math.toRadians(centerLatitude)&+&(centerPosition.y-y)*cosineElevation/perKilometer/Polar.RADIUS));<font color="#7&&&&&}<font color="#8&<font color="#9&/**<font color="#0&&*&功能:<font color="#1&&*&&&&&&获得屏幕坐标对应的经纬度<font color="#2&&*&参数:<font color="#3&&*&&&&&&x&&&&&&&-&屏幕水平坐标<font color="#4&&*&&&&&&y&&&&&&&-&屏幕垂直坐标<font color="#5&&*&返回值:<font color="#6&&*&&&&&&对应的经纬度<font color="#7&&*/<font color="#8&&&&&public&Point2D.Double&getCoordinate(int&x,&int&y)&{<font color="#9&&&&&&&&&double&&lat&&&&&&&&&=&getLatitude(x,&y);<font color="#0&&&&&&&&&double&&disX0&&&&&&&=&distanceOfSphere(centerLongitude,&lat,&centerLongitude+<font color="#.0,&lat);//0度平面上1经度的球面距离<font color="#1&&&&&&&&&double&&disX&&&&&&&&=&disX0&/&cosineE&&&&&&//扫描平面上1经度的距离<font color="#2&&&&&&&&&double&&perDegreeX&&=&disX&*&perK&&&&&&&&&&//扫描平面上1经度的对应的像素点数<font color="#3&&&&&&&&&double&&lon&&&&&&&&&=&centerLongitude&+&(x&-&centerPosition.x)&/&perDegreeX;<font color="#4&&&&&&&&&return(new&Point2D.Double(lon,&lat));<font color="#5&&&&&}<font color="#6&<font color="#7&/**<font color="#8&&*&功能:<font color="#9&&*&&&&&&画经线、纬线<font color="#0&&*&参数:<font color="#1&&*&&&&&&g&&&&&&&-&图形设备<font color="#2&&*&&&&&&f&&&&&&&-&字体<font color="#3&&*&&&&&&c&&&&&&&-&画线颜色<font color="#4&&*&&&&&&inc_lon&-&经线间隔<font color="#5&&*&&&&&&inc_lat&-&纬线间隔<font color="#6&&*&返回值:<font color="#7&&*&&&&&&无<font color="#8&&*/<font color="#9&&&&&public&void&drawGridLine(Graphics2D&g,&Font&f,&Color&c,&int&inc_lon,&int&inc_lat)&{<font color="#0&&&&&&&&&return;<font color="#1&/*<font color="#2&&&&&&&&&Color&&&saveColor&&&=&g.getColor();<font color="#3&&&&&&&&&Font&&&&saveFont&&&&=&g.getFont();<font color="#4&&&&&&&&&g.setFont(saveFont);<font color="#5&&&&&&&&&g.setColor(saveColor);<font color="#6&*/<font color="#7&&&&&}<font color="#8&}
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62474次
排名:千里之外
原创:28篇
评论:37条

我要回帖

更多关于 45除以9等于5表示什么 的文章

 

随机推荐