From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100164.html | 207 +++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100164.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100164.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100164.html b/Master/Reference Architectures and Patterns/hjp5/html/k100164.html new file mode 100644 index 0000000..919e062 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100164.html @@ -0,0 +1,207 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 25 - Farben +
+
+ + + + +

25.3 Verwenden von Farben

+
+ +
+ +

+Um Farben bei der Ausgabe von Grafik oder Schrift zu verwenden, muss +ein geeignetes Color-Objekt +beschafft und dem Graphics-Objekt +mit Hilfe der Methode setColor +zugewiesen werden. Die Ausgaben erfolgen dann so lange in der neuen +Farbe, bis durch Aufruf von setColor +eine andere Farbe festgelegt wird. Mit Hilfe der Methode getColor +kann die aktuelle Farbe ermittelt werden: +

+ + + + + +
+ +
+public void setColor(Color c)
+
+public Color getColor()
+
+
+
+java.awt.Graphics
+ +

+Das folgende Beispiel zeigt die Verwendung von Farben und ihre Zusammensetzung +aus den drei Grundfarben Rot, Grün und Blau. Es stellt das Prinzip +der additiven Farbmischung mit Hilfe dreier überlappender Kreise +dar: + + +

+ + + + + +
+ +
+001 /* Listing2501.java */
+002 
+003 import java.awt.*;
+004 import java.awt.event.*;
+005 
+006 public class Listing2501
+007 extends Frame
+008 {
+009   public static void main(String[] args)
+010   {
+011     Listing2501 wnd = new Listing2501();
+012   }
+013 
+014   public Listing2501()
+015   {
+016     super("Der Farbenkreis");
+017     addWindowListener(new WindowClosingAdapter(true));
+018     setSize(300,200);
+019     setVisible(true);
+020   }
+021 
+022   public void paint(Graphics g)
+023   {
+024     int top  = getInsets().top;
+025     int left = getInsets().left;
+026     int maxX = getSize().width-left-getInsets().right;
+027     int maxY = getSize().height-top-getInsets().bottom;
+028     Color col;
+029     int[] arx   = {130,160,190};
+030     int[] ary   = {60,110,60};
+031     int[] arr   = {50,50,50};
+032     int[] arcol = {0,0,0};
+033     boolean paintit;
+034     int dx, dy;
+035 
+036     for (int y = 0; y < maxY; ++y) {
+037       for (int x = 0; x < maxX; ++x) {
+038         paintit = false;
+039         for (int i = 0; i < arcol.length; ++i) {
+040           dx = x - arx[i];
+041           dy = y - ary[i];
+042           arcol[i] = 0;
+043           if ((dx*dx+dy*dy) <= arr[i]*arr[i]) {
+044             arcol[i] = 255;
+045             paintit = true;
+046           }
+047         }
+048         if (paintit) {
+049           col = new Color(arcol[0],arcol[1],arcol[2]);
+050           g.setColor(col);
+051           g.drawLine(x+left,y+top,x+left+1,y+top+1);
+052         }
+053       }
+054     }
+055   }
+056 }
+
+
+Listing2501.java
+ +Listing 25.1: Darstellung des Farbenkreises

+

+ + + + + + + + + +
+ +

+Das Programm arbeitet in der Weise, dass für jeden einzelnen +Punkt der Zeichenfläche berechnet wird, ob dieser in einem der +drei Kreise liegt. Ist dies der Fall, so wird die zugehörige +Farbkomponente auf 255 gesetzt, andernfalls auf 0. Die Bestimmung +der Kreiszugehörigkeit erfolgt mit Hilfe des Satzes von Pythagoras, +nach dem ein Punkt genau dann zu einem Kreis gehört, wenn die +Summe der Quadrate der Abstände vom x- +und y-Wert zum Mittelpunkt kleiner +gleich dem Quadrat des Radius ist. Die drei Mittelpunkte werden in +unserem Beispiel in den Arrays arx +und ary, die Radien der Kreise +in arr gespeichert. Die boolesche +Variable paintit zeigt an, ob +der Punkt in wenigstens einem der drei Kreise liegt und daher überhaupt +eine Ausgabe erforderlich ist.

+ + + + +
 Hinweis 
+
+

+ + +

+ +

+Abbildung 25.1: Der Farbenkreis

+
+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3