2010-06-15 135 views
5

我不是数学家,但我以某种方式进入了游戏开发中,成为一种爱好。如何反映Y轴上的角度

从来没有研究过任何超出基本数学的东西,我很难找出如何在Y轴上沿着X轴&反转一些东西的角度,面向相反的方向。

一个图像说,超过1000个字虽然(特别没有受过教育的字): http://img156.imageshack.us/i/wihwin.png/

我基本上要反转附着于机器人大炮的对象的方向。当机器人从右转向左转时,我按照每个人的意见做了(180 - angle),但它实际上颠倒了角度,使得大炮在瞄准时瞄准目标。所以,我需要做其他的事情,但它逃避了我的知识。换句话说,我在2D中工作,所以我想要一个面向右侧的角度离开。我的角度定义:

  • 0是 “完全的权利”
  • 180 “左”
  • 90 “向上” 和
  • 270 “向下”

我想要的东西这是目标在一个角度91变成89时反转。没有Z轴存在。任何人都会很乐意帮助我呢?

+0

你是否在右轴逆转角度?听起来你正在做z = 180-z而不是x = 180-x。如果不是,请尝试进一步解释问题所在。 – 2010-06-15 10:58:43

+0

那么大炮的角度与机器人的坐标系统还是无关的?此外,请务必检查角度是以度数还是弧度测量 – James 2010-06-15 11:01:43

+0

在处理此问题之前,您确实需要确定您的坐标系。 – Pierreten 2010-06-15 21:13:51

回答

2

如果不了解游戏中如何定义大炮的更多信息,这很难回答,但我会尝试给出一些指示。

听起来好像你的大炮是从侧面看的,而且你想让它从右向左转,但是让大炮保持朝上。计算取决于0的方向,以及角度是顺时针还是逆时针旋转。

如果角度0使大炮指向正上方,则角度从直向上测量,顺时针测量。因此,反转角度将是 - 角度。如果负角度不起作用,则使用(360度角)。

如果角度为0,炮口指向右侧,角度为45点,则面朝上的炮塔角度为180°至360°,270°向上。因此,要扭转一个角度,你会使用(540角)。

如果角度0的大炮指向右侧,但45度指向右上角,则炮塔角度为0至180.要反转角度,请使用(180度角)。

我希望有帮助!李。

+0

“-angle”工作!至少在渲染方面。我需要检查引擎是否将对象视为正确的方向。 虽然很奇怪,但我发誓,用角度0推动物体使其向右而不是向上移动。我会进一步尝试,谢谢! – MissHalberd 2010-06-15 11:30:57

1

这取决于你如何定义你的角度。如果你相对于X轴定义它,那么角度确实是(180 - alpha)。

+0

是的,但与我添加的图像不同,我将红线插入下象限,而不是...... – MissHalberd 2010-06-15 10:57:46

+0

@MissHalberd:这可能是因为您没有实际定义相对于X轴的角度,如图中所示。我希望你可以将它定义为相对于Y轴? – 2010-06-15 11:19:05

1

看着你的图表,你标记的角度是相同的 - 你只是改变了他们的起点。如果你真的打算来衡量的角度,使0度直线上升,那么它的360 - x

因此,如果您瞅准了45度,当你扭转这种局面是360-45 = 315度

+0

噢我的,我打算让这个中心变得很常见,我应该在他们身上绘制箭头,但它看起来像是“速度”,而不是...... – MissHalberd 2010-06-15 11:04:07

0

哪里你零度角度点,90度点在哪里?

如果零直线上升,那么你可以只做-1 * angle

6

在回答您的编辑你想要什么,然后是

-(x - 90) + 90 

180 - x 

当然,你可能会以弧度的工作,而不是学位,如果你使用的是标准的C三角函数所以这实际上是

M_PI - x 

基本上这分成三个步骤

  1. (X - 90)调整你的角度,使得零点是在90度。
  2. 否定,然后翻转变形的角度。
  3. 将90加回原来的角度范围。

编辑:刚才注意到这跟@Paul R是一样的,但是你似乎并不认为这是正确的?