所以,我需要实现的基本思路是有一个从0到360度的简单圆。在圆内旋转的两个箭头
在那个圆圈内有两个箭头。我需要他们在圈内旋转。
一个箭头需要每度旋转度数,直到达到指定的角度。另一个需要直接去那个角度。
所以你的箭头都会从0度开始,如果你指定你想要去100度,一个箭头会立即跳跃并指向100度,而另一个箭头将逐渐变为100度。
编辑:
对不起我的缺乏与计算器技能的(我才意识到我从未纳入一个问题到我的问题...)。所以我设法通过另一个关于stackoverflow的问题在canvas中得到简单的箭头,但是当我开始考虑旋转箭头时,我只是迷失在代码中。
我想我的问题是这样的:如何根据用户选择的度数值将旋转应用于我的两个箭头?
所以这里就是我设法让我的箭有:
<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>
的箭头都很好,但让他们中的一个旋转而另一个跳转到所需的程度值是什么,我觉得很难。我找不到任何关于如何根据用户给定的度数值移动它们的示例或想法。
这很有趣,但什么是你的问题? – STLDeveloper
这是个好主意。那它呢? – 2013-07-08 03:14:25
我认为你应该编辑你的问题,使其更清晰,否则你会得到一些“超级残忍”的老年人在这里投票:) –