精华内容
参与话题
问答
  • 3D坐标系

    2018-01-28 13:03:00
    3D渲染中,首先要确定的就是坐标系坐标系根据实际情况,分为两种: 左手坐标系 右手坐标系  在3D空间中,这两个坐标系是没有办法重合到一起的:    Unity使用的坐标系为左手坐标系。  在确定左手...

    在3D渲染中,首先要确定的就是坐标系,坐标系根据实际情况,分为两种:

    • 左手坐标系
    • 右手坐标系

      在3D空间中,这两个坐标系是没有办法重合到一起的:

      

     

      Unity使用的坐标系为左手坐标系。

      在确定左手坐标系的前提下,又有两个分分类,分别为

    •   Y-UP
    •   Z-UP

      也就是到底是Y轴朝上还是Z轴朝上

      

    转载于:https://www.cnblogs.com/leiGameDesigner/p/8370965.html

    展开全文
  • 3D坐标系:3D笛卡尔坐标系和3D柱面坐标系的区别

    在做一个WPF集成SharpDX的功能。

    遇见一个奇葩问题:MeshBuilder.AddBox(Point3D center, double xlength, double ylength, double zlength, BoxFaces faces);这个方法里面的BoxFaces 参数很让人迷惑。

    查看了一下源码:

    BoxFaces下有如下成员:

    Top = PositiveZ,

    Bottom = NegativeZ,

    Left = NegativeY,

    Right = PositiveY,

    Front = PositiveX,

    Back = NegativeX,

    ...

    那么问题就来了,这里的Top 、Bottom 、Left 、Right 、Front 、Back 和主界面的ShowViewCube里那些F B L R U D所指的方向不一样。。

    如图:

                   


    ShowViewCube(3D笛卡尔坐标系--右手)                            BoxFaces(3D柱面坐标系--右手)


    这可咋整,让我好迷惑,以后这参数咋设置,乱七八糟的。。。

    于是各种百度,最后在一篇博文里看到了对于3D坐标系的介绍,解决了我的问题。


    到这里还没结束,用MeshBuilder.AddBox(Point3D center, double xlength, double ylength, double zlength, BoxFaces faces);添加的面(比如图片)

    显示出来却是颠倒的,具体效果就是沿着X+方向顺时针旋转了90°,在这里再做一个逆旋转回去就行了。

    RotateTransform3D rota = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1, 0, 0), 90));// 把笛卡尔坐标系的点反转回柱面坐标系(绕X+轴顺时针旋转90°)
    Vector3D center = new Vector3D(10,10,10);
    center = rota.Transform(center);



    -----------------------------------------------------------------以下为引用--------------------------------------------------------------------------------------

    http://heweiyou.blog.51cto.com/5656256/1129911 感谢原博主的文章。。。)

    3D笛卡尔坐标

    3D笛卡尔坐标系故名思议则是在2D坐标系的基础上增加了一个维度,命名其为z轴,当然z轴也应有其正方向,因此出现了两种坐标系:左手坐标系(LHS)和右手坐标系(RHS)(用左手或右手握住z轴,如果其他手指从x轴绕到y轴,则大拇指将指向z轴的正方向)。

     

              

                 

    3D柱面坐标系

    3D柱坐标系较为接近2D极坐标系,在rθ的基础上多了一个z的值,如图:

      

              

               

    其中:

    x = r*cosθ

    y = r*sinθ

    z = z

    r =sqrt(x*x+y*y)

    tanθ = y/x

    3D球面坐标系

    使用两个角度和到原点的距离来定义点,如图:

                     

               

        其中:

        r = p*sinφ

        x = r*cosθ

        y = r*sinθ





    展开全文
  • 3D 坐标系 2D坐标系

    千次阅读 2008-11-11 13:14:00
    二维笛卡儿坐标系的平移等式。t( tx, ty ): ( x, y ) ==> ( x + tx, y + ty )二维笛卡儿坐标系的缩放等式。s( k ): ( x, y ) ==> ( kx, ky )旋转等式:r( q ): ( x, y ) ==> ( x cos(q) - y sin(q), x sin(q) + y cos...

    二维笛卡儿坐标系的平移等式。
    t( tx, ty ): ( x, y ) ==> ( x + tx, y + ty )
    二维笛卡儿坐标系的缩放等式。
    s( k ): ( x, y ) ==> ( kx, ky )
    旋转等式:
    r( q ): ( x, y ) ==> ( x cos(q) - y sin(q), x sin(q) + y cos(q) )

    三维坐标系公式。
    平移公式:
    t( tx, ty, tz ): ( x, y, z ) ==> ( x + tx, y + ty, z + tz )

    平移(tx, ty, tz)的矩阵

    | 1   0   0   0 |
    | 0   1   0   0 |
    | 0   0   1   0 |
    | tx  ty  tz  1 |


    缩放公式:
    s( k ): ( x, y, z ) ==> ( kx, ky, kz )

    缩放(sx, sy, sz)的矩阵
    | sx 0   0  0 |
    | 0   sy 0  0 |
    | 0   0  sz 0 |
    | 0   0  0  1 |

    旋转公式(围绕Z轴):
    r( q ): ( x, y, z ) ==> ( x cos(q) - y sin(q), x sin(q) + y cos(q), z )

    绕X轴旋转角q的矩阵
    | 1     0         0        0 |
    | 0  cos(q)  sin(q)  0 |
    | 0  -sin(q) cos(q)  0 |
    | 0     0          0       1 |

    绕Y轴旋转角q的矩阵:
    | cos(q) 0 -sin(q)  0 |
    |     0     1      0      0 |
    | sin(q)  0 cos(q)   0 |
    |     0     0      0      1 |

    绕Z轴旋转角q的矩阵:
    | cos(q) sin(q)   0   0 |
    |-sin(q) cos(q)   0   0 |
    |     0         0       1   0 |
    |     0         0       0   1 |

    3D世界到2D屏幕的投影公式:
    P( f ):(x, y, z)==>( f*x / z + XOrigin, f*y / z + YOrigin )
    其中f是“焦点距离”,它表示从观察者到屏幕的距离,一般在80到200厘米之间。XOrigin和YOrigin是屏幕中心的坐标。

    展开全文
  • 3D坐标系转换示例源代码 笛卡尔坐标 极坐标 3D柱面坐标 3D球面坐标 的推导 与转换函数
  • 世界坐标系:以世界坐标(0,0)点为参考物记录的相对位置。 物体坐标系:以父类坐标为参考物记录的相对位置。 相机坐标系:以相机坐标为参考物的 记录的相对位置。 视图坐标系:左下角 (0,0) 右上角(1,1) ...

    世界坐标系:以世界坐标(0,0)点为参考物记录的相对位置。

    物体坐标系:以父类坐标为参考物 记录的相对位置。

    相机坐标系:以相机坐标为参考物的 记录的相对位置。

    视图坐标系:左下角 (0,0)   右上角(1,1)

    屏幕坐标系:  Input.mousePosition 左下角 (0,0)  右上角(屏幕的宽  ,屏幕的高 )

    屏幕坐标系: 像素坐标系

       

    通过Debug.Log(Input.MousePosition)来记录鼠标位置。

    屏幕坐标系又称为像素坐标系,GIF图没有记录我鼠标的位置,我们可以看到,我的屏幕像素为1920*1080

    注意我的左下角的打印信息,当我的鼠标位置在屏幕坐下角的时候,打印的信息是(0,0,0)

    当我的鼠标位置在屏幕右上角的时候,打印的信息是(1920,1080,0)

    我们可以看出来鼠标在屏幕的位置,是以像素单位来记录的。

    视图坐标系

    像阴阳师这类游戏的抽卡游戏中,有画符这种操作,在屏幕上画的图按视图坐标系比例映射到Texture。。

    在Camera的几个API中,ScreenToViewportPoint是屏幕坐标系转视图坐标系,ScreenToWorldPoint是屏幕坐标系转世界坐标系。

    注意左下角的打印日志

     

    当鼠标在屏幕左下角的时候,打印的是(0,0,0)
    当鼠标在屏幕左上角的时候,打印的是(0,1,0)
    当鼠标在屏幕右下角的时候,打印的是(1,0,0)

     

    当鼠标在屏幕右上角的时候,打印的是(1,1,0)

    我们可以看出来屏幕坐标系是以1为单位的坐标系

     

     

     

     

     

     

     

    展开全文
  • 3D坐标系变换

    万次阅读 2011-03-30 08:38:00
    3D坐标系变换~
  • Unity3D 坐标系

    2016-12-03 23:46:04
    Unity3D使用的是左手坐标系,即伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。这样就建立了一个左手坐标系。拇指、食指和其余手指分别代表X,Y,Z轴的正方向。 1.世界坐标系:Unity...
  • unity3d 坐标系

    2016-04-22 00:05:37
    unity3d使用的是左手坐标系,即伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。这样就建立了一个左手坐标系。拇指、食指和其余手指分别代表x,y,z轴的正方向。1、世界坐标系:unity...
  • unity 3D坐标系

    2019-09-17 20:56:37
    3D坐标系里面 分为左手系和右手系其区别在于Z轴的不同 unity主要用左手系作为坐标系
  • Unity 3d坐标系

    2020-05-19 15:27:58
    3D坐标系是3D游戏开发中的基础知识。笛卡尔坐标是3D游戏引擎常见的坐标表示方法。 什么是笛卡尔坐标系呢这个不做过多的解释。笛卡尔坐标系分为左手坐标系和右手坐标系。而Unity中应用的左手坐标系,X轴表示水平方向...
  • 3D直角坐标系演示控件,使用C#和OpenTK(基于OpenGL)编写,具有如下特点: 1.带有一个空间方位指针。指针指向可由方向角和俯仰角确定。 2.实现了鼠标轨迹球(ArcBall)功能。可以用鼠标拖动直角坐标系任意旋转,运行...
  • 并不是做关于SLAM方向的,但由于某些任务涉及到,故作此笔记~ 相机内参矩阵: 不同的的深度摄像头具有不同的特征参数,在计算机视觉里,将这组参数设置为相机的内参矩阵C: [fx0cx0fycy001 ...
  • 3D坐标系与经纬度坐标换算

    千次阅读 2019-11-18 12:57:06
    本次创新以Unity3D为例,使用一系列算法将经纬度坐标与3D坐标系进行换算。 1.坐标系分析(以Unity3D左手坐标系为例) 经纬度坐标是描述球面上某个点的位置,若已知球体半径(R)和球体中心点的3D坐标(O)便...
  • 在不使用正交投影的情况下,将一张纹理贴图_tex显示到stage舞台你想要的坐标点上,通过...已知条件:点(x1,y1)【stage舞台上的坐标点,不是stage3D坐标系的】,_tex 的 width,height 求:修改顶点数据上改变令其显示
  • ubuntu16.04 下在qt 5.9.0 下采用opengl 利用glut画3维坐标系
  • Unity3D - 3D坐标系(3D Coordinate System)

    千次阅读 2017-08-25 00:23:57
    3D坐标系是3D游戏开发的基础概念。一般3D软件都是采用笛卡尔坐标系来描述物体的坐标信息。笛卡尔坐标系分为左手坐标系和右手坐标系: 左手坐标系是Y轴指向上方,X轴指向右方,Z轴指向前方。 右手坐标系是Y轴指向...
  • 3D坐标系(一)

    2013-01-30 19:37:04
    3D笛卡尔坐标系故名思议则是在2D坐标系的基础上增加了一个维度,命名其为z轴,当然z轴也应有其正方向,因此出现了两种坐标系:左手坐标系(LHS)和右手坐标系(RHS)(用左手或右手握住z轴,如果其他手指从x轴绕到y...
  • 3D坐标系(二)

    2013-01-31 19:14:30
    通常每当创建一个3D物体时都有自己的坐标系,从而能够简化建模的过程,因为不需要去考虑除自身以外的因素,如图: 当然,自身坐标系的魅力不仅仅是这样,倘若要对一个物体绕着自身某一个顶点旋转,我想将坐标...
  • unity3d坐标系 向量运算 unity3d坐标系 *3d坐标系分为两种,分别是左手坐标系和右手坐标系。u3d使用的是左手坐标系*。 通常3d坐标系中x轴右侧代表水平正方形,y轴为垂直正方向向上,z轴分为向里和向外两种,正方向...
  • 一般3D软件都是采用笛卡尔坐标系来描述物体的坐标信息。笛卡尔坐标系分为左手坐标系和右手坐标系,左手坐标系是Y轴指向上方,X轴指向右方,Z轴指向前方;右手XY相同,Z轴相反。 下图为右手坐标系(左手做相同动作) ...
  • WPF中二维图形的坐标系将原点定位在呈现区域(通常是屏幕)的左上角。 在二维系统中,x 轴上的正值朝右,y 轴上的正值朝下。 在三维坐标系中,原点位于呈现区域的中心,x 轴上的正值朝右,y 轴上的正值朝上,z 轴上...
  • Unity3D数学基础之3D坐标系(一)

    千次阅读 2017-03-30 12:47:19
    一般而言3D软件都是采用笛卡尔坐标系来描述物体的坐标信息。 左手坐标系:Y轴指向上方,X轴指向右方,Z轴指向前方。伸出左手,大拇指指向X轴,食指指向Y轴,中指能指向的方向就是Z轴右手坐标系:X轴和Y轴同左手...
  • 3D游戏引擎数学基础1--3D坐标系

    千次阅读 2016-04-30 16:33:36
    要学3D引擎,最基础当然就是数学知识,数学知识中最基础的自然就是坐标系了,没有坐标系,一切都是白谈,幸运的是,坐标系学起来非常简单,好了,让我们一起来回顾一下坐标系的概念吧。 1、2D坐标系 2D坐标系...

空空如也

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

3d坐标系