如何反映Y轴上的角度

Mis*_*erd 5 math

我不是数学家,但我不知何故将游戏开发作为一种爱好.

从来没有研究过基本数学以外的任何东西,我很难弄清楚如何反转某些东西的角度,面向相反的方向,沿着X轴和横跨Y轴.

一张图片说的超过1000个单词(特别是没有受过教育的单词):http: //img156.imageshack.us/i/wihwin.png/

我基本上想要扭转粘附在机器人上的大炮物体的方向.当机器人从面向右转向左侧时,我(180 - angle)按照每个人的建议做了,但它确实颠倒了角度,使得大炮在瞄准时向上瞄准.所以,我需要做点别的事,但它逃避了我的知识.

换句话说,我在2D工作,所以我想要一个面朝右的角度.我的角度定义如下:

  • 0"完全在右边"
  • 180"离开"
  • 90"向上"和
  • 270"向下"

我希望瞄准角度为91的东西在颠倒时变为89.没有Z轴存在.任何人都会非常友好地帮助我吗?

Tro*_*our 6

在回答你的编辑你想要的是

-( x - 90 ) + 90
Run Code Online (Sandbox Code Playgroud)

180 - x
Run Code Online (Sandbox Code Playgroud)

当然,如果您使用的是标准的C三角函数,那么您可能会使用弧度而不是度数

M_PI - x
Run Code Online (Sandbox Code Playgroud)

基本上这分为三个步骤

  1. (x - 90)调整角度,使零点为90度.
  2. 否定它然后翻转变换的角度.
  3. 重新添加90以转换回原始角度范围.

编辑:刚刚注意到这与@Paul R相同,但您似乎认为这不正确?


Lee*_*des 3

如果不了解游戏中大炮的定义方式,这个问题很难回答,但我会尝试给出一些指导。

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

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

如果角度为 0 时,大炮指向右侧,角度为 45 指向右下角,则向上的大炮角度为 180 到 360 度,其中 270 度为垂直向上。因此,要反转角度,您可以使用(540 角)。

如果角度为 0 时,大炮指向右侧,但角度为 45 指向右上角,则大炮角度为 0 到 180。要反转角度,请使用 (180-angle)。

我希望这有帮助!李。