amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > ColorWheel [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

24.11.2006, 10:43 Uhr

Honitos
Posts: 200
Nutzer
Wie kann ich von einem ColorWheel RGB-Werte bekommen ?

GetAttr #WHEEL_RGB,*colorwheel,ColorWheelRGB soll ja eigentlich die RGB-Werte der aktuellen Farbe in ColorWheelRGB schreiben,

GetAttr #WHEEL_Red,*colorwheel,rot soll den Farbanteil in rot schreiben.

Das geht aber nicht.
Ich kriege nur Ergebnisse für HSB.

Oder wie kann ich selbst von HSB nach RGB umrechnen ?

An die ConvertHSBtoRGB() in der gadgetlib komme ich von AmiBlitz2 aus nicht ran.

[ - Antworten - Zitieren - Direktlink - ]

24.11.2006, 23:27 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Honitos:
Wie kann ich von einem ColorWheel RGB-Werte bekommen ?

GetAttr #WHEEL_RGB,*colorwheel,ColorWheelRGB soll ja eigentlich die RGB-Werte der aktuellen Farbe in ColorWheelRGB schreiben,

GetAttr #WHEEL_Red,*colorwheel,rot soll den Farbanteil in rot schreiben.

Das geht aber nicht.
Ich kriege nur Ergebnisse für HSB.

Oder wie kann ich selbst von HSB nach RGB umrechnen ?

An die ConvertHSBtoRGB() in der gadgetlib komme ich von AmiBlitz2 aus nicht ran.


Ich hole mir die Werte als HSB und rechne sie dann mit ConvertHSBtoRGB() um. Da dies nur Sinn macht, wenn man die Werte nicht direkt als RGB bekommen kann, vermute ich, dass es nicht anders geht (ist schon eine Weile her, dass ich das programmiert habe).

Ist es in AmiBlitz2 nicht möglich, selbst Libraries einzubinden, die AmiBlitz2 noch nicht kennt (so wie bei AmigaBASIC)? Dann solltest Du mal die AmiBlitz2-Entwickler freundlich bitten, die Unterstützung der Library-Funktionen des colorwheel.gadgets zu implementieren.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

24.11.2006, 23:46 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
oder du ziehst dir den AROS source und schaust wie das dort gemacht wird.

[ - Antworten - Zitieren - Direktlink - ]

25.11.2006, 09:02 Uhr

bubblebobble
Posts: 707
Nutzer
Das geht in AB2 ganz einfach, wenn es eine .fd Datei zu der Lib gibt.
Wenn nicht, muss man es zu Fuss machen, so wie in C.
(also mit BasePointer, Function Offsets und OpenLibrary).
Gehen tuts auf jeden Fall.
... oder eben eine .fd selbst schreiben.

HSB nach RGB sollte aber einfach sein selbst zu implementieren.
Steht sicher irgendwo in Wikipedia, und dürfte eine Zeile pro
Farbwert sein, wenn man es geschickt macht, so in der Art:

code:
Rot = Min(0,Sin(Hue*360/256)) * (Saturtion*(Blau+Grün)/2/255) * (Brightness/255)
Grün = ...
Blau = ...


Das oben stimmt natürlich nicht ganz, kann man sich aber
durchdenken.

Wikipedia:
http://de.wikipedia.org/wiki/HSV-Farbraum

Ist doch eine ganz gute Fingerübung das selbst zu implementieren.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

26.11.2006, 12:26 Uhr

Honitos
Posts: 200
Nutzer
Danke für den Tipp.
Ich glaube ich schreibe mir eben schnell selber ne Routine.
Das geht schneller, als eine .fd-Datei zu erstellen, bzw. mit den Offsets zu hantieren..

[ - Antworten - Zitieren - Direktlink - ]

26.11.2006, 13:39 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Honitos:
Ich glaube ich schreibe mir eben schnell selber ne Routine.
Das geht schneller, als eine .fd-Datei zu erstellen, bzw. mit den Offsets zu hantieren..


Eine .fd-Datei muss man nicht erstellen, die sind beim sdk für den Amiga dabei. Und selbiges sollte man schon wegen der Dokumentation der OS-Funktionen installiert haben. Hier ist der Inhalt von colorwheel_lib.fd:

code:
##base _ColorWheelBase
##bias 30
##public
*--- functions in V39 or higher (Release 3) ---
##public
*
* Public entries
*
ConvertHSBToRGB(hsb,rgb)(a0/a1)
ConvertRGBToHSB(rgb,hsb)(a0/a1)
##end


mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

27.11.2006, 11:39 Uhr

Blackbird
Posts: 634
Nutzer
@Honitos:

und hier die Offsets, gibt es alles schon für Ab2

;************ colorwheel.gadget *************

NEWTYPE.ColorWheelRGB
cw_Red.l
cw_Green.l
cw_Blue.l
End NEWTYPE

NEWTYPE.ColorWheelHSB
cw_Hue.l
cw_Saturation.l
cw_Brightness.l
End NEWTYPE

#WHEEL_Dummy = (#TAG_USER + $04000000)
#WHEEL_Hue = (#WHEEL_Dummy + 1)
#WHEEL_Saturation = (#WHEEL_Dummy + 2)
#WHEEL_Brightness = (#WHEEL_Dummy + 3)
#WHEEL_HSB = (#WHEEL_Dummy + 4)
#WHEEL_Red = (#WHEEL_Dummy + 5)
#WHEEL_Green = (#WHEEL_Dummy + 6)
#WHEEL_Blue = (#WHEEL_Dummy + 7)
#WHEEL_RGB = (#WHEEL_Dummy + 8)
#WHEEL_Screen = (#WHEEL_Dummy + 9)
#WHEEL_Abbrv = (#WHEEL_Dummy + 10)
#WHEEL_Donation = (#WHEEL_Dummy + 11)
#WHEEL_BevelBox = (#WHEEL_Dummy + 12)
#WHEEL_GradientSlider = (#WHEEL_Dummy + 13)
#WHEEL_MaxPens = (#WHEEL_Dummy + 14)



--
regards
Blackbird

Have a look at:
http://www.blackbird-net.de

Skins for PlayCD OS3.9
BlackShoot, Zombies Apocalypse, GalagaWars
PerfectPaint

[ - Antworten - Zitieren - Direktlink - ]

27.11.2006, 15:06 Uhr

Honitos
Posts: 200
Nutzer
@Holger:
ups. hab ich gar nicht gesehen...
Danke Dir ! Jetzt hab ich die Call-offsets.

@Blackbird:
Danke Blackbird,
Die Konstanten und Newtypes sind alle in der all.res drin, das ist kein Problem, was ich meinte, sind die Offsets der Library-Funktionen, die im fd-File drinstehen.
Damit kann ich ein lib-File basteln, das dann in die "deflibs" reinkommt. Anschließend werden alle Funktionen von AB2 direkt ansprechbar und "tokenisiert".

Mit ist das für die zwei Funktionen bloß zu aufwendig.
Den Rest der Klasse spricht man je sowieso über NewObject_ etc. an.
Da ist selbst schreiben schneller...

Gruss,
Sven

[ Dieser Beitrag wurde von Honitos am 27.11.2006 um 15:07 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > ColorWheel [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.