首页 > 编程知识 正文

坐标系分为哪三大类,自定义坐标系与世界坐标系互换

时间:2023-05-04 23:00:53 阅读:172870 作者:4195

世界坐标系有哪些分类

世界坐标系基于笛卡尔右手坐标系来确定图形中每个点的位置。 x轴是水平方向,y轴是垂直方向,z轴是垂直于XY平面方向,远点o的坐标是[ 0,0,0 ]。 世界坐标系是固定不变的坐标系,是默认坐标系,但世界坐标系也有分类。 那么,有什么样的分类?

1 .笛卡尔坐标系

直角坐标系是一个坐标为(0,0 )的原点,以通过原点且相互正交的两个坐标轴x、y轴为水平方向,以右为正方向。 y轴为垂直方向,向上为正向。 一组坐标值(x,y )定义点的位置。

2

2 .极坐标系

极坐标系由极和水平方向的极轴构成。 点的位置可以由从点到极的直线的长度l和该直线与极轴的交角a (逆时针为正)来决定。 也就是说,用一组坐标值(La )定义点的位置。

3

3 .相对坐标

在某些情况下,可能需要使用相对坐标直接从点与点之间的相对位移绘制图表。 在cad2011中,相对坐标标记为“@”。 相对坐标可以使用直角坐标,也可以使用极坐标。

例如,一条直线的起点坐标为[ 8,8 ],终点坐标为[ 8,10 ]时,终点相对于起点的相对坐标为[ @ 0,2 ],在相对极坐标中被表示为@290。

现在在学习mapbox、three.js、webgl、cesium的过程中,发现坐标系非常重要。 现在,我知道的坐标系是它的总结,我会贴上图片:

1. 屏幕坐标系(平面坐标系,笛卡尔2坐标系,像素坐标系,坐标系格式为(x, y)):

屏幕坐标系是平面直角坐标系,我们在平面上使用的坐标,形式为x,y,在cesium中使用Cartesian2进行初始化,日常使用的屏幕像素坐标是平面坐标系坐标,鼠标在地图上点击位置时返回的是Cartesian2

转换方法:

将屏幕坐标系转换为笛卡尔3坐标系的三种方法都是默认click.position为单击地图后返回的屏幕像素的x、y坐标。

(1)/pick ellipsoid (窗口位置(像素的x,y坐标,笛卡尔2 ),ellipsoid )要选择的椭圆体(,result ) ) :鼠标点的相应椭圆体的位置()

constword position=viewer.scene.camera.pick ellipsoid (click.position,viewer.scene.globe.ellipsoid ) ) )。

)2)/getpickray (窗口定位像素的x,y坐标)根据从:照相机位置通过点的像素创建射线

constcddm=viewer.camera.getpickray (movement.position ) )。

pick(cddm ) )测试交叉的放射线,scene ) )场景) )找到光和渲染的地球表面之间的焦点

constcddmposition=viewer.scene.globe.pick (cddm,viewer.scene ) )。

(3)//pickPosition:从深度缓冲和窗口位置返回重建的笛卡尔位置

constpickposition=viewer.scene.pick position (movement.position )。

将屏幕坐标系转换为电弧的两种方法:

(1)//将笛卡尔坐标转换为84地理坐标

const cartographic=cesium.cartographic.from cartesian (cartesian );

//弧度转换为一次的十进制记数法

const lon=cesium.math.to degrees (cartographic.longitude );

const lat=cesium.math.to degrees (cartographic.latitude );

(3)//将笛卡尔坐标变换为84坐标系

constcurposition=cesium.ellipsoid.WGS 84.cartesiantocartographic (cartographic );

const lon=cur position.longitude * 180/math.pi;

const lat=cur position.latitude * 180/math.pi;

2.笛卡尔空间坐标系(笛卡尔2,笛卡尔3(世界坐标系),笛卡尔4):

笛卡尔坐标系是直角坐标系和斜角坐标系的总称,我们日常开发的主要是二维直角坐标系和三维空间坐标系

二维笛卡尔坐标系:上面的屏幕坐标系,cesium.Cartesian2(x,y )

三维直角坐标系:也称为世界坐标系,可以看作以椭圆体中心为原点的空间直角坐标系的一点的坐标。 圆心为原点ow,xw轴为水平右,yw轴为下,zw由右手定则决定,是在three.js中也使用的右手坐标

系,计算机中常用到左手坐标系,左手坐标系(x向右,y向上,z向前)和右手坐标系(x向右,y向上,z向后)只是两者的Z轴相反
格式:Cesium.Cartesian3(x, y, z)

3.WGS84地理坐标系(经纬度坐标系):
WGS84坐标系是国际上采用的地心坐标系,坐标原点是地球质心,地心空间直角坐标系的Z轴指向地球级(CTP)方向,X轴指向零子午面和CTP赤道的交点,Y轴和Z,X轴构成右手坐标系,我们常使用的经纬度也是从84坐标系中取出,经度(参考椭球面上某点的大地子午面与本初子午面间的两面角,东正西负),纬度(参考椭球面上某点的法线与赤道平面的夹角。北正南负),其经纬度范围分别为[-180,180]和[-90,90]
格式:Cesium.Cartographic(longitude, latitude, height)

4.火星坐标系:
GCJ02火星坐标系是WGS84坐标系加密后的坐标系,出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标,一般我们所用到的主流地图上的坐标系都是火星坐标系

坐标系分类:世界、相机、图像坐标系之间的转换
像素坐标(u,v)—>成像面/图像物理坐标(x,y)—>相机坐标(Xc,Yc,Zc)—>世界坐标(Xw,Yw,Zw)

1.像素坐标(u,v)—[物理尺寸构建桥梁:透视投影]—>成像面/图像物理坐标(x,y)

假设每一个像素在u轴和v轴方向上的物理尺寸为dx、dy

如下图,

可得,

u = x / dx + u0

v = y / dy + v0

其中,

dx、dy是感光芯片上像素的实际物理大小,是连接像素坐标系到成像坐标系的真正桥梁

*u0、v0是图像平面中心(图像中心像素点坐标)

2.成像物理坐标(x,y)—[内参构建投影关系:刚体变换]—>相机坐标(Xc,Yc,Zc)

3.相机坐标(Xc,Yc,Zc)—[外参构建旋转平移关系]—>世界坐标(Xw,Yw,Zw)

*4.旋转矩阵->欧拉角<->四元数

*5.相机标定

*畸变:一般分为径向畸变和切向畸变,前者来自于透镜形状差异,后者来自于这相机的组装过程误差导致像平面和镜头不完全平行,在一些线性标定(因为摄像头已经足够贵了…)中也会忽略。

抽象的来说,

我们所处的世界是三维的,而照片是二维的,这样我们可以把相机认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的函数是不可逆的。相机标定的目标就是我们找一个合适的数学模型,求出这个模型的参数,这样我们能够近似这个三维到二维的过程,使得这个三维到二维的过程的函数找到反函数。

*不可逆我理解为输入的因素不能完全的考虑到,图像识别也是一个永远不可能100%完美的求逆过程。

通俗的说,

把求得相机的内参、畸变系数、外参的过程称为相机标定,前两者的标定主要采用着急的寒风标定法及相关软件、外参的标定主要采用手眼标定发及相关软件

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。