簡體   English   中英

如何在兩條線之間繪制陰影區域

[英]How to draw a shaded area between two lines

如何在特定顏色的兩條線之間繪制陰影區域?

我正在使用Graphics2D.drawLine()繪制線條,並在線條之間具有半透明的陰影色區域。

這應該可以通過GradientPaint

這樣的事情:

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;

    Polygon p = new Polygon();
    p.addPoint(0,100);
    p.addPoint(100,100);
    p.addPoint(100,200);
    p.addPoint(100,200);

    GradientPaint gp = new GradientPaint(0.0f, 100.0f, Color.red,
             200.0f, 200.0f, Color.green, true);
    g2.setPaint(gp);
    g2.fill(p);
}

為了透明起見,您需要包括Alpha通道的設置。

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
          alpha));

有關工作示例,請參見本文

您正在思考錯誤的方法。 如果要繪制區域,請這樣做。 然后在區域頂部繪制線條。 可以使用Graphics.drawPolygon渲染區域。

有兩種方法可以提高透明度。 最簡單的方法(對於純色)是使用alpha(新Color(0xAARRGGBB,true)創建Color實例並將其用於繪圖。另一種方法是將Graphics2D.setComposite與AlphaComposite實例一起使用(該方法也會影響不使用顏色的元素的繪制,例如drawImage)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM