zpg-graphentester/imp/HSB.java
2021-07-12 14:04:20 +02:00

55 lines
1.5 KiB
Java

package imp;
import java.awt.Color;
/**
* Hilfsklasse für das HSB-Farbmodell
*
* @author Thomas Schaller
* @version V1.0 14.01.2020
*/
public class HSB
{
/**
* Liefert den Farbton als Winkel zwischen 0.0° und 360.0°.
* @param Color c Farbe, deren Farbton bestimmt werden soll.
* @return Farbton
*/
public static double getHue(Color c) {
float[] hsb = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null);
return hsb[0];
}
/**
* Liefert die Sättigung als Wert zwischen 0.0 (0%) und 1.0 (100%).
* @param Color c Farbe, deren Sättigung bestimmt werden soll.
* @return Sättigung
*/
public static double getSaturation(Color c) {
float[] hsb = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null);
return hsb[1];
}
/**
* Liefert die Helligkeit als Wert zwischen 0.0 (0%) und 1.0 (100%).
* @param Color c Farbe, deren Helligkeit bestimmt werden soll.
* @return Sättigung
*/
public static double getBrightness(Color c) {
float[] hsb = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null);
return hsb[2];
}
/**
* Liefert ein Java-Color-Objekt mit den angegebenen HSB-Werten.
* @param h Farbton (Hue)
* @param s Sättigung (Saturation)
* @param b Brightness (Helligkeit)
* @return Java-Color-Objekt
*/
public static Color getColor(double h, double s, double b) {
return new Color(Color.HSBtoRGB((float) h, (float) s, (float) b));
}
}