math - 给定一个角度,我如何使用 x 和 y 找到行进线的逻辑? (数学难题)

标签 math html canvas

我正在用 HTML5 canvas 制作一个简单的游戏,它涉及驾驶一辆小车。

向上箭头移动汽车,左右箭头引导汽车。

我已经对旋转进行了排序,但现在它需要在按住向上键时根据它所处的角度移动它的 x 和 y 位置。

例子:

角度为0,向上箭头只会影响y坐标。

角度为 45,向上箭头将以相同的速度影响 x 和 y 坐标。

如果角度是 32,我可以使用什么逻辑?

最佳答案

你可以试试这样的东西

   velY = Math.cos(angle * Math.PI / 180) * thrust;
   velX = Math.sin(angle * Math.PI / 180) * thrust;

    x += velX;
    y -= velY;

简单的例子,角度在每个循环中递增。

http://jsfiddle.net/j5U5h/5/

角度 0 向上,就像您在最初的问题中一样。

这里是修改后的 jsfiddle,因此 0 的角度将您移到右边。

http://jsfiddle.net/j5U5h/7/

 velX = Math.cos(angle * Math.PI / 180) * thrust;
 velY = Math.sin(angle * Math.PI / 180) * thrust;

 x += velX;
 y += velY;

要使 0 最初向右移动只需更改为此,

velX = -Math.cos(angle * Math.PI / 180) * thrust;

关于math - 给定一个角度,我如何使用 x 和 y 找到行进线的逻辑? (数学难题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5006749/

相关文章:

c++ - 给定同一个 Direct2D 工厂的多个渲染目标

html - 你能用 CSS 做数据绑定(bind)吗?

javascript - 范围 slider 控制的 Canvas 需要更好的图片加载和预览图像(?)

math - Gnuplot 中的高斯峰值不重叠

计算 float 的位数

javascript - 我如何使用 javascript 变量在网站中输入文本?

javascript - div从右滑动到全宽

node.js - 在 EC2 上安装 node-canvas - fontconfig.h 构建错误

java - 使用随机运算符

algorithm - 如何查找矩阵中唯一直线的数量