AngleGradientPainter in Java?

daywalkertp

Erfahrenes Mitglied
Hallo Jungs und Mädels,

gibt es eine Möglichkeit ein Winkelverlauf, wie es ihn beispielsweise bei Adobe Photoshop gibt, mit den herkömmlichen Java Graphics Libraries zu zeichnen?

Beispiel von Adobe Photoshop:

gradient_type_sample.jpg
 
Sorry, dachte, Dir wär mit einem anderen Gradient vielleicht auch geholfen. Meines Wissens gibts es einen solchen AngleGradient nicht, eventuell könntest Du aber einen selbst zeichnen. Ein Kreis mit dieser Füllung wär z.B. kein Problem.
 
Schade, habe ich mir schon in etwa gedacht das so ein Verlauf nicht unterstützt wird.

Selber zeichnen würde schon gehen, aber von der Performance wäre das glaube ich nicht so schnell. Hättest du da vielleicht einen Beispielcode?
 
Könnte zum Beispiel so aussehen:

Java:
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class GradientTest extends JFrame {
    
    public GradientTest() {
        super("Gradient");
        getContentPane().add(new GradientPanel());
        setSize(300, 300);
        setVisible(true);
    }

    public static void main(String[] args) {
        new GradientTest();
    }
    
    class GradientPanel extends JPanel {
        
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            
            int cx = getWidth()/2;
            int cy = getHeight()/2;
            int radius = Math.min(getHeight(), getWidth())/2;
            
            float step = 1/360f;
            
            for (int i = 0; i < 360; i++) {
                g.setColor(new Color(1-i*step, i*step, 0f));  
                g.fillArc(cx - radius, cy - radius, radius*2, radius*2, i, 1);
            }            
        }        
    }    
}
 
Zurück