【问题标题】:How can I render an arc with a 3 color gradient?如何使用 3 色渐变渲染弧线?
【发布时间】:2017-09-20 21:53:39
【问题描述】:

我正在尝试渲染一个弧线,该弧线从绿色开始,过渡到黄色,最后变为红色。现在它只是使用标准的 GradientPaint 方法从绿色过渡到红色。有没有办法用 3 种颜色做到这一点?

public void paintComponent(Graphics gr) {
    super.paintComponent(gr);
    Graphics2D g = (Graphics2D) gr;

    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    BasicStroke wideStroke = new BasicStroke(24.0f);
    g.setStroke(wideStroke);

    g.setPaint(new GradientPaint(new Point(10, 140), Color.GREEN, new Point(100, 10), Color.RED));  

    g.draw(new Arc2D.Double(25, 25, 200, 200, 180, -90, Arc2D.OPEN));   
}

【问题讨论】:

标签: java swing gradient paintcomponent


【解决方案1】:

感谢疯狂程序员

    public void paintComponent(Graphics gr) {
    super.paintComponent(gr);
    Graphics2D g = (Graphics2D) gr;

    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    BasicStroke wideStroke = new BasicStroke(24.0f);
    g.setStroke(wideStroke);

    LinearGradientPaint lgp = new LinearGradientPaint(
            new Point2D.Float(0, 160),
            new Point2D.Float(160, 0),
            new float[] {0f, 0.5f, 1f},
            new Color[] {Color.green, Color.yellow, Color.red}
            );

    g.setPaint(lgp);

    g.draw(new Arc2D.Double(25, 25, 200, 200, 180, -90, Arc2D.OPEN));
}

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2014-11-13
    • 2014-10-14
    相关资源
    最近更新 更多