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