-2

私は次のコードを持っています:

<html>
 <head>


 </head>
 <body>
    <canvas id="canvasId" width="300" height="300"></canvas>
    <script>
function square() {

  var ctx = document.getElementById('canvasId').getContext('2d');
  var col= document.getElementById("clr");
      ctx.beginPath();
      ctx.rect(10, 10, 70, 70);
      ctx.fillStyle = 'yellow';
      ctx.fill();
      ctx.lineWidth = 2;
      ctx.strokeStyle = 'black';
      ctx.stroke();

}
function triangle () {

      var canvas = document.getElementById('canvasId');
      var context = canvas.getContext('2d');
        var col= document.getElementById("clr");
      context.beginPath();
      context.rect(85, 80, 200, 100);
      context.fillStyle = 'yellow';
      context.fill();
      context.lineWidth = 2;
      context.strokeStyle = 'black';
      context.stroke();

}

    </script>
  <p>Color <input type="color" id="clr" value="" /></p>
  <input type="button" value="square" onclick="square()" />
  <input type="button" value="triangle" onclick="triangle()" />
 </body>
</html>

この質問に問題があります。ユーザーが色を選択して正方形または三角形をクリックすると、選択した色で描画されます。何を変更して追加する必要がありますか?

4

2 に答える 2

2

2 番目の呼び出しを実際に三角形を描画するものに置き換える必要があり、その属性rect(...)にアクセスすることで、入力フィールドから簡単に色を取得できます。value

あなたのjsFiddleの私のフォークについては、ここをクリックしてください。

入力値にアクセスするための関連行は次のとおりです。

var col= document.getElementById("clr");
ctx.fillStyle = col.value;

次に、三角形の描画について (二等辺三角形を元の四角形に合わせたいと仮定します):

context.beginPath();
context.moveTo(85, 180);
context.lineTo(185, 80);
context.lineTo(285, 180);
context.closePath();
于 2013-01-19T21:32:22.353 に答える
1

http://jsfiddle.net/rcondori/3gmosgq7/に例があります

この例は台形用です...

function isInsideBox(x, y, x1, x2, y1, y2) {
var a = getValueA(x1, x2, y1, y2);
var b = getValueB(x1, y1, a);
var auxY = (a * x) + b;
if (auxY <= y) {
    return true;
} else {
    return false;
}
}
function getValueA(x1, x2, y1, y2) {
return ((y1 - y2) / (x1 - x2));
}
function getValueB(x1, y1, a) {
return (y1 - (a * x1));
}
于 2014-10-22T20:59:40.360 に答える