【问题标题】:java how to draw a G-clef and F-clef using points or curvesjava如何使用点或曲线绘制G-clef和F-clef
【发布时间】:2016-09-02 05:17:47
【问题描述】:

我正在使用 Graphics 2D 制作音乐应用程序,并且我已经成功地绘制了五线谱和音符。我现在正在尝试画一个 G 谱号

还有一个 F 谱号

如果有其他可能的方法,我将不胜感激。

注意:我环顾了两天,看到了类似的问题,但我还没有看到解决方案。

【问题讨论】:

  • 您是否考虑过只找到谱号的剪贴画并直接使用它?
  • 感谢您的想法,请告诉我该怎么做。我会很感激的。
  • 您是否尝试打印字符串 "\uD834\uDD1E" 和 "\uD834\uDD22" ? fileformat.info/info/unicode/char/1d122/index.htm
  • 啊,@David 的建议更好。
  • 它画了一个小方块。我的系统中是否缺少某些字体?

标签: java music-notation


【解决方案1】:

使用点和曲线并不是最好的方法。感谢@David,我发现 unicode 效果最好。要使用 unicode 打印字符串,

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;

public class UnicodeText {
public static void main(String[] args) {
JFrame f = new JFrame() {
  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

    Font font = new Font("Bravura", Font.PLAIN, 32);

    g2.setFont(font);
    g2.drawString("\uD834\uDD1E", 40, 80);// Gclef
    g2.drawString("\uD834\uDD22", 40, 80);// Fclef
  }
};
f.setSize(200,200);
f.setVisible(true);
}
}

下载“bravura”字体here,找到unicode标准图here

希望它对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2020-11-10
    相关资源
    最近更新 更多