Brythonでcanvasに描画をする場合、取得したcontextに直接描いていくほかに、Path2Dオブジェクトにサブパスを追加していってから最後に描くという方法がある(HTML5のcanvasを参照)。
BrythonにはPath2Dオブジェクトは実装されていないが、JavaScriptの組み込みクラスを扱う方法によって、Path2Dオブジェクトを使えるようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from browser import document from browser import window from javascript import JSConstructor canvas = document['cvs_main'] if hasattr(canvas, 'getContext'): context = canvas.getContext('2d') else: context = None Path2D = JSConstructor(window.Path2D) path = Path2D() path.moveTo(200, 100) path.lineTo(300, 200) path.lineTo(100, 200) path.closePath() context.stroke(path) |