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())); 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; 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. * Subtrahiert den zweiten vom ersten Vektor.
* *
@@ -320,9 +307,9 @@ public class Vector extends Point2D.Double {
} }
/** /**
* Dieser Vektor selbst (method chaining) * Addiert den Vektor {@code vector} zu diesem.
* @param vector * @param vector Ein anderer Vektor.
* @return * @return Dieser Vektor selbst (method chaining)
*/ */
public Vector add( Vector vector ) { public Vector add( Vector vector ) {
x += vector.x; x += vector.x;
@@ -330,12 +317,31 @@ public class Vector extends Point2D.Double {
return this; 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 ) { public Vector add( double x, double y ) {
this.x += x; this.x += x;
this.y += y; this.y += y;
return this; 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 ) { public Vector sub( Vector vector ) {
x -= vector.x; x -= vector.x;
y -= vector.y; y -= vector.y;