空间直角坐标系与大地坐标系转换程序
空间直角坐标系与大地坐标系转换程序
#include
#include
#include
using namespace std;
#define PI (2.0*asin(1.0))
void main()
{ double a,b,c,d1,d2,f1,f2,m1,m2,B,L,H,X,Y,Z,W,N,e;
//cout<<"请分别输入椭球的长半轴、短半轴(国际单位)"< //cin>>a>>b; a=6378137; //以WGS84为例 b=6356752.3142; e=sqrt(a*a-b*b)/a; c=a*a/b; int x; cout<<"请输入0或1,0:大地坐标系到空间直角坐标系;1:空间直角坐标系到大地坐标系"< cin>>x; switch(x) { case 0: { cout<<"请分别输入该点大地纬度、经度、大地高(国际单位,纬度经度请按度分秒,分别输入)"< cin>>d1>>f1>>m1>>d2>>f2>>m2>>H; B=PI*(d1+f1/60+m1/3600)/180; L=PI*(d2+f2/60+m2/3600)/180; W=sqrt(1-e*e*sin(B)*sin(B)); N=a/W; X=(N+H)*cos(B)*cos(L); Y=(N+H)*cos(B)*sin(L); Z=(N*(1-e*e)+H)*sin(B); cout<<"空间直角坐标系中X,Y,Z,坐标值(国际单位)分别为"< } case 1: { cout<<"请分别输入空间直角坐标系中X,Y,Z的值(国际单位)"< cin>>X>>Y>>Z; double t,m,n, P,k,B0; m=Z/sqrt(X*X+Y*Y); //t0 B0=atan(m); //初值 n=Z/sqrt(X*X+Y*Y); P=c*e*e/sqrt(X*X+Y*Y); k=1+(a*a-b*b)/(b*b); t=m+P*n/sqrt(k+n*n); //现在为t1,之后代替t2,t3... B=atan(t); W=sqrt(1-e*e*sin(B)*sin(B)); N=a/W; H=Z/sin(B) - N*(1-e*e); int i; for(i=1;fabs(B-B0)>10E-10;i++)//每一次新的B与上一次计算的B比较,误差小于10E-10 rad {B0=B; n=t; t=m+P*n/sqrt(k+n*n);//迭代 B=atan(t); } W=sqrt(1-e*e*sin(B)*sin(B)); N=a/W; //if((X<0)&(Y>0)) //L=atan(Y/X)+PI; //if((X<0)&(Y<0)) // L=atan(Y/X)+PI; // if((X>0)&(Y<0)) //L=2*PI-atan(Y/X); L=atan2(Y,X); H=sqrt(X*X+Y*Y)/cos(B)-N; int Bd,Bf,Ld,Lf; double Bm,Lm; B=180*B/PI;//B转化为度做单位 Bd=B; Bf=(B-Bd)*60; Bm=((B-Bd)*60-Bf)*60; L=180*L/PI;//L转化为度做单位 Ld=L; Lf=(L-Ld)*60; Lm=((L-Ld)*60-Lf)*60; cout<<"大地坐标系中纬度,经度,大地高(国际单位)分别为"< break; } } } 运行结果 坐标转换方法 空间直角坐标系如果其原点不动,绕着某一个轴旋转而构成的新的坐标系,这个过程就叫做坐标旋转。在旧坐标系中的坐标与在旋转后新坐标系中的坐标有一定的转换关系,这种转换关系可以用转换矩阵来表示。 如图5.7,直角坐标系XYZ,P点的坐标为(x, y, z),其相应的在XY 平面,XZ平面,YZ平面分别为M(x, y,0),Q(x,0, z)和N(0, y, z)。 图5.7直角坐标系XYZ 设?表示第j 轴的旋转角度,R j (?) 表示绕第j 轴的旋转,其正方向是沿坐标轴向原点看去的逆时针方向。很明显当j 轴为旋转轴时,它对应的坐标中的j 分量是不变的。由于直角坐标系是对称的,下面我们以绕Z轴旋转为例推导其旋转变换矩阵,其它两个轴推导和它是一样的。 设图5.7的坐标绕Z轴逆时针旋转θ角度,新坐标为X 'Y'Z',如图5.8所示: 图5.8 坐标绕Z 轴逆时针旋转θ角度 由于坐标中的z 分量不变,我们可以简化地在XY 平面进行分分析,如图 5.9所示: 图5.9坐标绕Z 轴逆时针旋转θ 角度的XY 平面示意图 点 M X 和点M X ' 分别是M 点在X 轴和X '轴的投影。如图5.9 cos cos() sin sin() X X X X x OM OM MOM OM y MM OM MOM OM ?θ?θ==∠=-??==∠=-? (5-1) cos cos sin sin X X X X x OM OM MOM OM y MM OM MOM OM ? ?'''''==∠=??'==∠=? (5-2) 把(5-1)式按照三角函数展开得: cos cos sin sin sin cos cos sin x OM OM y OM OM ?θ?θ ?θ?θ=+??=+? (5-3) 把(5-2)式代入(5-3)式得: cos sin sin cos x x y y x y θθ θθ''=+??''=-+? (5-4) 坐标中的z 分量不变,即z = z'这样整个三维坐标变换就可以写成(用新坐标表 示旧坐标) cos sin sin cos x x y y x y z z θθ θθ''=+? ?''=-+??' =? (5-5) 把式(5-5)用一个坐标旋转变换矩阵R Z (θ) 表示可以写成: 2.3.1 空间直角坐标系 一、教材知识解析 1、空间直角坐标系的定义:从空间某一个定点O 引三条互相垂直且有相同单位长度的数轴,这样就建立了空间直角坐标系O-xyz ,点O 叫做坐标原点,x 轴、y 轴和z 轴叫做坐标轴,这三条坐标轴中每两条确定一个坐标平面,分别称为xOy 平面、yOz 平面和xOz 平面。 2、右手直角坐标系及其画法: (1)定义:在空间直角坐标系中,让右手拇指指向x 轴的正方向,食指指向y 轴的正方 向,若中指指向z 轴的正方向,则称这个坐标系为右手直角坐标系。教材上所指的都是右手直角坐标系。 (2)画法: 将空间直角坐标系画在纸上时,x 轴与y 轴、x 轴与z 轴均成135°,而z 轴垂直于y 轴,y 轴和z 轴的长度单位相同,x 轴上的单位长度为y 轴(或z 轴)的长度的一半,这样,三条轴上的单位长度在直观上大体相等。 3、空间中点的坐标表示:点在对应数轴上的坐标依次为x 、y 、z ,我们把有序实数组(x , y ,z )叫做点A 的坐标,记为A (x ,y ,z )。 二、题型解析: 题型1、在空间直角坐标系下作点。 例1、在空间直角坐标系中,作出M(4,2,5). 解:法一:依据平移的方法,为了作出M(4,2,5), 可以按如下步骤进行:(1)在x 轴上取横坐 标为4的点1M ;(2)将1M 在xoy 平面内沿与y 轴平行的方向向右移动2个单位,得到 点2M ;(3)将2M 沿与z 轴平行的方向向上 移动5个单位,就可以得到点M (如图)。 法二:以O 为一个顶点,构造三条棱长分别为4,2,5的长方体,使此长方体在点O 处的三 条棱分别在x 轴的正半轴、y 轴的正半轴、z 轴的正半轴上,则长方体与顶点O 相对的顶点即为所求的点M 。 法三:在x 轴上找到横坐标为4的点,过此点作与x 垂直的平面α;在y 轴上找到纵坐标为2 的点,过此点作与y 垂直的平面β;在z 轴上找到竖坐标为5的点,过此点作与z 垂直的平面γ;则平面αβγ,,交于一点,此交点即为所求的点M 的位置。 【技巧总结】:(1)若要作出点M 000(,,)x y z 的坐标有两个为0,则此点是坐标轴上的点,可 直接在坐标轴上作出此点; (2)若要作出点M 000(,,)x y z 的坐标有且只有一个为0,则此点不在坐标轴上,但在某一坐 标平面内,可以按照类似于平面直角坐标系中作点的方法作出此点。 (3)若要作出点M 000(,,)x y z 的坐标都不为0,则需要按照一定的步骤作出该点,一般有三 种方法:①在x 轴上取横坐标为0x 的点1M ;再将1M 在xoy 平面内沿与y 轴平行的方向向左(00y <)或向右(00y >)平移0||y 个单位,得到点2M ;再将2M 沿与z 轴平 空间直角坐标系与大地坐标系转换程序 #include 空间立体几何建立直角坐标系 1.[2015·浙江]如图,在三棱柱ABC -A 1B 1C 1中,∠BAC =90°,AB = AC =2,A 1A =4,A 1在底面ABC 的射影为BC 的中点,D 是 B 1C 1的中点。 (1)证明:A 1D ⊥平面A 1BC ; (2)求二面角A 1-BD -B 1的平面角的余弦值。 解析:(1)证明:设E 为BC 的中点,连接A 1E ,AE ,DE ,由题意得A 1E ⊥平面ABC ,所以A 1E ⊥AE 。 因为AB =AC ,所以AE ⊥BC 。 故AE ⊥平面A 1BC 。 由D ,E 分别为B 1C 1,BC 的中点,得DE ∥B 1B 且DE =B 1B ,从而DE ∥A 1A 且DE =A 1A ,所以A 1AED 为平行四边形。 故A 1D ∥AE 。 又因为AE ⊥平面A 1BC ,所以A 1D ⊥平面A 1BC 。 (2)方法一:作A 1F ⊥BD 且A 1F ∩BD =F ,连接B 1F 。 由AE =EB =2,∠A 1EA =∠A 1EB =90°, 得A 1B =A 1A =4。 由A 1D =B 1D ,A 1B =B 1B ,得△A 1DB 与△B 1DB 全等。 由A 1F ⊥BD ,得B 1F ⊥BD ,因此∠A 1FB 1为二面角A 1-BD -B 1的平面角。 由A 1D =2,A 1B =4,∠DA 1B =90°,得 BD =32,A 1F =B 1F =43 , 由余弦定理得cos ∠A 1FB 1=-1 8。 方法二:以CB 的中点E 为原点,分别以射线EA ,EB 为x ,y 轴的正半轴,建立空间直角坐标系E -xyz ,如图所示。 不同空间直角坐标系的转换 欧勒角 不同空间直角坐标系的转换,包括三个坐标轴的平移和坐标轴的旋转,以及两个坐标系的尺度比参数,坐标轴之间的三个旋转角叫欧勒角。 三参数法 三参数坐标转换公式是在假设两坐标系间各坐标轴相互平行,轴系间不存在欧勒角的条件下得出的。实际应用中,因为欧勒角不大,可以用三参数公式近似地进行空间直角坐标系统的转换。公共点只有一个时,采用三参数公式进行转换。 七参数法 用七参数进行空间直角坐标转换有布尔莎公式,莫洛琴斯基公式和范氏公式等。下面给出布尔莎七参数公式: 坐标转换多项式回归模型 坐标转换七参数公式属于相似变换模型。大地控制网中的系统误差一般呈区域性,当区域较小时,区域性的系统误差被相似变换参数拟合,故局部区域的坐标转换采用七参数公式模型是比较适宜的。但对全国或一个省区范围内的坐标转换,可以采用多项式回归模型,将各区域的系统偏差拟合到回归参数中,从而提高坐标转换精度。 两种不同空间直角坐标系转换时,坐标转换的精度取决于坐标转换的数学模型和求解转换系数的公共点坐标精度,此外,还与公共点的分布有关。鉴于地面控制网系统误差在???? ??????+??????????=??????????000111222Z Y X Z Y X Z Y X ???? ??????+????????????????????---+??????????+=??????????000111111222000)1(Z Y X Z Y X Z Y X m Z Y X X Y X Z Y Z εεεεεε 不同区域并非是一个常数,所以采用分区进行坐标转换能更好地反映实际情况,提高坐标转换的精度。 空间直角坐标系 【学习目标】 通过具体情境,感受建立空间直角坐标系的必要性,了解空间直角坐标系,会用空间直角坐标系刻画点的位置.通过表示特殊长方体(所有棱分别与坐标轴平行)顶点的坐标,探索并得出空间两点间的距离公式. 【要点梳理】 要点一、空间直角坐标系 1.空间直角坐标系 从空间某一定点O 引三条互相垂直且有相同单位长度的数轴,这样就建立了空间直角坐标系Oxyz ,点O 叫做坐标原点,x 轴、y 轴、z 轴叫做坐标轴,这三条坐标轴中每两条确定一个坐标平面,分别是xOy 平面、yOz 平面、zOx 平面. 2.右手直角坐标系 在空间直角坐标系中,让右手拇指指向x 轴的正方向,食指指向y 轴的正方向,如果中指指向z 轴的正方向,则称这个坐标系为右手直角坐标系. 3.空间点的坐标 空间一点A 的坐标可以用有序数组(x ,y ,z)来表示,有序数组(x ,y ,z)叫做点A 的坐标,记作A(x ,y ,z),其中x 叫做点A 的横坐标,y 叫做点A 的纵坐标,z 叫做点A 的竖坐标. 要点二、空间直角坐标系中点的坐标 1.空间直角坐标系中点的坐标的求法 通过该点,作两条轴所确定平面的平行平面,此平面交另一轴于一点,交点在这条轴上的坐标就是已知点相应的一个坐标. 特殊点的坐标:原点()0,0,0;,,x y z 轴上的点的坐标分别为()()(),0,0,0,,0,0,0,x y z ;坐标平面,,xOy yOz xOz 上的点的坐标分别为()()(),,0,0,,,,0,x y y z x z . 2.空间直角坐标系中对称点的坐标 在空间直角坐标系中,点(),,P x y z ,则有 点P 关于原点的对称点是()1,,P x y z ---; 点P 关于横轴(x 轴)的对称点是()2,,P x y z --; 点P 关于纵轴(y 轴)的对称点是()3,,P x y z --; 点P 关于竖轴(z 轴)的对称点是()4,,P x y z --; 点P 关于坐标平面xOy 的对称点是()5,,P x y z -; 点P 关于坐标平面yOz 的对称点是()6,,P x y z -; 点P 关于坐标平面xOz 的对称点是()7,,P x y z -. 要点三、空间两点间距离公式 1.空间两点间距离公式 空间中有两点()()111222,,,,,A x y z B x y z ,则此两点间的距离 ||d AB == 特别地,点(),,A x y z 与原点间的距离公式为OA = 2.空间线段中点坐标 空间中有两点()()111222,,,,,A x y z B x y z ,则线段AB 的中点C 的坐标为121212,,222x x y y z z +++?? ???. 【典型例题】 类型一:空间坐标系 例1.在正方体ABCD —A 1B 1C 1D 1中,E 、F 分别是BB 1、D 1B 1的中点,棱长为1,建立空间直角坐标系,求点E 、F 的坐标。 【答案】11,0,2E ? ? ???,11,,122F ?? ??? 【解析】 法一:如图,以A 为坐标原点,以AB ,AD ,AA 1所在直线分别为x 轴,y 轴,z 轴建立空 建立空间直角坐标系,解立体几何高考题 立体几何重点、热点: 求线段的长度、求点到平面的距离、求直线与平面所成的夹角、求两异面直线的夹角、求二面角、证明平行关系和垂直关系等. 常用公式: 1 、求线段的长度: 222z y x AB ++==()()()2 12212212z z y y x x -+-+-= 2、求P 点到平面α的距离: PN = ,(N 为垂足,M 为斜足,为平面α的法向量) 3、求直线l 与平面α所成的角:|||||sin |n PM ?= θ,(l PM ?,α∈M ,为α的法向量) 4、求两异面直线AB 与CD 的夹角:cos = θ 5、求二面角的平面角θ:|||||cos |21n n ?= θ,( 1n ,2n 为二面角的两个面的法向量) 6、求二面角的平面角θ:S S 射影 = θ cos ,(射影面积法) 7、求法向量:①找;②求:设, 为平面α内的任意两个向量,)1,,(y x =为α的法向量, 则由方程组?????=?=?0 n b n a ,可求得法向量.空间直角坐标系坐标转换方法
空间直角坐标系整理
空间直角坐标系与大地坐标系转换程序
空间立体几何建立直角坐标系
不同空间直角坐标系的转换
知识讲解空间直角坐标系基础
建立空间直角坐标系-解立体几何题