假设在环境中我无法轻松访问trig函数,或者我只是因为某些原因不想使用它们。是否有任何可能的方法将矢量旋转一个单位角度而没有cos / sin?
答案 0 :(得分:2)
您可以预先计算旋转矩阵。但这听起来并不像你想要的那样。
答案 1 :(得分:0)
这样做的唯一简便方法是实现自己的三角函数。为什么不能使用三角函数?
答案 2 :(得分:0)
我迟到了 10 年,但如果其他人也遇到类似的问题,请让我分享我的小技巧 适用于最多 16 个角度的小半径。你不能用它来做复杂的旋转, 但它适用于 Pong、Breakout、Asteroids 等游戏。它只是整数,没有三角函数。
技巧很简单。你需要做的就是把圆分成4个象限,然后理解 那(每个象限的标志都是特定的)
假设我在右上象限。如果我移动 ...1 像素右侧是 0 度角。 ...1 像素,它是一个 90 度角 ...右侧 1 个像素和向上 1 个像素是 45 度 ...右侧 2 个像素,左侧 1 个像素,为 22.5 度 ...右侧 1 个像素和向上 2 个像素为 67.5 度
这就给你了。通过更改每个象限的符号,您可以生成简单的路径 在这些角度中的每一个。这些路径在 2 个像素后重复,所以如果你正在计算 从当前位置的下一个位置,它是线性运动(例如乒乓球), 那么您可以使用此逻辑轻松计算下一个位置。