Hen*_*ryz 3 javascript math html5 canvas
JavaScript坐标Sin,Cos还是Tan?我正在尝试在Web浏览器中学习一些用于游戏开发的基本三角函数.我知道soh cah toa rule等我知道我们也在-1和1之间工作.
我很困惑,我需要根据角度分别计算x和y坐标.
这是我必须在x和y中计算出我的角度方向,这确实有效(感谢Loktar).
velY = -Math.cos(angle * Math.PI / 180) * thrust;
velX = Math.sin(angle * Math.PI / 180) * thrust;
Run Code Online (Sandbox Code Playgroud)
我从中理解的是,我根据一个小公式找到x和y的cos,将我的角度变量转换为弧度.
但是,为什么cos需要用于x和sin用于y?晒黑在哪里?这是与圆的4个象限有关吗?
当我只给出一个角度时,我怎么知道何时使用sin cos或tan,我需要找出使用x,y的角度所在的圆圈的位置?
任何简单的图表或解释都会非常有用!
谢谢
Jim*_*mmy 13
基本定义(来自你的三角学书):
cos ? = x/h, sin ? = y/h
Run Code Online (Sandbox Code Playgroud)
用于描述x,y和H的无偿ASCII艺术:
_
/\ assume we're going this way
/
/|
/ |
h / |
/ | Y
/ |
/? |
+-------
X
Run Code Online (Sandbox Code Playgroud)
矢量可以分成两个矢量的和.(你可以在图中想到这一点,因为东北方向的H米是向东走向X米,向北是Y米)
在这种情况下,H对应于您当前的推力.你想找到那个推力的X和Y分量.
因为cosΘ= X/H(余弦的基本定义),我们可以说(通过简单代数)
X = H * cos ?
Run Code Online (Sandbox Code Playgroud)
然而,Θ被假定为弧度量度.如果您正在使用度数,则必须乘以Math.PI/180才能获得正确的值.因此,你有
? = angle * Math.PI / 180
Run Code Online (Sandbox Code Playgroud)
我们非常接近!现在,我们经典的余弦定义公式(当翻译成我们的术语时)看起来像
cos (angle * Math.PI / 180) = X / H
Run Code Online (Sandbox Code Playgroud)
H是我们的推力矢量,X只是我们推力矢量的水平部分.
"现在,等一下,"你说."为什么我用余弦来计算垂直速度?你的轴似乎向我翻转." 没错.这是标准的几何定向 - 角度是从-------->直接向右逆时针旋转测量的.您的轴被翻转是因为您将角度存储为"时钟角度",即0度为12:00.为了使用标准几何方程,我们必须镜像整个宇宙,以便翻转X和Y轴.幸运的是,这样做的数学方法就是在方程式中切换所有的X和Y.
standard 'math' coordinate system
_
/\
/
/|
/ | angles increase counterclockwise
h / |
/ | Y
/ |
/? |
+----------- (zero degrees starts here)
(0,0) X
your coordinate system
(zero degrees starts here)
^
| angles increase clockwise
| /
| /
|?/
|/
+
Run Code Online (Sandbox Code Playgroud)
最后,为什么余弦中有负数?因为这里是我们数学中的笛卡尔系统
^ y-axis
|
|
+----> x-axis
Run Code Online (Sandbox Code Playgroud)
这是你要绘制的笛卡尔系统(可能是画布)
+------> x-axis
|
|
v y-axis
Run Code Online (Sandbox Code Playgroud)
由于y轴面向另一个方向,因此将所有y值乘以负数1以获得正确的方向
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |