我需要帮助创建一个函数来创建x数量的线条,线条两端都有圆圈,使用参数来定义线条的旋转Angular 、宽度、高度和颜色,并填充线条之间的空间,其特点是使手臂和肩膀的旋转Angular 达到最大和最小。
这是我需要做的一个示例图像,人物模型的图像在png中很好,我只需要创建动态线。
这是我目前掌握的代码:
function drawLine(deg,width,height,canvasId,color){
const canvas = document.getElementById(canvasId);
const ctx = canvas.getContext('2d');
ctx.rotate(deg);
ctx.fillStyle = color;
ctx.fillRect(0, 0, width, height);
ctx.setTransform(1, 0, 0, 1, 0, 0);
}
drawLine(0,200,3,'canvas','red')
drawLine(120,200,3,'canvas1','blue')
canvas{
position: absolute;
}
<canvas id="canvas"></canvas>
<canvas id="canvas1"></canvas>
非常感谢
1条答案
按热度按时间lmvvr0a81#
根据这张图片,我假设180度是0的参考点。从那里出来的任何东西都是我们开始计算度的地方。如果是这种情况,您需要运行一个函数,计算180度的实线与该点的其他两条线之间的Angular 。
你总共需要四分。从所有参照的起点(本例中为点B)开始,将使用另一个点(点D)将Angular 参照设置为0度。我们将从这条线测量接下来的两个Angular 。
pointa和pointc可以根据需要进行调整,然后我们计算pointd/pointb向量的Angular 。我们可以使用
Math.atan2
要计算ba和bc的Angular ,请从bd移开。在这段代码中,我更改了行的颜色,以便更容易看到是什么。你也不需要画红线。这是静态的,因此需要创建限制和动态方法来更改Angular 。
更改pointa和pointc的x值以更改最小值和最大值。请记住,我必须为您设置限制才能切换它们。