2017-05-30 13 views
0

HTML5 Canvasエレメントに基本的なベクターシェイプを描画したいと考えています。HTML5キャンバス上のユーザー編集可能なベクターシェイプ

ユーザが直接これらのいずれかを描画するために、マウスを使用することができるはずです。

  • スクエア

  • サークル

  • ポリゴン

キャンバスに - 後でイメージのホットスポットに使用されます。

キャンバス内を直接クリックすることで、これらのベクターシェイプを描画できることが重要です。

これに役立つライブラリがありますか?

ライブラリーがない場合、私はJavaScriptの優れた知識を持つ経験豊富なWebデザイナーだと考えてください。しかし、プログラミングベクトルの経験はほとんどありません。これを解決するために私が一番いい場所はどこですか?私は必要なものを作ることができますか? (getCoordinates) のmouseup(getCoordinates)

これらの間の距離を計算し

マウスダウン:

+1

http://fabricjs.com/ – Phil

+0

[私はアプリを描く円を築いてきました。](https://でWWW .w3schools.com/code/tryit.asp?filename = FG4J46SUXVGF) –

+1

@Phil最後にfabricjsを使用しました。これを答えとして追加してください。 – Jimmery

答えて

1

あなたは、あなたが使用する必要があり、個々の円のために...あなたの最初の実験のために

をこの小さなスニペットを使用することができます2つのポイント、それは半径です。

Square、Circle、Polygonのhtmlオプションリストを作成します。

<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Canvas</title> 
 
    <style> 
 
    canvas{border:1px solid #ccc;} 
 
    </style> 
 
</head> 
 
<body> 
 
    <canvas id="myCanvas" width="200" height="200"></canvas> 
 

 
    <script> 
 
    var canvas = document.getElementById('myCanvas'); 
 
    var context = canvas.getContext('2d'); 
 
    function getMousePos(canvas, evt) { 
 
     var rect = canvas.getBoundingClientRect(); 
 
     return { 
 
     x: evt.clientX - rect.left, 
 
     y: evt.clientY - rect.top 
 
     }; 
 
    } 
 
    canvas.addEventListener('click', function(evt) { 
 
      var mousePos = getMousePos(canvas, evt); 
 
      context.beginPath(); 
 
      context.arc(mousePos.x,mousePos.y,5,0,2*Math.PI); 
 
      context.stroke(); 
 
      }, false); 
 
    </script> 
 
</body> 
 
</html>

関連する問題