[Javascript] ジグザク線(zig zag line)、波線を描画する
ジグザグ線(波線)を描画する
開始点と終了点を指定し、ジグザグ線を描画する方法。
Javascriptだけでなく他の言語でも応用できる。
<!DOCTYPE HTML> <html> <head> <script> class Point{ constructor(x,y){ this.x = x; this.y = y; } } var startP = new Point(50,60); var endP = new Point(310,350); window.onload = function(){ var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); var zigzagCnt = 10; var rangeX = (endP.x - startP.x) / zigzagCnt; var rangeY = (endP.y - startP.y) / zigzagCnt; ctx.lineWidth = 3; ctx.strokeStyle = "#FF0000"; ctx.beginPath(); var x = startP.x; var y = startP.y; ctx.moveTo(x,y); var lx, ly, mx, my; // ジグザグ線描画処理 for (var i = 0; i < zigzagCnt; i++) { lx = x; ly = y; x += rangeX; y += rangeY; mx = (lx + x) / 2; my = (ly + y) / 2; // ジグザグの幅を調整 scale = Math.sqrt(0.75); mx += scale * (y - ly); my -= scale * (x - lx); ctx.lineTo(mx,my); ctx.lineTo(x,y); } ctx.stroke(); ctx.strokeStyle = "#00FF00"; ctx.beginPath(); ctx.moveTo(startP.x,startP.y); ctx.lineTo(endP.x,endP.y); ctx.stroke(); }; </script> </head> <body> <canvas id="myCanvas" width="400" height="400" style="border:1px solid black;"> </canvas> </body> </html>
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
- 作者: Ethan Brown,武舎広幸,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/01/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る