You are not logged in.

  • Login

1

Sunday, February 10th 2008, 1:23pm

Java, Farben, Integer und RGB

Hey, ichhab den code schon fertig geschrieben, hab aber 2 frage :

warum steht da" int rot = (int) (Math.random*255);"

Frage 1= wieso wird Math.radndom*255 in ein int umgewandelt, es ist doch schon längst ein int... (eine zufalszahl mal 255)

Frage 2 = wie ist das mit rot und grün und blau áb welchen werten is rot ich versteh das nicht warum man das gerade mit Mathe.random macht... (eine einfach kurze erklärungh reicht, dass ich es verstehe .. danke =))

Quoted



import java.awt.*;
import javax.swing.*;

public class Zeichenpanel extends JPanel {

public void paintComponent(Graphics g){

Graphics2D g2d = (Graphics2D) g;

int rot = (int) (Math.random() * 255);
int gruen = (int) (Math.random() * 255);
int blau = (int) (Math.random() * 255);

Color start = new Color(rot,blau,gruen);

rot = (int) (Math.random()*255);
gruen = (int) (Math.random()*255);
blau = (int) (Math.random()*255);

Color end = new Color(rot,blau,gruen);

GradientPaint gradient = new GradientPaint(70,70,start,150,150,end);

g2d.fillRect(0,0, this.getWidth(), this.getHeight());
g2d.setPaint(gradient);
g2d.fillOval(70,70,100,100);

}
}

2

Sunday, February 10th 2008, 2:13pm

Eine Zufallszahl der Methode Math.random() ist keine integer-Zahl. Es ist eine Zahl zwischen 0 und 1, also eine Gleitkommazahl.

Daher muss diese noch in int umgewandelt werden.

3

Sunday, February 10th 2008, 2:20pm

Also erstens wäre es gut wenn du Java Syntax Highlight benutzt. Da der Code offensichtlich nicht von dir ist, solltest du eigentlich den Fragen, der das programmiert hat.

Also du brauchst zwei Farben, eine Anfangsfarbe und eine Zielfarbe um den Verlauf zu zeichnen. Eine Farbe setzt sich aus drei Teilen (Rot, Grün, Blau) zusammen jeweils mit ganzzahligen Werten zwischen 0 und 255.

Math.Random() liefert dir eine Zahl zwischen 0.0 und 1.0 vom Typen double (Doku). Diese mit 255 multipliziert ergibt eine Zahl zwischen 0 und 255 vom Typen double (weil: int * double = double). Rot ist aber ein int und Java castet nie automatisch vom größeren Typen zum kleineren (mit einer Ausnahme), weil das verlustbehaftet ist. Deswegen der Cast. Das machst du für jeden der drei Werte und schon hast du eine Zufallsfarbe. Wie eine RGB-Farbe aufgebaut wird, kannst du hier nachlesen.

4

Sunday, February 10th 2008, 8:02pm

is ja wie bei html mhhh okay danke =)

Similar threads

Social bookmarks