Graphics oder Graphics2D Zeichenfunktion gesucht?

Status
Nicht offen für weitere Antworten.

vrcat

Mitglied
Hallo zusammen,

ich suche eine Möglichkeit die Helligkeit der Zeichenfarbe zu manipulieren. Im Detail habe ich eine abstrakte Superklasse „Shape“ für meinen Graphen. Alle Elemente die von dieser Klasse abgeleitet sind müssen eine Methode „paintShape“ implementieren. In dieser Methode kann man festlegen wie das „Shape“ auszusehen hat inklusive Farben (durch einfache Zeichenmethoden der Graphic-Instanze).
Nun möchte ich gerne allgemein, also in der abstrakte Superklasse „Shape“ festlegen, dass alle Kinder dieser Klasse sich etwas Blasser darstellen, sollten sie Selektiert sein, ohne das das in den Kindern extra beachtet werden muss.

Mit freundlichen Grüßen
vrcat
 
Deine Farben kannst du so erstellen
Code:
	private static final Color3f BLACK = new Color3f(0f,0f,0f);
	private static final Color3f WHITE = new Color3f(1f,1f,1f);
Kannst dann über die class Material in deine objecte einbinden.
 
Gast hat gesagt.:
Kannst dann über die class Material in deine objecte einbinden.
class Material? Er braucht die Funktion für 2D, nicht für 3D.

Um die Shapes blasser zu zeichnen, müsstest du die RGB-Werte für jeden Pixel der Anzeige erhöhen oder den Alpha-Wert etwas verringern, damit es etwas transparent wird. Wie man das aber konkret macht, weiß ich nicht :?
Du könntest vielleicht in der abstrakten Superklasse die eigentliche Zeichenmethode schreiben, die ein Graphics-Objekt der paintShape-Methode übergibt, sich aus den Graphics ein BufferedImage macht, dessen Pixel alle einzeln durchläuft und die RGBA-Werte so modifiziert, dass alles etwas blasser wird, und dieses Image auf die übergebenen Graphics zeichnet.
:autsch: Okay, war nur so ne Idee...
 
Hm der Fred is zwar uralt, aber:
du kannst mit Graphics2D#setComposite nen AlphaComposite setzen, das dann eben einen geringeren Alpha-Wert hat.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben