javascriptでcanvasのアニメーションで伸びる糸をクリックした座標へもっていくようにしたいのですがうまくいきません。
それぞれcx,cyと言う座標からe.clientX/Yで取得した座標ikex,ikeyまで放物線もしくは直線で伸ばしたいです。
以下コードでcy/ikey, cx/ikexとそれぞれ開始座標を目標の座標で割っておりこれだと
きれいに目標へと向かう曲線もありますが、x座標cx、またはy座標cyが大きく目標ikex,ikeyからそれてしまいます。いろいろ試した中でこれが一番理想に近いのですが、ここから先に進むことができません。きれいに目標へ向かう方法はないでしょうか?
宜しくおお願いします。
Javascript
1function saoaction(){ 2 3ike.addEventListener('click',function(e) { 4function tobiito() { 5 6 7 8 9 var cx=656,cy=461, 10 cx2=824,cy2=376; 11 12 13 var ikex = e.clientX; 14 var ikey = e.clientY; 15 var linectx = line.getContext('2d'); 16 linectx.lineWidth = '0.1'; 17 18 line.width = 1000; 19 line.height = 500; 20 21 var acx = 0, acy = 0, 22 acx2 = 0,acy2 = 0; 23 var a,b; 24 25 console.log(ikex); 26 console.log(ikey); 27 28 29 30 31if(ikex <= cx ){ 32var starttimer = setInterval(function() { 33linectx.beginPath(); 34const saosaki1 = linectx.moveTo(cx,cy); 35 36a+=1; 37 38acy = cy/ikey; 39 40acx = cx/ikex; 41 42 43 44linectx.lineTo(cx-=acx,cy-=acy); 45 46 47linectx.stroke(); 48 ike.appendChild(line); 49 50 51 52if(cx == ikex && cy == ikey){ 53 clearInterval(starttimer); 54 console.log('止まったよ'); 55} 56 57}, 10); 58 59} 60
あなたの回答
tips
プレビュー