我将有3个输入和一个按钮。单击此按钮时,应绘制一个三角形,其中3条边的长度等于输入中的值。怎么整理呢?我发现了这个:
context.beginPath();
context.moveTo(30, 20);
context.lineTo(some_value1,some_value2);
context.lineTo(some_value3,some_value4);
context.closePath();
但这种方法适合双面绘画。 我希望现在我已经详细描述了这个问题。提前谢谢。
答案 0 :(得分:3)
您需要先计算每个点的笛卡尔坐标。您可以将第一个点设置为[0, 0]
,第二个点设置为[x1, 0]
,其中x1
是第一行的长度。需要计算第三点,看看如何做到这一点:
// hardcoded, but you would get those from user
var AB = 40;
var BC = 50;
var AC = 30;
var A = [0, 0]; // starting coordinates
var B = [0, AB];
var C = [];
// calculate third point
C[1] = (AB * AB + AC * AC - BC * BC) / (2 * AB);
C[0] = Math.sqrt(AC * AC - C[1] * C[1]);
console.log(A, B, C);
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(A[0], A[1]);
ctx.lineTo(B[0], B[1]);
ctx.lineTo(C[0], C[1]);
ctx.fill();

<canvas id="canvas" width="500" height="500"></canvas>
&#13;