Weitere Dokumentation

This commit is contained in:
ngb 2022-06-19 22:23:26 +02:00
parent 5df96815ea
commit 44d52ec71e
2 changed files with 60 additions and 16 deletions

View File

@ -529,4 +529,42 @@ public class Color {
return Color.getRGBColor(HSLtoRGB(hsl, getAlpha()));
}
public Color greyscale() {
return new Color((int)(getRed()*.299 + getGreen()*.587 + getBlue()*0.114));
}
/**
* Erzeugt eine zu dieser invertierte Farbe.
* @return Ein Farbobjekt mit der invertierten Farbe.
*/
public Color inverted() {
//return new Color((0xFFFFFFFF - (0x00FFFFFF & rgba)) | (0xFF000000 & rgba));
return new Color(rgba ^ 0x00FFFFFF);
}
/**
* Erzeugt die Komplementärfarbe zu dieser.
* @return Ein Farbobjekt mit der Komplementärfarbe.
*/
public Color complement() {
float[] hsl = RGBtoHSL(rgba, null);
hsl[0] = 360 - hsl[0];
return new Color(HSLtoRGB(hsl, getAlpha()));
}
/**
* Wählt entweder {@link #WHITE weiß} oder {@link #BLACK schwarz} aus, je
* nachdem, welche der Farben besser als Textfarbe mit dieser Farbe als
* Hintergrund funktioniert (besser lesbar ist).
* @return Schwarz oder weiß.
*/
public Color textcolor() {
// Basiert auf https://stackoverflow.com/questions/946544/good-text-foreground-color-for-a-given-background-color
if( (getRed()*.299 + getGreen()*.587 + getBlue()*0.114) < 186 ) {
return WHITE;
} else {
return BLACK;
}
}
}

View File

@ -139,19 +139,6 @@ public class Vector extends Point2D.Double {
return vec;
}
/**
* Addiert die beiden Vektoren zu einem neuen Vektor.
*
* @param vector1 Erster Vektor.
* @param vector2 Zweiter Vektor.
* @return Summenvektor der beiden Vektoren.
*/
public static Vector add( Vector vector1, Vector vector2 ) {
Vector vec = vector1.copy();
vec.add(vector2);
return vec;
}
/**
* Subtrahiert den zweiten vom ersten Vektor.
*
@ -320,9 +307,9 @@ public class Vector extends Point2D.Double {
}
/**
* Dieser Vektor selbst (method chaining)
* @param vector
* @return
* Addiert den Vektor {@code vector} zu diesem.
* @param vector Ein anderer Vektor.
* @return Dieser Vektor selbst (method chaining)
*/
public Vector add( Vector vector ) {
x += vector.x;
@ -330,12 +317,31 @@ public class Vector extends Point2D.Double {
return this;
}
/**
* Addiert die angegebenen Werte zur x- und y-Komponente des Vektors.
* @param x Summand x-Komponente.
* @param y Summand y-Komponente.
* @return Dieser Vektor selbst (method chaining)
*/
public Vector add( double x, double y ) {
this.x += x;
this.y += y;
return this;
}
/**
* Addiert die beiden Vektoren zu einem neuen Vektor.
*
* @param vector1 Erster Vektor.
* @param vector2 Zweiter Vektor.
* @return Summenvektor der beiden Vektoren.
*/
public static Vector add( Vector vector1, Vector vector2 ) {
Vector vec = vector1.copy();
vec.add(vector2);
return vec;
}
public Vector sub( Vector vector ) {
x -= vector.x;
y -= vector.y;