NoteDrawer.ts 620 B

123456789101112131415161718192021222324252627
  1. /**
  2. * 音符绘制器
  3. *
  4. * @description 绘制简谱数字、高低音点、附点、升降号等
  5. */
  6. import { JianpuNote } from '../../models';
  7. export class NoteDrawer {
  8. private renderMode: 'canvas' | 'svg';
  9. constructor(renderMode: 'canvas' | 'svg' = 'svg') {
  10. this.renderMode = renderMode;
  11. }
  12. /**
  13. * 绘制单个音符
  14. */
  15. drawNote(note: JianpuNote): SVGGElement {
  16. console.log(`[NoteDrawer] 绘制音符 ${note.pitch}`);
  17. // TODO: 实现音符绘制逻辑
  18. const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
  19. g.id = `vf-${note.id}`;
  20. return g;
  21. }
  22. }