「VexFlow 入門その1」の版間の差分
(→概要) |
(→概要) |
||
60行目: | 60行目: | ||
.lineTo(1, 199) | .lineTo(1, 199) | ||
.closePath(); | .closePath(); | ||
.fill({ fill: RGB(0, 255, 0, 0.5) }); | |||
context.beginPath() // start recording our pen's moves. | context.beginPath() // start recording our pen's moves. | ||
.moveTo(0, 0) | .moveTo(0, 0) | ||
66行目: | 66行目: | ||
.lineTo(10, 40) | .lineTo(10, 40) | ||
.closePath() | .closePath() | ||
.fill({ fill: ' | .fill({ fill: 'red' }); | ||
2022年12月12日 (月) 22:18時点における版
概要
ひとつひとつの構成要素を知る前に入門用の楽譜をいくつか描いて全貌をつかもうとするのが最初です。五線譜を描いてみます。
スクリプトは以下のとおり。
<div id="output"></div>
<script src="https://cdn.jsdelivr.net/npm/vexflow@4.1.0/build/cjs/vexflow.js"></script>
<script>
const {
Renderer,
Stave
} = Vex.Flow;
// Create an SVG renderer and attach it to the DIV element named "boo".
const div = document.getElementById('output');
const renderer = new Renderer(div, Renderer.Backends.SVG);
// Configure the rendering context.
renderer.resize(500, 200);
const context = renderer.getContext();
// Create a stave of width 400 at position 10, 40 on the canvas.
const stave = new Stave(10, 40, 400);
// Add a clef and time signature.
stave.addClef('treble').addTimeSignature('4/4');
// Connect it to the rendering context and draw!
stave.setContext(context).draw();
</script>
最初に、div に 出力するタグを取得する。ここでは <div id="output"></div> のタグ全体要素を取得している。次にnew Renderer(div, Renderer.Backends.SVG); で