| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Gast
Beiträge: n/a
|
hallo ich habe zum mischen von farben bisher immer den 'umweg' verwendet, die hex-codes der farben zunächst in ein rgb-objekt mit dezimalwerten umzuwandeln..kann ich mir das nicht unter umständen sparen und gleich mit den hex-werten rechnen? ich komm irgendwie nicht ganz dahinter, wie ich die zahlen handeln soll.. gruß, Tante Amanda |
|
| | #2 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Hi. Ich kann es nicht 100% nachvollziehen. Vielleicht helfen Dir aber folgenden Beispiele: PHP-Code:
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #3 (permalink) |
| Gast
Beiträge: n/a
|
hi thebiz.. mh nein..das hilft mir nicht wirklich weiter... die farbe die ausgegeben wird, entspricht der angegeben mischung. was mich nur stört ist der umweg über die dezimalwerte..was ich eigentlich bräuchte, wäre ein beispiel bzw. ein gednklichen ansatz, wie ich für die hexadezimalwerte, sofern möglich, genau so ein mischungsverhältnis berechnen kann... ActionScript:
gruß, Tante Amanda |
|
| | #4 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Also man kann doch nicht Hexadezimal-Zahlen druch Dezimal-Zahlen teilen und mal nehmen etc. Man muss schon in einem Zahlensystem bleiben. Also entweder alles nach Hexa oder alles nach Dezi umwandeln um zu rechnen.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #5 (permalink) |
| flachzange Registriert seit: Jun 2003 Ort: berlin
Beiträge: 3.932
|
also! du möchtest vermutlich einfach die hex werte miteinander verrechnen, ohne vorher die einzelnen bytes (r,g,b) aufzusplitten. das wird so AFAIK aber nicht funktionieren, weill drei einzelne byte werte (FF, FF, FF) was anderes sind als ein wert (FFFFFF). (die werte werden ja nur in einen integer gapackt um speicherplatz zu sparen) für deinen farbmixer musst du also erstmal jedes byte extrahieren und dann neu berechnen. ich sehe da momentan die einzige möglichkeit alles in eine funktion zu quetschen und so die funktionen, objekte und schleifen zu sparen (zu lasten der modularität). ich habe die funktionen mal ein bischen gebenchmarkt. meine funktion ist etwas mehr als doppelt so schnell. wobei die zweite version nicht viel zuwachs hat. möglich das es noch irgendwelche rechentricks gibt um die berechnung zu vereinfachen, aber mathe ist nicht mein ding. achso hier nen netter link zu bitweisen operatoren: http://www.gamedev.net/reference/art...rticle1563.asp und ja ich hatte langeweile! ActionScript:
hier die zeiten. wenns um geschwindigkeit geht sollte man wirklich den code extrem reduzieren. allerdings sollte man von lokalen variablen gebrauch machen, weil der code übersichlicher wird und nicht wirklich viel performance drauf geht. Code: // Ausgabe (10000 Loops): rasMixColor1: e6f0f8 -- time needed: 972 rasMixColor2: e6f0f8 -- time needed: 961 Amandas - mixColor: e6f0f8 -- time needed: 2172
__________________ |
| | |
| | #6 (permalink) |
| Gast
Beiträge: n/a
| ![]() danke für die erläuterungen, binary blade.. mh...wenn ich im gleichen zahlensystem bleibe...wieso funktioniert das hier dann nicht..: ActionScript:
die hexadezimalwerte werden hier ja sowieso als dezimalwerte ausgegeben, insofern sollte die rechnung ja in sich stimmig sein. oder hab ich jetzt einfach ein brett vor dem kopf...ich mein..eigentlich ist das ja so etwas wie ein term und die werte beliebig austauschbar, wenn ihr verhältnis zueinander gleich bleibt... ![]() gruß, Tante Amanda |
|
| | #7 (permalink) |
| flachzange Registriert seit: Jun 2003 Ort: berlin
Beiträge: 3.932
|
da mathe bei mir eher ausm bauch kommt habe ich mal ein bischen rumprobiert. und es kam die erleuchtung. ActionScript:
also eigentlich ganz simpel. es liegt daran das das dividieren oder multiplizieren mit einzelnen bytes (0xff/100*10)andere werte hervorbring als mit den drei bytes (0xffffff/100*10).
__________________ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |