|
| dechex() Fra : Mickey |
Dato : 24-03-01 01:20 |
|
Jeg fandt lige på at lave en kode der sku gi en tilfældig farvekode.
Jeg har prøvet to udgaver:
$textcol = dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
og:
$textcol1 = dechex(rand(0,255));
$textcol2 = dechex(rand(0,255));
$textcol3 = dechex(rand(0,255));
$textcol4 = dechex(rand(0,255));
$textcol5 = dechex(rand(0,255));
$textcol6 = dechex(rand(0,255));
$textcol =
$textcol1.$textcol2.$textcol3.$textcol4.$textcol5.$textcol6;
istedet for en 6 cifret hex-kode gir de begge en 10-12 cifret
decimalkode.
Hvorfor ?
--
Mickey
| |
Nezar Nielsen (24-03-2001)
| Kommentar Fra : Nezar Nielsen |
Dato : 24-03-01 01:59 |
|
"Mickey" <news002@susie.dyndns.dk> wrote in message
news:lLRu6.5221$Ov.308996@news010.worldonline.dk...
> Jeg fandt lige på at lave en kode der sku gi en tilfældig farvekode.
> Jeg har prøvet to udgaver:
[som begge to lægger 6 hextal oveni hinanden = potentielt 12 tegn (start 0
vises ikke, derfor risikerer du at få nogle der er på færre tegn end 12)]
Prøv sådan:
$textcol = dechex(rand(0,255)); #r
$textcol .= dechex(rand(0,255)); #g
$textcol .= dechex(rand(0,255)); #b
echo sprintf("%06s",$textcol).'<br>';
--
Mvh. Nezar Nielsen
wwf fan.
| |
Peter Brodersen (24-03-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 24-03-01 14:21 |
|
On Sat, 24 Mar 2001 01:59:15 +0100, "Nezar Nielsen" <tumpen@fez.dk>
wrote:
>$textcol = dechex(rand(0,255)); #r
>$textcol .= dechex(rand(0,255)); #g
>$textcol .= dechex(rand(0,255)); #b
>echo sprintf("%06s",$textcol).'<br>';
Den er da heller ikke helt god - hvis #r er 1, #g er 0 og #b er 0, vil
der komme leading 0'er i begyndelsen, og det vil blive til "000100" i
stedet for "010000".
--
- Pede
Professionel nørd
| |
Nezar Nielsen (24-03-2001)
| Kommentar Fra : Nezar Nielsen |
Dato : 24-03-01 18:10 |
|
"Peter Brodersen" <professionel@nerd.dk> wrote in message
news:sn7pbt89kru69t3bq7l9h6640uemmp87dt@news.worldonline.dk...
> On Sat, 24 Mar 2001 01:59:15 +0100, "Nezar Nielsen" <tumpen@fez.dk>
> wrote:
>
> >$textcol = dechex(rand(0,255)); #r
> >$textcol .= dechex(rand(0,255)); #g
> >$textcol .= dechex(rand(0,255)); #b
> >echo sprintf("%06s",$textcol).'<br>';
>
> Den er da heller ikke helt god - hvis #r er 1, #g er 0 og #b er 0, vil
> der komme leading 0'er i begyndelsen, og det vil blive til "000100" i
> stedet for "010000".
Men det er stadig en nogenlunde tilfældig 6-cifret hex-kode ;)
aj, du har selvfølgelig ret, så sprintf("%06X",rand(0,16777215)) da..
--
Mvh. Nezar Nielsen
Professionel sesam-snack-spiser.
| |
Rasmus Ebler Simonse~ (24-03-2001)
| Kommentar Fra : Rasmus Ebler Simonse~ |
Dato : 24-03-01 02:04 |
|
> $textcol = dechex(rand(0,255));
[snip]
> istedet for en 6 cifret hex-kode gir de begge en 10-12 cifret
> decimalkode.
>
> Hvorfor ?
prøv med 15 istedet for 255. Et hex ciffer er mellem 0 og 15 begge inkl.
Husk i øvrigt at give rand et seed. F.eks. :
srand ((double) microtime() * 1000000);
$textcol = dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
/rasmus
| |
|
|