精华内容
下载资源
问答
  • 直角坐标系

    2017-11-17 18:27:28
    直角坐标系

    直角坐标系

    Problem Description


    X是一个喜欢数学的小孩,现在他刚刚学了坐标系。他想知道点(X,Y)在第几象限内。输入数据保证点不在坐标轴及原点上。


    Input
    多组输入。
    每组输入两个整数X,Y,代表点(X,Y),中间用空格隔开。


    Output
    输出一个整数代表点在第几象限内。
    Example Input


    2 3
    -2 -3

    Example Output


    1
    3
    

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int n, x, y;
        while(scanf("%d %d", &x, &y) != EOF)
        {
            if(x > 0 && y > 0)
            {
                printf("1\n");
            }
            if(x > 0 && y < 0)
            {
                printf("4\n");
            }
            if(x < 0 && y < 0)
            {
                printf("3\n");
            }
            if(x < 0 && y > 0)
            {
                printf("2\n");
            }
        }
        return 0;
    }
    
    
    
    展开全文
  • 大地坐标系与空间直角坐标系互转,高斯投影,用C#语言已经测试过了,全部都可以通过!
  • 本篇学习了空间直角坐标系、大地坐标系、平面坐标系、高斯平面直角坐标系。这个个坐标系有时很容易弄混淆! ( 一)空间直角坐标系 空间直角坐标系的坐标原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向...

    本篇学习了空间直角坐标系、大地坐标系、平面坐标系、高斯平面直角坐标系。这个个坐标系有时很容易弄混淆!

    ( 一)空间直角坐标系     空间直角坐标系的坐标原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向起始子午面与赤道的交点,Y轴位于赤道面上切按右手系于X轴呈90度夹角,某点中的坐标可用该点在此坐标系的各个坐标轴上的投影来表示。空间直角坐标系可用如下图所示:

    (二)大地坐标系

      大地坐标系是采用大地纬度、经度和大地高程来描述空间位置的。纬度是空间的点与参考椭球面的法线与赤道面的夹角;经度是空间的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角;大地高程是空间的点沿着参考椭球的法线方向到参考椭球面的距离。

    地面点的高程和国家高程基准

            (1)绝对高程。地面点沿垂线方向至大地水准面的距离称为绝对高程或称海拔。过去我国采用青岛验潮站(tide gauge station)1950~1956年观测成果求得的黄海平均海水面作为高程的零点,称为“1956年黄海高程系”(Huanghai height system1956水准原点高程为72.289m)。后经复查,发现该高程系的验潮资料时间过短,准确性较差,改用青岛验潮站1950~1979年的观测资料重新推算,并命名为“1985年国家高程基准”(Chinese height datum 1985)。国家水准原点(leveling origin高程为72.260m)设于青岛市观象山附近,作为我国高程测量的依据。它的高程值是以“1985年国家高程基准”所确定的平均海水面为零点测算而得。在使用原“1956年黄海高程系”的高程成果时,应注意将其换算为新的高程基准系统。

             (2)相对高程。地面点沿铅垂线方向至任意假定的水准面的距离称为该点的相对高程,亦称假定高程。在图l—5中,地面点AB的相对高程分别为H'AH'B

            (3)高差。地面上任意两点的高程(绝对高程或相对高程)之差称为高差。如图l—5中,AB 两点的高差:

    hABHB—HA H'B—H'A                                        (1-1)

     

    上式中,当 HB (H'B)>HA (H'A) 时,hAB为正;当HB (H'B)<HA (H'A) 时,hAB为‘负’。

    确定地面点相互位置的几何要素与测量的基本工作

    水平距离、水平角及高程是确定地面点相对位置的三个基本几何要素(图 1-6)

    距离测量

    测量的三项基本工作:  水平角(方向)测量

    高程测量

    (三)平面直角坐标

          平面直角坐标:如坐标原点o是任意假定的,则为独立的平面直角坐标系。                             

        由于测量上所用的方向是从北方向(纵轴方向)起按顺时针方向以角度计值(象限也按顺时针编号)。因此,将数学上平面直角坐标系(角值从横轴正方向起按逆时针方向计值)的 x y轴互换后,数学上的三角函数计算公式可不加改变直接用于测量数据的计算。

    (四)高斯-克吕格尔平面直角坐标系(这里主要将gis中高斯-克吕格尔平面直角坐标系,不是数学里面的平面坐标系)  

           根据高斯-克吕格尔投影所建立的平面坐标系,或简称高斯平面坐标系。它是大地测量、城市测量、普通测量、各种工程测量和地图制图中广泛采用的一种平面坐标系。高斯-克吕格尔投影是德国的 C.F.高斯于1822年提出的,后经德国的克吕格尔(J.H.L.Krüger)于1912年加以扩充而完善。用大地经度和纬度表示的大地坐标是一种椭球面上的坐标,不能直接应用于测图。因此,需要将它们按一定的数学规律转换为平面直角坐标。大地坐标(B,L)转换为平面直角坐标(X,Y)的一般数学表示法为:X=F1(B,L), Y=F2(B,L), 式中F1、F2为投影函数。高斯-克吕格尔投影的投影函数是根据以下两个条件确定的:第一,投影是正形的,即椭球面上无穷小的图形和它在平面上的表象相似,故又称保角投影或保形投影;投影面上任一点的长度比(该点在椭球面上的微分距离与其在平面上相应的微分距离之比)同方位无关。第二,椭球面上某一子午线在投影平面上的表象是一直线,而且长度保持不变,即长度比等于1。该子午线称为中央子午线,或称轴子午线。这两个条件体现了高斯-克吕格尔投影的特性。 大地坐标系是大地测量的基本坐标系。常用于大地问题的细算,研究地球形状和大小,编制地图,火箭和卫星发射及军事方面的定位及运算,若将其直接用于工程建设规划、设计、施工等很不方便。所以要将球面上的大地坐标按一定数学法则归算到平面上,即采用地图投影的理论绘制地形图,才能用于规划建设。   椭球体面是一个不可直接展开的曲面,故将椭球体面上的元素按一定条件投影到平面上,总会产生变形。测量上常以投影变形不影响工程要求为条件选择投影方法。地图投影有等角投影、等面积投影和任意投影三种。 其中等角投影又称为正形投影,它保证在椭球体面上的微分图形投影到平面后将保持相似。这是地形图的基本要求。正形投影有两个基本条件:  ①保角条件,即投影后角度大小不变。 ②长度变形固定性,即长度投影后会变形,但是在一点上各个方向的微分线段变形比m是个常数k:

    转载于:https://www.cnblogs.com/wenfeng-GIS/p/3409878.html

    展开全文
  • 坐标转换源代码,包含空间直角坐标系互转、大地坐标系与空间直角坐标系互转、平面直角坐标系与大地坐标系互转的源程序;部分源代码来源于网络,涉及了C++、C#两种语言;本人亲测可用并全部通过C#实现出来,精度可...
  • 最近,因为工作需要,需要使用大地坐标系与参心空间直角坐标系。对于三维空间中的一点P,大地坐标系以纬度B、经度L和大地高H描述点P的空间位置。空间直角坐标系以坐标X、Y、Z描述点P的空间位置。两种坐标系的示意图...
    4037d0733b536e13e1804f312ec6a004.png最近,因为工作需要,需要使用大地坐标系与参心空间直角坐标系。对于三维空间中的一点P,大地坐标系以纬度B、经度L和大地高H描述点P的空间位置。空间直角坐标系以坐标X、Y、Z描述点P的空间位置。两种坐标系的示意图如下。
    ee845f488b293cf8e096ecd00fe380d2.png

    坐标转换

    大地坐标系以纬度B、经度L、大地高H描述一点的空间位置。纬度的定义是某点的地面法线与赤道面的夹角,以赤道面为起算点,向南为负,范围为-90°~0°,向北为正,范围为0°~90°;经度L由起始大地子午面起算,向东为正,向西为负,范围是-180°~180°。某点沿法线到椭球面的距离称为该点的大地高H。参心空间直角坐标系以椭球中心O为坐标原点,以起始子午面与赤道面的交线为X轴,在赤道面上与X轴正交的方向为Y轴,椭球的旋转轴为Z轴,三个方向呈右手系。已知某点的大地坐标(B、L、H),可按下式转换为空间直角坐标(X,Y,Z):()()()其中,为卯酉圈半径,是地球的第一偏心率。令参考椭球的赤道半径为,参考椭球的极半径为。在参考椭球的定义中,大于。则:()()已知空间直角坐标(X,Y,Z),由以上公式可得:()()()从上式不难发现,大地纬度B是自身的函数,不能直接计算,需要结合计算卯酉圈半径和纬度B的计算公式(公式5和7)迭代计算。至此,我们给出了大地坐标系与参心空间直角坐标系转换的公式。下面,使用Python编写两坐标系之间的转换函数。

    代码

    主程序TestCoordTransform.py,测试大地坐标系与参心空间直角坐标系之间的转换精度。
    """
    主程序
    测试大地坐标系与参心空间直角坐标系之间转换的精度
    """


    import numpy as np
    import CoordTransform as CDTF


    a = 6378137.0 # 参考椭球的长半轴, 单位 m
    b = 6356752.31414 # 参考椭球的短半轴, 单位 m

    # 测试坐标转换的数据集, B是大地纬度, L是大地经度, H是大地高
    B = np.array([-89.9, -60, 0, 60, 89.9, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50])
    L = np.array([-145, -145, -145, -145, -145, -180, -120, -90, -60, 0, 60, 90, 120, 180, -145, -145])
    H = np.array([2000, 2000, 2000,2000, 2000, 2000,2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 0, -2000])

    M = np.size(H) # 获得元素的个数

    B_Calc = np.zeros(M, ) # 坐标变换后得到的大地纬度
    L_Calc = np.zeros(M, ) # 坐标变换后得到的大地经度
    H_Calc = np.zeros(M, ) # 坐标变换后得到的大地高度
    B_err = np.zeros(M, ) # 转换前后的大地纬度的差值
    L_err = np.zeros(M, ) # 转换前后的大地经度的差值
    H_err = np.zeros(M, ) # 转换前后大地高度的差值

    # 循环实现坐标转换
    for i in range(0, M):
    X, Y, Z = CDTF.BLH2XYZ(B[i], L[i], H[i], a, b)
    B_Calc[i], L_Calc[i], H_Calc[i] = CDTF.XYZ2BLH(X, Y, Z, a, b)
    B_err[i] = (B_Calc[i]-B[i])
    L_err[i] = (L_Calc[i] - L[i])
    H_err[i] = (H_Calc[i] - H[i])

    模块CoordTransform.py,实现大地坐标系与参心空间直角坐标系之间的坐标转换。

    """
    CoordTransform模块用以实现大地坐标系与参心空间直角坐标系之间的坐标转换.
    模块主要包括以下函数
    BLH2XYZ
    该函数可以把某点的大地坐标(B, L, H)转换为空间直角坐标(X, Y, Z)
    XYZ2BLH
    该函数可以把某点的空间直角坐标(X, Y, Z)转换为大地坐标(B, L, H)
    rad2angle
    该函数把弧度转换为角度
    angle2rad
    该函数把角度转换为弧度
    """

    import math as mt


    def BLH2XYZ(B, L, H, a, b):
    """
    该函数把某点的大地坐标(B, L, H)转换为空间直角坐标(X, Y, Z).
    :param B: 大地纬度, 角度制, 规定南纬为负,范围为[-90, 90]
    :param L: 大地经度, 角度制, 规定西经为负, 范围为[-180, 180]
    :param H: 海拔,大地高, 单位 m
    :param a: 地球长半轴,即赤道半径,单位 m
    :param b: 地球短半轴,即大地坐标系原点到两级的距离, 单位 m
    :return: X, Y, Z, 空间直角坐标, 单位 m
    """


    sqrt = mt.sqrt
    sin = mt.sin
    cos = mt.cos
    B = angle2rad(B) # 角度转为弧度
    L = angle2rad(L) # 角度转为弧度

    e = sqrt((a**2-b**2)/(a**2)) # 参考椭球的第一偏心率
    N = a/sqrt(1-e*e*sin(B)*sin(B)) # 卯酉圈半径, 单位 m

    X =(N+H)*cos(B)*cos(L)
    Y = (N+H)*cos(B)*sin(L)
    Z = (N*(1-e**2)+H)*sin(B)
    return X, Y, Z # 返回空间直角坐标(X, Y, Z)


    def XYZ2BLH(X, Y, Z, a, b):
    """
    该函数实现把某点在参心空间直角坐标系下的坐标(X, Y, Z)转为大地坐标(B, L, H).
    :param X: X方向坐标,单位 m
    :param Y: Y方向坐标, 单位 m
    :param Z: Z方向坐标, 单位 m
    :param a: 地球长半轴,即赤道半径,单位 m
    :param b: 地球短半轴,即大地坐标系原点到两级的距离, 单位 m
    :return: B, L, H, 大地纬度、经度、海拔高度 (m)
    """

    sqrt = mt.sqrt
    sin = mt.sin
    cos = mt.cos
    atan = mt.atan

    e = sqrt((a**2-b**2)/(a**2))

    if X == 0 and Y > 0:
    L = 90
    elif X == 0 and Y < 0:
    L = -90
    elif X < 0 and Y >= 0:
    L = atan(Y/X)
    L = rad2angle(L)
    L = L+180
    elif X < 0 and Y <= 0:
    L = atan(Y/X)
    L = rad2angle(L)
    L = L-180
    else:
    L = atan(Y / X)
    L = rad2angle(L)

    b0 = atan(Z/sqrt(X**2+Y**2))
    N_temp = a/sqrt((1-e*e*sin(b0)*sin(b0)))
    b1 = atan((Z+N_temp*e*e*sin(b0))/sqrt(X**2+Y**2))

    while abs(b0-b1) > 1e-7:
    b0 = b1
    N_temp = a / sqrt((1 - e * e * sin(b0) * sin(b0)))
    b1 = atan((Z + N_temp * e * e * sin(b0)) / sqrt(X ** 2 + Y ** 2))

    B = b1
    N = a/sqrt((1-e*e*sin(B)*sin(B)))
    H = sqrt(X**2+Y**2)/cos(B)-N
    B = rad2angle(B)
    return B, L, H # 返回大地纬度B、经度L、海拔高度H (m)


    def rad2angle(r):
    """
    该函数可以实现弧度到角度的转换.
    :param r: 弧度
    :return: a, 对应的角度
    """

    a = r*180.0/mt.pi
    return a


    def angle2rad(a):
    """
    该函数可以实现角度到弧度的转换.
    :param a: 角度
    :return: r, 对应的弧度
    """

    r = a*mt.pi/180.0
    return r

    需要注意的是本文利用坐标转换公式,直接编写了大地坐标系与参心空间直角坐标系之间坐标转换的程序。对于参考椭球的建立和坐标转换公式的推导需要一定的空间想象和公式推导能力。对这个过程感兴趣的同学可以在后台私信我哦~~完整的代码例子,可以从以下百度网盘分享链接(有效期7天)下载哦~~https://eyun.baidu.com/s/3bq3cOSv

    参考资料

    1. https://blog.csdn.net/weixin_43637490/article/details/89371315?utm_source=app

    853ea585dc57eec6a21834400ba37002.png93d6eda4dfa11294aa358547e05fa0d2.png

    展开全文
  • 本篇学习了空间直角坐标系、大地坐标系、平面坐标系、高斯平面直角坐标系。这个个坐标系有时很容易弄混淆!  ( 一)空间直角坐标系  空间直角坐标系的坐标原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴...

    来源: http://www.cnblogs.com/joetao/articles/1895574.html

     

    本篇学习了空间直角坐标系、大地坐标系、平面坐标系、高斯平面直角坐标系。这个个坐标系有时很容易弄混淆!

     ( 一)空间直角坐标系
        空间直角坐标系的坐标原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向起始子午面与赤道的交点,Y轴位于赤道面上切按右手系于X轴呈90度夹角,某点中的坐标可用该点在此坐标系的各个坐标轴上的投影来表示。空间直角坐标系可用如下图所示:

    (二)大地坐标系

      大地坐标系是采用大地纬度、经度和大地高程来描述空间位置的。纬度是空间的点与参考椭球面的法线与赤道面的夹角;经度是空间的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角;大地高程是空间的点沿着参考椭球的法线方向到参考椭球面的距离。

     地面点的高程和国家高程基准

            (1)绝对高程。地面点沿垂线方向至大地水准面的距离称为绝对高程或称海拔。过去我国采用青岛验潮站(tide gauge station)1950~1956年观测成果求得的黄海平均海水面作为高程的零点,称为“1956年黄海高程系”(Huanghai height system 1956水准原点高程为72.289m)。后经复查,发现该高程系的验潮资料时间过短,准确性较差,改用青岛验潮站1950~1979年的观测资料重新推算,并命名为“1985年国家高程基准”(Chinese height datum 1985)。国家水准原点(leveling origin高程为72.260m)设于青岛市观象山附近,作为我国高程测量的依据。它的高程值是以“1985年国家高程基准”所确定的平均海水面为零点测算而得。在使用原“1956年黄海高程系”的高程成果时,应注意将其换算为新的高程基准系统。

             (2)相对高程。地面点沿铅垂线方向至任意假定的水准面的距离称为该点的相对高程,亦称假定高程。在图l—5中,地面点AB的相对高程分别为H'AH'B

             (3)高差。地面上任意两点的高程(绝对高程或相对高程)之差称为高差。如图l—5中,AB 两点的高差:


    hABHB—HA H'B—H'A                                         (1-1)

     

    上式中,当 HB (H'B)>HA(H'A) 时,hAB为正;当HB (H'B)<HA(H'A) 时,hAB为‘负’。

     

    确定地面点相互位置的几何要素与测量的基本工作

    水平距离、水平角及高程是确定地面点相对位置的三个基本几何要素(图 1-6)

    距离测量

    测量的三项基本工作:  水平角(方向)测量

    高程测量

    (三)平面直角坐标

          平面直角坐标:如坐标原点o是任意假定的,则为独立的平面直角坐标系。                             

        由于测量上所用的方向是从北方向(纵轴方向)起按顺时针方向以角度计值(象限也按顺时针编号)。因此,将数学上平面直角坐标系(角值从横轴正方向起按逆时针方向计值)的x y轴互换后,数学上的三角函数计算公式可不加改变直接用于测量数据的计算。

    (四)高斯-克吕格尔平面直角坐标系(这里主要将gis中高斯-克吕格尔平面直角坐标系,不是数学里面的平面坐标系)  

           根据高斯-克吕格尔投影所建立的平面坐标系,或简称高斯平面坐标系。它是大地测量、城市测量、普通测量、各种工程测量和地图制图中广泛采用的一种平面坐标系。高斯-克吕格尔投影是德国的 C.F.高斯于1822年提出的,后经德国的克吕格尔(J.H.L.Krüger)于1912年加以扩充而完善。用大地经度和纬度表示的大地坐标是一种椭球面上的坐标,不能直接应用于测图。因此,需要将它们按一定的数学规律转换为平面直角坐标。大地坐标(B,L)转换为平面直角坐标(X,Y)的一般数学表示法为:X=F1(B,L), Y=F2(B,L), 式中F1、F2为投影函数。高斯-克吕格尔投影的投影函数是根据以下两个条件确定的:第一,投影是正形的,即椭球面上无穷小的图形和它在平面上的表象相似,故又称保角投影或保形投影;投影面上任一点的长度比(该点在椭球面上的微分距离与其在平面上相应的微分距离之比)同方位无关。第二,椭球面上某一子午线在投影平面上的表象是一直线,而且长度保持不变,即长度比等于1。该子午线称为中央子午线,或称轴子午线。这两个条件体现了高斯-克吕格尔投影的特性。 大地坐标系是大地测量的基本坐标系。常用于大地问题的细算,研究地球形状和大小,编制地图,火箭和卫星发射及军事方面的定位及运算,若将其直接用于工程建设规划、设计、施工等很不方便。所以要将球面上的大地坐标按一定数学法则归算到平面上,即采用地图投影的理论绘制地形图,才能用于规划建设。   椭球体面是一个不可直接展开的曲面,故将椭球体面上的元素按一定条件投影到平面上,总会产生变形。测量上常以投影变形不影响工程要求为条件选择投影方法。地图投影有等角投影、等面积投影和任意投影三种。 其中等角投影又称为正形投影,它保证在椭球体面上的微分图形投影到平面后将保持相似。这是地形图的基本要求。正形投影有两个基本条件:  ①保角条件,即投影后角度大小不变。 ②长度变形固定性,即长度投影后会变形,但是在一点上各个方向的微分线段变形比m是个常数k:

    展开全文
  • 直角坐标系图像转换为极坐标系
  • 地固直角坐标系转换到大地坐标系,坐标系转换程序,研究生阶段使用的,真实有效
  • §1 平面直角坐标系及其变换   1.直角坐标系(笛卡儿坐标系) 坐标系:O-XY 点M(x,y),x为横坐标,y为纵坐标. 在Ⅰ、Ⅱ、Ⅲ、Ⅳ四个象限中坐标x,y的符号为: 象限 Ⅰ ...
  • 坐标系转换程序,大地坐标系转换到地固直角坐标系,研究生阶段使用的,真实有效
  • 以正交三角分解为例: 根据矩阵的 QR 分解理论,非奇异阵 Cba 总可以分解为单位正交阵 CbB和上三角阵CBa 之乘积...在上式中, 单位正交阵 CbB可以看作是从b 系到另一右手直角坐标系(B系)的变换矩阵,若记从b 系到...
  • matplotlib的坐标系的变换 在matplotlib绘图包中,...直角坐标系无需多言,可视化中经常绘制的条形图、散点图、气泡图就是直角坐标系。在这里主要说明matplotlib实现三维直角坐标系。 import matplotlib.pyplot as pl
  • 易语言画平面直角坐标系源码,画平面直角坐标系,取真正y
  • 空间直角坐标系 / 笛卡尔坐标系 坐标轴相互正交的坐标系被称作笛卡尔坐标系 三维笛卡尔坐标系也被称为 空间直角坐标系 在空间直角坐标系下 点的坐标可以用该点所对应的矢径在三 个坐标轴上的投影长度来表示 只有确定...
  • 实用Matlab的GPS空间直角坐标系转大地坐标系,简单实用,便于理解
  • 易语言源码易语言画平面直角坐标系源码.rar 易语言源码易语言画平面直角坐标系源码.rar 易语言源码易语言画平面直角坐标系源码.rar 易语言源码易语言画平面直角坐标系源码.rar 易语言源码易语言画平面直角坐标系...
  • 空间直角坐标系,七参数求解及通过算的的七参数求解相同坐标系下的已知点的xyz 空间直角坐标系,七参数求解及通过算的的七参数求解相同坐标系下的已知点的xyz
  • 一、目的1、画平面直角坐标系;二、程序运行结果平面直角坐标系三、numpy.hstack()函数1、函数函数原型:numpy.hstack(tup),其中tup是arrays序列,阵列必须具有相同的形状,除了对应于轴的维度(默认情况下,第一个)...
  • 经纬度坐标映射到平面直角坐标系 一坐标系分类 1地心坐标系 2参心坐标系 3空间直角坐标系 4空间大地坐标系 5平面直角坐标系 二坐标系转换 三坐标系投影的实现...
  • 大地坐标系和空间直角坐标系转换能实现大地坐标和空间直角坐标的相互转换
  • 歌词如下:有两个互相垂直的数轴它们的原点重合构成了平面直角坐标系一个点向两轴作垂线段垂足在数轴上面在横纵轴对应的两数分别是这点的横纵坐标这点到横轴的距离是纵坐标的绝对值这点到纵轴的距离是横坐标的绝对值...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,923
精华内容 2,369
关键字:

直角坐标系