【发布时间】:2015-12-17 14:18:42
【问题描述】:
我希望有两条线可以形成 90 度角。我想让它使垂直线向下移动到水平线。角度是支点。所以我猜角度应该减小到0。 45 是一半。
- 动画期间线条的长度应相同。
- 动画应该是循环的。它应该从 90 度角到 0 度角并返回。
我想解决这个问题的一种方法是更改context.moveTo(50,50) 参数编号,以便在动画期间开始在新坐标处绘制线条。我在保持线条与水平线大小相同时遇到问题。
我想的另一种方法是更改Math.atan2。我不知道它是否从 90 度开始然后转到 0 并反映在 moveto 参数上,我不知道如何将它们组合在一起。
我更喜欢使用三角函数的解决方案,因为这是我想要擅长的
如果您可以附加斜边以获得额外帮助,那么我可以看到角度会改变三角形的大小,这将是很棒的。那是我原来的问题。谢谢
window.onload = function(){
var canvas =document.getElementById("canvas");
var context = canvas.getContext("2d");
var length = 50
context.beginPath();
context.moveTo(50,50)
context.lineTo(50,200);
context.stroke();
context.closePath();
context.beginPath();
context.moveTo(50, 200);
context.lineTo(200, 200)
context.stroke();
context.closePath();
var p1 = {
x: 50,
y : 50
}
var p2 = {
x: 50,
y: 200
}
var angleDeg = Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
console.log(angleDeg)
}
<canvas id="canvas" width="400" height="400"></canvas>
【问题讨论】:
标签: javascript math trigonometry angle