表題のとおり、以下の画像のような矢印を作りたいと考えております。
javascript
1var Allow = function() { 2 this.draw = function() { 3 ctx.beginPath(); 4 ctx.strokeStyle = 'gray'; 5 // 矢印のラインを描画 6 //矢印の中心 7 ctx.moveTo(200, 200); 8 ctx.lineTo(this.radius * Math.cos(this.angle), this.radius * Math.sin(this.angle)); 9 10 ctx.fillStyle = 'gray'; 11 ctx.fill(); 12 }; 13 this.move = function() { 14 this.x = mouseX - $('#mycanvas').offset().left; 15 this.y = mouseY - $('#mycanvas').offset().top; 16 this.radius = Math.sqrt(this.x * this.x + this.y * this.y); 17 this.angle = Math.acos(this.x / this.radius); 18 }; 19 }; 20 myAllow = new Allow(); 21 function clearStage() { 22 ctx.fillStyle = '#ffffff'; 23 ctx.fillRect(0, 0, canvas.width, canvas.height); 24 }; 25 function update() { 26 clearStage(); 27 myAllow.draw(); 28 myAllow.move(); 29 setTimeout(function() { 30 console.log(flag); 31 if(flag % 2 == 0){ 32 update(); 33 }; 34 }, 20); 35 }; 36 console.log(hoge); 37 update(); 38 canvas.addEventListener ('click', function() { 39 flag++; 40 update(); 41 });
尚、canvasのエリアは縦横に400pxずつです。
矢印の中心はctx.moveTo(200, 200);で真ん中に指定しています。
上記のようなコードでは、矢印の棒の先端をマウスカーソルで動くようになっています。
問題は矢印の先を中心座標(200px,200px)で外向きに書きたいです。
どのようなコードとなるか検討がつかず、ご教示いただければ幸いです。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/14 02:49
2020/02/14 03:26
2020/02/14 04:29