精华内容
下载资源
问答
  • Extjs4 的chart能不能 同一坐标系中出现多个Y轴,类似 [img=http://img.my.csdn.net/uploads/201304/26/1366963568_7852.JPG][/img]
  • 在同一坐标系下,平移操作将空间一个点沿着一个已知的矢量方向移动一定的距离,如下图所示,将AP1^{A}P_{1}AP1​沿着AQ^{A}QAQ进行平移得到AP2^{A}P_{2}AP2​ 易得, AP2=AP1+AQ ^{A}P_{2}=^{A}P_{1}+^{A}Q AP2​...

    除了不同坐标系之间点的坐标变换,在同一坐标系内也存在对点的变换操作,例如平移,旋转等。

    1. 平移

    在同一坐标系下,平移操作将空间中一个点沿着一个已知的矢量方向移动一定的距离,如下图所示,将AP1^{A}P_{1}沿着AQ^{A}Q进行平移得到AP2^{A}P_{2}

    易得,

    AP2=AP1+AQ ^{A}P_{2}=^{A}P_{1}+^{A}Q

    用矩阵写出平移算子,可得,
    AP2=D(Q)AP1 ^{A}P_{2}=D(Q)^{A} P_{1}

    式中,

    D(Q)=[100qx010qy001qz0001] D(Q) = \left[\begin{array}{cccc} {1} & {0} & {0} & {q_{x}} \\ {0} & {1} & {0} & {q_{y}} \\ {0} & {0} & {1} & {q_{z}} \\ {0} & {0} & {0} & {1} \end{array}\right]
    其中,qx,qy,qzq_x,q_y,q_zAQ^{A}Q的分量。

    2. 旋转

    在同一坐标系下,旋转操作将一个向量AP1^{A}P_{1}用旋转矩阵RR旋转到另外一个向量AP2^{A}P_{2}

    AP2=RAP1 ^{A} P_{2}=R^{A} P_{1}

    向量经由某一旋转RR得到的旋转矩阵与一个坐标系相对于参考坐标系经某一旋转RR得到的旋转矩阵是相同的。

    如上图将向量PP旋转φ\varphi得到P1P_1,对应的旋转矩阵为,

    (cosφsinφsinφcosφ) \left(\begin{array}{cc} {\cos \varphi} & {-\sin \varphi} \\ {\sin \varphi} & {\cos \varphi} \end{array}\right)

    3. 平移旋转

    将一个向量P1P_1经过平移旋转得到P2P_2,可以用4×44\times4其次矩阵表示,

    AP2=TAP1 ^{A} P_{2}=T^{A} P_{1}
    其中,
    T=[RQ01] T=\left[\begin{array}{ll} {R} & {Q} \\ {0} & {1} \end{array}\right]
    经旋转RR和平移QQ的其次变换矩阵与一个坐标系相对于参考坐标系经旋转RR和平移QQ的其次变换矩阵是相同的。

    展开全文
  • 同一坐标系中,由任意两点计算地图旋转角度 ----原创文章,转载请注明出处,谢谢 一、引言 各种GIS/GPS应用中,地图旋转是不可或缺的一部分,尤其明显的是用实时导航,对象跟踪等应用方面。用来计算地图旋转...

     

    同一坐标系中,由任意两点计算地图旋转角度

                                                ----原创文章,转载请注明出处,谢谢

    一、引言

    在各种GIS/GPS应用中,地图旋转是不可或缺的一部分,尤其明显的是用在实时导航,对象跟踪等应用方面。用来计算地图旋转时偏转角的坐标点有动态和静态两种之分。动态在这里指的是在已知当前点的情况下,下一点的具体位置是不确定的;而静态指的是下一点的具体位置是确定的。动态的应用我们常见到的是GPS导航、游戏中的赛车(多赛道、可转弯等)以及调度等中的实时地图旋转,而静态更常见的是作为一种功能的演示,如模拟导航,模拟赛车等。地图旋转只有在同一坐标系中进行才有意义,地图旋转角度的计算才有依据,本文主要着重点在于如何由前后两点计算地图旋转角度,同时主要考虑动态的方式,静态方式的旋转地图原理是一样的,就不分开介绍了。

    二、约定和术语

    ²      参考坐标系:本文所依据的坐标系为北京54下的依据高斯克吕格投影所建立的坐标系,即高斯平面坐标系,它的图像如图:


    X
    代表为正北方向,Y代表正东方向,为了使y值都为正,将纵坐标轴西移500km

    ²      正切函数是直角三角形中,对边与邻边的比值。放在直角坐标系中(如图)即 tanθ=y/x

    其中tanθ的定义域为(-∏/2,+∏/2),值域为(-,+)

    ²         偏转角:约定偏转角为北偏东的角度,将地图按照偏转角进行旋转后将始终朝着运动方向行驶。在高斯平面坐标系中,正北即为X轴,正东即为Y轴,所以tanθ还是为y/x,只是角度的位置有了变化,如图所示。

    ²         反正切:函数y=tanx的反函数叫做反正切函数,记做:y=arctanx.
    定义域:R;值域:(-π/2,π/2)
    三、计算偏转角

    假设存在一起始点pntBegin,并且存在一个原点为pntBegin的平面坐标系,同时约定要旋转的角度为rotateAngle,则下一点pntDest根据方位有几种情况,其示意图如下,我们可以分类进行讨论:


    l       pntDest.x1>=pntBegin.x0,则该点在第一和第四象限,具体对应点为pntDest(1)pntDest(4),分别对应的北偏东角度为α(1)和α(4),根据Y值的不同,我们又可以分两种情况,

    n       若pntDest.y>=pntBegin.y://在第一象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    n       若pntDest.y<pntBegin.y://在第四象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    rotateAngle=∏-rotateAngle;

    l       pntDest.x1<pntBegin.x0,则该点在第二和第三象限,具体对应点为pntDest(2)pntDest(3),分别对应的北偏东角度为α(2)和α(3),根据Y值的不同,分两种情况进行讨论,

    n       若pntDest.y>=pntBegin.y://在第二象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));
    rotateAngle= 2*∏-rotateAngle;

    n       若pntDest.y<pntBegin.y://在第三象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    rotateAngle=∏+rotateAngle;

    四、在超图平台中实现
    :开发语言为VC6,平台为eSuperMap;

    代码如下:

     1
     2void CCarNaviView::RotateMap(CPoint pntBegin,CPoint pntNext)
     3{    
     4    //计算旋转角度
     5    double dAngle=CalculateRotateAngle(pntBegin,pntNext);
     6    //地图旋转
     7    m_MapWnd.GetDrawParam()->SetMapRotationAngle( dAngle );
     8    m_MapWnd.Refresh();
     9}

    10
    11/**//// \brief 由前后两点计算当前地图偏转角并进行地图旋转
    12/// \param pntbegin 起始点
    13/// \param pntbegin 下一点
    14/// \return 地图要旋转的角度(北偏东)
    15/// \remark 为适应习惯用法,点坐标的表示方法为cpoint(x,y),如pntbegin(x,y)代表的含义为:
    16///          x->正东,即为高斯投影中的Y,y->正北,代表高斯投影中的x

    17double CCarNaviView::CalculateRotateAngle(CPoint pntBegin,CPoint pntNext)
    18{
    19    CPoint pntFirst(pntBegin);
    20    CPoint pntSecond(pntNext);
    21    
    22    double dRotateAngle = atan2(fabs(pntBegin.x-pntNext.x),fabs(pntBegin.y-pntNext.y));
    23    
    24    //如果下一点的横坐标大于前一点(在第一和第四象限)
    25    if (pntNext.x>=pntFirst.x)
    26    {
    27        //在第一象限(0<=dRotateAngle<=90)
    28        if (pntNext.y>=pntFirst.y)
    29        {
    30            //不做任何处理
    31            dRotateAngle=dRotateAngle;
    32        }

    33        else
    34        {
    35            dRotateAngle=PI-dRotateAngle;
    36        }

    37    }

    38    else//(在第二和第三象限)
    39    {
    40        //第二象限
    41        if (pntNext.y>=pntFirst.y)
    42        {
    43            dRotateAngle=2*PI-dRotateAngle;
    44        }

    45        else//第三象限
    46        {
    47            dRotateAngle=PI+dRotateAngle;
    48        }

    49    }

    50    return dRotateAngle;
    51}



    五、结束语

    整个计算过程并不复杂,甚至相当简单,重要的是要理解这个过程。各个开发平台也许有些出入,但是原理都应该相似,所以思路我相信是可以移植的。同时关于在下一点在坐标系上的情况我也已经考虑进去了,这里就不再说明了。同时,欢迎各位多提宝贵意见,集思广益,共同学习。

                                                                                         

    转载于:https://www.cnblogs.com/hanchan/archive/2008/06/22/1227669.html

    展开全文
  • y_beijing, color="r", linestyle="--", label="北京") x_ticks_label = ["11点{}分".format(i) for i in x] y_ticks = range(40) x_ticks = x[::5] # 设置坐标轴刻度 plt.xticks(x_ticks, x_ticks_label[::5]) plt...
    from matplotlib import pyplot as plt
    import random
    from pylab import mpl
    
    # 设置中文显示
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    mpl.rcParams["axes.unicode_minus"] = False
    
    x = range(60)
    y_shanghai = [random.uniform(15, 18) for i in x]
    y_beijing = [random.uniform(1, 3) for i in x]
    
    # 设置图像大小及清晰度
    plt.figure(figsize=(20, 8), dpi=80)
    
    # 绘制图像
    plt.plot(x, y_shanghai, label="上海")
    plt.plot(x, y_beijing, color="r", linestyle="--", label="北京")
    
    x_ticks_label = ["11点{}分".format(i) for i in x]
    y_ticks = range(40)
    x_ticks = x[::5]
    
    # 设置坐标轴刻度
    plt.xticks(x_ticks, x_ticks_label[::5])
    plt.yticks(y_ticks[::5])
    
    # 设置网格
    plt.grid(True, linestyle="--", alpha=1)
    
    # 设置坐标轴含义
    plt.xlabel("时间")
    plt.ylabel("温度")
    plt.title("中午11点到12点某城市的温度变化图", fontsize=20)
    
    # 添加图例
    plt.legend(loc="best")
    
    # 图像保存
    plt.savefig("./test.png")
    
    # 展示图像
    plt.show()
    
    展开全文
  • 各种GIS/GPS应用,地图旋转是不可或缺的一部分,尤其明显的是用实时导航,对象跟踪等应用方面。用来计算地图旋转时偏转角的坐标点有动态和静态两种之分。动态这里指的是已知当前点的情况下,下一点的具体...
     
    

    一、引言

    在各种GIS/GPS应用中,地图旋转是不可或缺的一部分,尤其明显的是用在实时导航,对象跟踪等应用方面。用来计算地图旋转时偏转角的坐标点有动态和静态两种之分。动态在这里指的是在已知当前点的情况下,下一点的具体位置是不确定的;而静态指的是下一点的具体位置是确定的。动态的应用我们常见到的是GPS导航、游戏中的赛车(多赛道、可转弯等)以及调度等中的实时地图旋转,而静态更常见的是作为一种功能的演示,如模拟导航,模拟赛车等。地图旋转只有在同一坐标系中进行才有意义,地图旋转角度的计算才有依据,本文主要着重点在于如何由前后两点计算地图旋转角度,同时主要考虑动态的方式,静态方式的旋转地图原理是一样的,就不分开介绍了。

    二、约定和术语

    ²      参考坐标系:本文所依据的坐标系为北京54下的依据高斯克吕格投影所建立的坐标系,即高斯平面坐标系,它的图像如图:


    X
    代表为正北方向,Y代表正东方向,为了使y值都为正,将纵坐标轴西移500km

    ²      正切函数是直角三角形中,对边与邻边的比值。放在直角坐标系中(如图)即 tanθ=y/x

    其中tanθ的定义域为(-∏/2,+∏/2),值域为(-,+)

    ²         偏转角:约定偏转角为北偏东的角度,将地图按照偏转角进行旋转后将始终朝着运动方向行驶。在高斯平面坐标系中,正北即为X轴,正东即为Y轴,所以tanθ还是为y/x,只是角度的位置有了变化,如图所示。

    ²         反正切:函数y=tanx的反函数叫做反正切函数,记做:y=arctanx.
    定义域:R;值域:(-π/2,π/2)
    三、计算偏转角

    假设存在一起始点pntBegin,并且存在一个原点为pntBegin的平面坐标系,同时约定要旋转的角度为rotateAngle,则下一点pntDest根据方位有几种情况,其示意图如下,我们可以分类进行讨论:


    l       pntDest.x1>=pntBegin.x0,则该点在第一和第四象限,具体对应点为pntDest(1)pntDest(4),分别对应的北偏东角度为α(1)和α(4),根据Y值的不同,我们又可以分两种情况,

    n       若pntDest.y>=pntBegin.y://在第一象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    n       若pntDest.y<pntBegin.y://在第四象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    rotateAngle=∏-rotateAngle;

    l       pntDest.x1<pntBegin.x0,则该点在第二和第三象限,具体对应点为pntDest(2)pntDest(3),分别对应的北偏东角度为α(2)和α(3),根据Y值的不同,分两种情况进行讨论,

    n       若pntDest.y>=pntBegin.y://在第二象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));
    rotateAngle= 2*∏-rotateAngle;

    n       若pntDest.y<pntBegin.y://在第三象限
    rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

    rotateAngle=∏+rotateAngle;

    四、在超图平台中实现
    :开发语言为VC6,平台为eSuperMap;

    代码如下:

     1
     2void CCarNaviView::RotateMap(CPoint pntBegin,CPoint pntNext)
     3{    
     4    //计算旋转角度
     5    double dAngle=CalculateRotateAngle(pntBegin,pntNext);
     6    //地图旋转
     7    m_MapWnd.GetDrawParam()->SetMapRotationAngle( dAngle );
     8    m_MapWnd.Refresh();
     9}

    10
    11/**//// \brief 由前后两点计算当前地图偏转角并进行地图旋转
    12/// \param pntbegin 起始点
    13/// \param pntbegin 下一点
    14/// \return 地图要旋转的角度(北偏东)
    15/// \remark 为适应习惯用法,点坐标的表示方法为cpoint(x,y),如pntbegin(x,y)代表的含义为:
    16///          x->正东,即为高斯投影中的Y,y->正北,代表高斯投影中的x

    17double CCarNaviView::CalculateRotateAngle(CPoint pntBegin,CPoint pntNext)
    18{
    19    CPoint pntFirst(pntBegin);
    20    CPoint pntSecond(pntNext);
    21    
    22    double dRotateAngle = atan2(fabs(pntBegin.x-pntNext.x),fabs(pntBegin.y-pntNext.y));
    23    
    24    //如果下一点的横坐标大于前一点(在第一和第四象限)
    25    if (pntNext.x>=pntFirst.x)
    26    {
    27        //在第一象限(0<=dRotateAngle<=90)
    28        if (pntNext.y>=pntFirst.y)
    29        {
    30            //不做任何处理
    31            dRotateAngle=dRotateAngle;
    32        }

    33        else
    34        {
    35            dRotateAngle=PI-dRotateAngle;
    36        }

    37    }

    38    else//(在第二和第三象限)
    39    {
    40        //第二象限
    41        if (pntNext.y>=pntFirst.y)
    42        {
    43            dRotateAngle=2*PI-dRotateAngle;
    44        }

    45        else//第三象限
    46        {
    47            dRotateAngle=PI+dRotateAngle;
    48        }

    49    }

    50    return dRotateAngle;
    51}
    展开全文
  • 使用echarts的时候会遇到多组数据,或是柱状图,或是折线图一起显示一个坐标系中,这时候你会发现鼠标hover的时候只会显示一组数据,这时候就需要自定义,取出鼠标hover中的param。然后打印出来看看,发现里面...
  • matlab同一张图建立多个坐标系

    千次阅读 2020-03-13 23:09:08
    一个坐标系中画多条曲线,可以用 plot(x1,y1) hold on plot(y2) hold off 一个画布中快速建多个坐标系 subplot(211) plot(sin(1:100)) subplot(212) plot(cos(1:100)) 上诉方法是matlab自建的多个坐标系...
  • 由于数据来源的不同,不同的数据可能存在不同的坐标系,要想让它们在ArcMap中叠加到一起,显示在同一坐标系中,就需要对其坐标系进行转换。 (1)打开ArcMap —>选择空白文档 (2)在ArcCatalog中定位到…\DATA...
  • 摄影测量中地面控制点的坐标转换方法研究,杨健,宁小刚,本文讨论了在进行摄影测量的过程中,如何对地面控制点的坐标进行转换。这种转换既有在同一坐标系中进行的转换,例如将地面控制点
  • 问:我这有2个不同坐标的shp要素,这2个要素是同一地理位置的,但是在arcmap打开不能显示在同一范围内,所以我将其中一个要素的坐标转换成另一个要素的坐标,但是转换后,2个要素还是不能显示在同一范围内。...
  • 测绘各种坐标系: 1.大地坐标系:以参考椭球为基准面建立起来的坐标系。 将某点投影到椭球面上的位置用大地经纬度L和大地纬度表示B,(B,L,H) 2.空间直角坐标系:以椭球体中心为原点,起始子午面与赤道面为...
  • 主要思路是通过利用包围盒来查看各模型所在世界坐标系中的位置,之后进行变换。当同时利用位置变换和矩阵变换时,需要按照root-&gt;矩阵变换-&gt;位置变换-&gt;模型节点的形式。先通过位置变换设置原点...
  • 坐标系的转换是我们地理数据的使用过程经常会遇到的问题,像大家经常提到的54转8080转2000WGS84转2000等等,以及ArcGIS经常提到的地理坐标系转投影坐标系、投影坐标系转地理坐标系、6°分带转3°分带、跨带转换...
  • convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。重点说明:基于... 不一定要是真实的,convertToWorldSpace 的结果也只是一个新的位置, 这个位置一般都没有什么实际意义的,大部分都...
  • 根据前一篇的设计,本篇主要描述同一个椭球基准内的坐标转换。怎么理解这句话了,就是不管你拿到的位置点坐标是...从上一篇的描述我们可以知道,同一个大地坐标基准内,可以构建以下三类坐标系: 【1】大地...
  • 功能:回调当前工作区保存的坐标系;指定路径保存和回调坐标系。 操作:点击“调出坐标系”菜单或...界面自动关闭,同时自学习节点指令如(图3)所示,节点名称为在坐标系名称前加“LOAD-”,如果同一名称坐标系多次
  • 意味着对于非兄弟item的坐标值x,y需要通过转化到同一坐标系下。场景坐标系常常用作中间坐标系,来完成这个转换。 场景坐标系 场景坐标系坐标原点位于场景渲染的窗口的左上角。窗口,场景坐标系常常与根节点的...
  • 3D数学 坐标系

    千次阅读 2015-07-13 11:35:08
    坐标系 什么是多坐标系?用处是什么? 顾名思义,多坐标系指在同一空间的...而这些不同的坐标系又有嵌套关系(如耳朵坐标系嵌套在头部坐标系中,头部坐标系又嵌套在上体坐标系,上体坐标系又嵌套在整个身体坐标系中
  • 我们常常需要在同一坐标系中放置2条或多条ROC曲线,以便于直观比较。 针对同一批病人,存在两个不同诊断标准(A是现有标准,B是新研究的标准),现在想比较一下二者的区别。因此,分别采用A和B对这些病人进行诊断...
  • 在数据分析时,有时候我们需要在同一坐标比较两种数据在时间序列上面的关系 由于两种数据的单位和数据并不统一,也是不同的类型的数据,因此我们不能用一个Y轴来共同衡量两类 不同的数据,这时候我们就需要...
  • 测量坐标系转换是指在同一参考椭球下,空间点的不同坐标形式间的坐标转换,即平面坐标、大地坐标和空间直角坐标之间的转换。测量坐标基准转换是指不同基准(亦即不同坐标系统)下测量坐标之间的转换,其关键在于确定...
  • 多功能图形(MFP)坐标系可用于可视化未知尺寸,无法将其计入2维坐标系和3维坐标系。 建立MFP坐标系的主要思想是实时观察任何经济现象在同一图形空间的行为。
  • 问:我这有2个不同坐标的shp要素,这2个要素是同一地理位置的,但是在arcmap打开不能显示在同一范围内,所以我将其中一个要素的坐标转换成另一个要素的坐标,但是转换后,2个要素还是不能显示在同一范围内。...
  • 坐标系相关问题

    千次阅读 2014-03-17 20:23:12
    我这有2个不同坐标的shp要素,这2个要素是同一地理位置的,但是在arcmap打开不能显示在同一范围内,所以我将其中一个要素的坐标转换成另一个要素的坐标,但是转换后,2个要素还是不能显示在同一范围内。...
  • 空间直角坐标系中(x,y,z)中,两条有一个相同顶点的线段,要标注他们的角度靠近交点的地方画劣弧,众所周知,编程中使用数学问题可以有效的简化代码,所以这个问题就被引申为2个数学问题: 1、空间直角...
  • 本博文源于matlab基础,主要对画图的一些...## 例子:在同一坐标系中画出两个函数y=cos2x,y=sinxsin6x的图形,自变量范围为0,函数y=cos2x用红色星号,函数y=sinxsin6x用蓝色实现,并加图名、坐标轴、图形、图例标注。
  • 1二维绘图函数;3二维绘图工具;5linspace创建数组命令调用格式为;如果将区间5等分操作如下> plot(x,y1,x,y2; 4plot(x1,y1,s1,x2,y2,s2:每三...例5 在同一坐标系中作出4条曲线y=sinxy=cosx> gtext'y=0.2exp(0.1x)sin(0.5x

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

在同一坐标系中