【问题标题】:Python (pygame) Sin, Cos and TanPython (pygame) Sin、Cos 和 Tan
【发布时间】:2013-03-02 15:12:24
【问题描述】:

我注意到 Python 中有一个 sincostan 函数。

所以,我想我会在我的游戏中使用这些来瞄准,不幸的是,sin,cos,tan,asin,acosatan 的文字描述非常混乱。

我知道如何执行学校的所有sincostan 规则,我只需将它们应用于代码即可。所以,这就是我需要做的,我只需要知道我必须使用哪一个:

我有

  1. 角度
  2. 斜边
    (我只是保持我希望对象在再次 blit 之前行进多远的值)

从角度来看,我想解决相反的和相邻的。
斜边将是sin/asincos/acos。哪一个?我不知道。

如何输入我的数字?我是只做aim = cos(angle,hyp) 还是必须应用其他一些计算?

【问题讨论】:

  • 应该混淆什么?对 math.* 方法的使用进行了仔细且广泛的记录?!你做过任何研究吗?
  • “很遗憾,sin、cos、tan、asin、acos 和 atan 的单词描述非常混乱”你看过我的帖子吗?我想要更多的描述,我只是添加了我的示例以确保我得到正确的结果。现在我不能在下面给出这些好的答案,因为你毁了我的名声。
  • @PrincessOftheUniverse 的意思可能是这些函数没有在 Python 中广泛记录,因为它们是众所周知的数学函数,并且在许多地方(例如 the Wikipedia)都有详尽的解释。 Python 文档没有什么可补充的。
  • 如果您不知道什么是罪、cos 等,请在学校复读您的课程。我们不是来教你初等几何的——尤其是当你没有动力研究自己的时候。我因为懒惰而投反对票

标签: python pygame trigonometry


【解决方案1】:

公式是:

adjacent = hypothenuse * math.cos(angle)
opposite = hypothenuse * math.sin(angle)

angle 以弧度表示。

【讨论】:

  • 是的,这正是我所要求的。谢谢!
【解决方案2】:

您的措辞有点令人困惑...但我的理解是您在 2D 空间中有一个点,并且您想将其推进特定距离(斜边),瞄准地平线上方的指定角度。如果是这样:

newX = oldX + dist * cos(angle)
newY = oldY + dist * sin(angle)

假设angle 以弧度为单位,Y 轴向上为正,角度为 0,指向右侧,PI/2 指向顶部。如果不是这种情况,您可能需要稍微摆动一下标志。

【讨论】:

  • 是的,谢谢,这帮了很多忙。对不起,我不太擅长通过打字来解释事情。 :)。我会支持你,但有人删除了我的帖子,所以我失去了声誉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2012-03-31
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多