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: 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: 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 + #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. |