Hallo,
ich bin recht frisch in C# und habe eine recht einfache Frage. Ich möchte eine Klasse
erstellen , die eine Farbe in verschiedenen Farbräumen beinhaltet und diese bei Eingabe
untereinaner konvertiert. Nennen wir diese Klasse nColor.
public nColor myColor = new nColor();
public double Hue = 0;
myColor.aRGB.Set (255,255,255,255);
Hue = myColor.aHSV.Hue; Soweit, so gut. Die grundlegende Logik bereitet mir keine Probleme und auch nicht die
Konvertierung der Farbräume soll dass Thema sein, vielmehr die Struktur der Klasse ansich.
Ich habe die Klasse verschachtelt erstellt, d.h. jeder Farbraum ist eine Unterklasse.
public class nColor
{
private byte _a;
private byte _r;
private byte _g
private byte _b;
// Konstruktor und Funktionen zum Lesen/Schreiben der "BASIS" aRGB werte.
public rgbSpace RGB = new rgbSpace();
public hsvSpace HSV = new hsvSpace();
private class rgbSpace
{
private byte _rr;
private byte _rg
private byte _rb;
// Funktionen zum Lesen/Schreiben der rgbSpace werte und dem entsprechenden _
setzen der "basis" rgb werte.
}
private class hsvSpace
{
private byte _hh;
private byte _hs
private byte _hv;
// Funktionen zum Lesen/Schreiben der hsvSpace werte und dem entsprechenden _
setzen der "basis" rgb werte.
}
} Nun zum Problem :
Wenn ich aus der Unterklasse hsvSpace auf die grundlegenden Werte _a,_r,_g,_b zugreifen
möchte ,muss ich diese als Static deklarieren , was ja nicht ganz sinnig ist , da ich ja gerne
mehr als eine Farbe definieren können möchte.
Wie gestalte ich also die Struktur der Klasse am besten ?
Nochmal die Logik der Klasse :
nColor
nColor.RGB
nColor.RGB.R
nColor.RGB.G
nColor.RGB.B
nColor.RGB.Set(r,g,b)
nColor.HSV
nColor.HSV.H
nColor.HSV.S
nColor.HSV.V
nColor.HSV.Set(h,s,v) im code , soll sie dann folgendes können :
[1] public nColor Farbe = new nColor();
[2] public byte r = 0;
[3] Farbe.HSV.Set(289,0.25,0.75);
[3] r = Farbe.RGB.R; Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Eventuelle Syntax oder
Tippfehler bitte ignorieren , bin neu in C# und hab es net im im Compiler getippt .
Vielen Dank im Vorraus,
gruß,
minime |