2010-07-27 67 views
1

我很困惑自己在3D平面上可怕地抓住了绘图的概念,如果我向下看-Z轴,把一个对象放在我的前面,我只是将Z值设为负值并将其放到后面我只是把它变成积极的..但..我怎么把对象放在我的左边或右边?对不起,我意识到这是一个愚蠢的问题,但没有少它的困惑我了解3D空间

Example

我在(-3绘制一个正方形,-2,10-; -3,2,10; 3, -2,10; 3,2,10)我如何在右边或左边绘制某些东西?

回答

2

保持Z轴相同,并在X轴上移动。

左右是主观偏差,因为它取决于你如何看待它,但我认为你在x-y轴看起来是平的,而z轴是离开你的“指向”。

所以,你的情况: (-3+a,-2,10; -3+a, 2, 10; 3+a,-2, 10; 3+a, 2, 10)其中a是你要多少,如果你犯了一个负将其移动到正确的

,它会向左移动(X轴)。

因为你的出发点是-3,你的终点是3,你的Y轴将在你的对象的中间。所以你的出发点应该是3,而终点9 te应该在对象的右边。 - > A = + 6,如果你想去左侧

:(起始点之前的对象) - (对象的宽度)=( - 3) - (6)= - 9 - >一个= -9

要旋转对象

关注此website它有一个版本简单和基本的解释。我觉得这是非常具有可读性

+0

所以,如果我想给它90度的移动,以什么样的价值会我给X的权利? – Skizit 2010-07-27 14:14:32

+0

对于右手坐标系,z通常会从屏幕出来,因此观察者正在向下看-Z。 – bshields 2010-07-27 14:17:48

+0

@bshields:非常真实,@Meowix:你不用移动度数的形状,你可以旋转它们。 如果要旋转,如果要旋转,围绕什么,你要旋转你应该使用正弦和余弦http://en.wikipedia.org/wiki/Trigonometric_functions – Nealv 2010-07-27 14:22:45

3

X轴定义左右尺寸,Y轴定义上下尺寸,左侧为负值,下侧为正值,右侧为正值。因此,在正x方向上对您的绘图进行偏移(即向您的方块中的所有x值添加一些值)以将其移至右侧。

3

我画了像这样的一张纸:

http://homepages.inf.ed.ac.uk/rbf/CVDICT/CVFIG5/img14.png

抽奖+和 - onthe轴的两端。帮助保持跟踪,同时打孔数量。

就你而言,它将是-Z离开你,或者“进入”屏幕。

+0

这是DirectX的坐标系(左手)。在OpenGL中(右手),当X指向右,Y指向上时,Z轴指向观察者。 – SigTerm 2010-07-27 14:35:57

+0

@SigTerm:没有“DirectX坐标系”DirectX和OpenGL都可以使用左手或右手。 – 2010-07-27 15:00:36

+0

“DirectX和OpenGL都可以使用左手或右手”这不完全正确。默认情况下,DirectX使用左手,OpenGL使用右手。有可能使API使用不同的系统,但它需要额外的步骤。通常 - 在投影矩阵中翻转z,并改变三角形的顶点顺序(cw vs ccw)。或者切换脸部剔除规则。 – SigTerm 2010-07-27 16:10:17

0

你的坐标是(x,y,z)。

您已经描述了通过改变z值来平移z平面中的平方。

向左或向右移动是x中的翻译 - 简单地偏移x值。

向上和向下移动是y中的平移 - 只是偏移y值。

1

那么,在一个三维直角坐标系,有三个垂直轴线Xÿž

路线像左,右,顶部或正面,虽然有总是主观的并且可以只在关系被解释为一个相机。具有这些坐标的所有操作(旋转,平移,矢量数学一般)为独立此视图。

现在,如果你定义一个摄像头,你也定义了方向。甲共同定义(如在使用的DirectX)是相机

  • 驻留在原点
  • 沿Z轴
  • 具有沿着Y轴的向上方向看起来

因此右/左通过正/负X坐标与Y或前/在Z轴方向向后定义,同为上/下。

但是,这从来都不是绝对的事情。给定另一台相机(例如旋转,移动),看起来都不一样。看看事物如何颠倒,看看它们是如何移动的。

image显示非常好这一切是如何取决于相机(为什么不能计算器处理.SVG图形?)

1

关于使用的坐标系:大多数教科书使用右手。一些输出者(DirectX,PBRT)使用左手操作。

在右手坐标系中,你的拇指是x。以下轴的顺序与其他手指的顺序相同(Y =索引,...)。

现在移动你的手,使X是对屏幕的右侧,Y高达,Z是对你。这将是OpenGL“看到”世界的方式。

这几乎是所有你需要知道