【发布时间】:2020-08-17 21:00:25
【问题描述】:
有时你希望你能回到过去告诉年轻的自己,数学确实很重要!但我怀疑我当时会听。在这个特定的示例中,我最近一直在使用 HTML5 画布以动画的目的使用三角函数。
这是一个超级简单的动画:它以圆形方式围绕画布中心定位弧线。 X 和 Y 位置是根据基本三角函数 sinus 和 cosinus 计算的。 “SohCahToa”。我想我开始明白了。但不知何故,我无法弄清楚如何在其中一个三角形边的中间画一个正方形。
let radius = 200;
let angle = 0;
x = centerX + Math.cos(angle) * radius;
ctx.beginPath();
ctx.fillRect(x/2, centerY, 20, 20);
https://codepen.io/melvinidema/pen/wvKPepa?editors=1010
所以弧线是通过将画布的中心与 返工公式:(co)sinus - 对于 X = Cos,对于 Y = Sin) 角度乘以圆的半径。
如果我们只取X位置(红线),想画出圆弧位置的正方形一半。 (所以在红线中间)我们应该能够将新计算的 X 位置除以 2 对吗?但如果我这样做,正方形会神奇地完全画在圆圈之外。
发生了什么事?为什么它会这样?在整个动画过程中,我应该使用什么计算来让正方形定位在红线的中间?
提前致谢!
【问题讨论】:
标签: javascript html math canvas trigonometry