PDA

Volledige versie bekijken : Random kleur in beperkt bereik


Fl4sh3r
%Europe/Berlin %798 %2005, 20:09
Ik zit al een hele tijd te puzzelen, maar mijn resultaten wijken steeds verder af van het gewenste resultaat.

Wat ik graag zou willen is een methode om random kleuren te krijgen, maar uit een beperkt gebied van het spectrum. Hieronder een voorbeeldje van het gebied waaruit ik een kleur wil:
http://www.bleq.nl/~chris/pics/FlashFocus/color_region.png

var cred:Number = Math.round(red.min+Math.random()*(red.max-red.min));
var cgreen:Number = Math.round(green.min+Math.random()*(green.max-green.min))
var cblue:Number = Math.round(blue.min+Math.random()*(blue.max-blue.min));

var color:Number = cred*65536 + cgreen*256 + cblue;

bg.beginFill(color, 100);
Dit is hoe ik het probeer, en dan maar goochelen met de minima en maxima.

Zoeken op het forum levert wel een script op, daar is slechts 1 min en 1 max waarde voor alle 3 de kleuren (RGB).

Iemand een suggestie, tutorial of wat tips?

theFlashWizard
%Europe/Berlin %045 %2005, 02:04
random zo gebruiken vind ik het beste:

R = makeRandom(1,10)
trace(R)

function makeRandom(min,max){
return Math.floor(Math.random()*max+min)
}

maarre ik snap niet hoe het alleen 1 min en 1 max kan oplevere.. het gebruik van random, zoals jij het doet zou ook tussenstappen moeten geven..

Fl4sh3r
%Europe/Berlin %408 %2005, 10:48
Mijn uitleg aangaande de genoemde functie (http://www.flashfocus.nl/forum/showthread.php?t=25&highlight=random+kleur[/url) is niet helemaal duidelijk.

Je kunt bij die randomColor prototype maar één minimum opgeven en één maximum, deze geldt dan voor zowel het rood, als het groen, als het blauw kanaal.

Het lijkt me niet dat ik daarmee het gewenste resultaat kan bereiken, daarom heb ik het op mijn eigen manier gedaan, met per kleur kanaal een minimum en maximum. Helaas kom ik er ook dan nog uit en wijken de kleuren (soms) te veel af van wat ik wil.

Jouw makeRandom is inderdaad wel netter, iig het Math.floor. Ik had niet Math.round moeten gebruiken. Alleen klopt ie niet helemaal...
Stel ik geef min=3, max=4:
Als Math.random() 0 geeft:
0*4+3 = 3 (ligt in het aangegeven bereik)
Als Math.random() bijna 1 geeft:
(bijna 1)*4+3 = net geen 7 (> 4, dus buiten het bereik)

Dauntless
%Europe/Berlin %427 %2005, 11:15
Hey :)

Ik ken Yves (maker van dat prototype), en hij is ook heel 'handig' met kleur prototypes en al die dingen, dus als hij online komt zal ik het hem eens vragen :) (Voor de rest komt hij namelijk zelden op het forum).

Roenes
%Europe/Berlin %465 %2005, 12:09
Volgens mij ziet je code er toch aardig uit. Dus het kan eigenlijk alleen fout gaan bij het ingeven van verkeerde waardes lijkt me. Maar je wilt een bepaald bereik in het kleuren spectrum en een bepaald bereik tussen zwart en wit. Kan dit niet voor problemen zorgen? Want beide liggen toch een heel eind uit elkaar? :)

Fl4sh3r
%Europe/Berlin %546 %2005, 14:06
Ik had ooit eens een Flash (MX?) component met een color picker.
Als ik die nou nog wist te vinden had ik die kunnen ontleden en naar de formule kunnen kijken. Daaruit kan ik dan zelf wel weer beperkte formules maken.

Als Yves me kan helpen zou dat ook fantastisch zijn natuurlijk :)

edit: Ik heb m inmiddels gevonden, maar het is toch een stuk ingewikkelder dan ik dacht :(

[Moreasy]
%Europe/Berlin %551 %2005, 14:14
Ik had ooit eens een Flash (MX?) component met een color picker.
Als ik die nou nog wist te vinden had ik die kunnen ontleden en naar de formule kunnen kijken. Daaruit kan ik dan zelf wel weer beperkte formules maken.

Als Yves me kan helpen zou dat ook fantastisch zijn natuurlijk :)

Heb ik voor je.. ff wachten kheb nu ff geen tijd..