【发布时间】:2013-07-05 07:35:52
【问题描述】:
所以,我需要实现的基本理念是创建一个从 0 度到 360 度的简单圆。
圆圈内有两个箭头。我需要它们在圆圈内旋转。
一个箭头需要每度旋转一次,直到达到指定的角度。另一个需要直接进入那个角度。
因此,您的箭头都将从 0 度开始,如果您指定要转到 100 度,一个箭头会立即跳跃并指向 100 度,而另一个箭头会逐渐指向 100 度。
编辑:
很抱歉我缺乏使用 stackoverflow 的技能(我刚刚意识到我从来没有在我的问题中包含一个问题......)。所以我早些时候通过stackoverflow上的另一个问题设法在画布中获得了简单的箭头,但是当我开始研究实际旋转箭头时,我只是迷失在代码中。
我想我的问题是:如何根据用户选择的度数值对我的两个箭头应用旋转?
这就是我设法制作的箭头:
<html>
<head>
</head>
<body>
<canvas id="c" width="500" height="500"></canvas>
<script langauage="javascript">
<!--
ctx = document.getElementById("c").getContext("2d");
ctx.beginPath();
canvas_arrow(ctx,50,50,100,50);
canvas_arrow(ctx,50,50,10,30);
ctx.stroke();
function canvas_arrow(context, fromx, fromy, tox, toy){
var headlen = 10; // length of head in pixels
var dx = tox-fromx;
var dy = toy-fromy;
var angle = Math.atan2(dy,dx);
context.moveTo(fromx, fromy);
context.lineTo(tox, toy);
context.lineTo(tox-headlen*Math.cos(angle-Math.PI/6),toy-headlen*Math.sin(angle-Math.PI/6));
context.moveTo(tox, toy);
context.lineTo(tox-headlen*Math.cos(angle+Math.PI/6),toy-headlen*Math.sin(angle+Math.PI/6));
}
-->
</script>
</body>
</head>
箭头很好,但是让其中一个旋转而另一个跳到所需的度数是我觉得很难的事情。我找不到任何关于如何根据用户给出的度数使它们移动的示例或想法。
【问题讨论】:
-
这很有趣,但你的问题是什么?
-
这是个好主意。怎么样?
-
我认为您应该编辑您的问题并使其更加明确,否则您将在这里被一些“超级残忍”的前辈投票否决:)
-
@DoanCuong 当你有
1总分时,投反对票还不错:) -
我只是注意到并完全同意:)
标签: javascript jquery html canvas rotation