Avatar billede rookieboy Nybegynder
12. oktober 2007 - 10:55 Der er 8 kommentarer og
1 løsning

Lidt matematik

Jeg har en funktion der smider en masser cirkler ud på scenen.
Jeg vil gerne lave det sådan, at jo større cirklen er, jo mindre blur har den, og jo mindre cirklen er, jo mere blur har den.

Dette skaber en slags dybde effekt og ser pænt ud.

Jeg ønsker en formel, der automatisk kan beregne størrele og blur, defineret ud fra følgende regler:

var minSize:Number = 0;
var maxSize:Number = 120;
var minBlur:Number = 0;
var maxBlur:Number = 15;

størrelse = Math.floor(Math.random()*(maxSize-minSize))+minSize;
blur = ????? // Her ønsker jeg hjælp!

Jeg ønsker med andre ord, at definere et matematisk forhold mellem størrelse og blur, som overholder de regler der er defineret i variablerne.

Kan nogen hjælpe?
Avatar billede andersbro Nybegynder
12. oktober 2007 - 11:02 #1
var rand:Number = Math.random();

var size:Number = Math.floor(rand*(maxSize-minSize))+minSize;
var blur:Number = maxBlur-Math.floor(rand*(maxBlur-minBlur));

Eller noget i den retning...?
Avatar billede rookieboy Nybegynder
12. oktober 2007 - 11:17 #2
Tak for inputtet, men det virker ikke helt efter hensigten.
Da blur er afhængig af size, skal size jo indgå i beregningen af blur.

Lige nu giver din formel følgende trace i et loop med 25 beregninger:

width=152 / blur=12
width=152 / blur=33
width=152 / blur=24
width=152 / blur=26
width=152 / blur=4
width=152 / blur=34
width=152 / blur=14
width=152 / blur=5
width=152 / blur=48
width=152 / blur=12
width=152 / blur=6
width=152 / blur=6
width=152 / blur=10
width=152 / blur=5
width=152 / blur=39
width=152 / blur=42
width=152 / blur=24
width=152 / blur=28
width=152 / blur=47
width=152 / blur=29
width=152 / blur=26
width=152 / blur=46
width=152 / blur=13
width=152 / blur=4
width=152 / blur=5

Det skulle mere så sådan her ud:

width=120 / blur = 0
width=50 / blur = 7,5
width=5 / blur= 11,25
width=1/ blur = 15;
Avatar billede andersbro Nybegynder
12. oktober 2007 - 11:26 #3
Hmm. Det virker nu fint her:

var minSize:Number = 0;
var maxSize:Number = 120;
var minBlur:Number = 0;
var maxBlur:Number = 15;

var rand:Number = Math.random();
var size:Number = Math.floor(rand*(maxSize-minSize))+minSize;
var blur:Number = maxBlur-Math.floor(rand*(maxBlur-minBlur));

trace("size: " + size);
trace("blur: " + blur);
Avatar billede barklund Nybegynder
12. oktober 2007 - 11:27 #4
Jeg vil sige at scriptet ser rigtigt nok ud - hvordan bruger du variablerne? Vis lige hele dit script :)
Avatar billede rookieboy Nybegynder
12. oktober 2007 - 11:45 #5
I her ret - det virker fint!
Mit script ser sådan ud:

this.attachMovie("ball_mc","ball_mc",this.getNextHighestDepth());
var numDots:Number = 50;
var minSize:Number = 1;
var maxSize:Number = 25;
var minBlur:Number = 0;
var maxBlur:Number = 30;
var rand:Number
var size:Number
var blur:Number

for (var i=0;i<numDots;i++){
   
    duplicateMovieClip("ball_mc","ball"+i+"_mc",this.getNextHighestDepth())
    rand = Math.random();
    size = Math.floor(rand*(maxSize-minSize))+minSize;
    blur = maxBlur-Math.floor(rand*(maxBlur-minBlur));

    with(this["ball"+i+"_mc"]){
    _x = Math.floor(Math.random()*(Stage.width-0))+0;
    _y = Math.floor(Math.random()*(Stage.height-0))+0;
    _width = _height = size;
    } // end with
   
    this["ball"+i+"_mc"].xyBlurTo(blur,blur,2,0,"Linear",0);
} // end for

removeMovieClip(ball_mc);
Avatar billede rookieboy Nybegynder
12. oktober 2007 - 11:48 #6
Anders: Smid lige et svar - så er der points.
Morten: Skal du ikke skrive en 'Grundlæggende AS3' bog? Har virkelige været glad for din første bog om AS2.
Avatar billede andersbro Nybegynder
12. oktober 2007 - 11:53 #7
Syntes nok at det skulle virke :-)
Svar er lige her...
Avatar billede barklund Nybegynder
12. oktober 2007 - 11:57 #8
rookieboy, jeg har sgi ikke skrevet en bog om AS2 ;)

Kun om helt grundlæggende regler, som gør sig gældende i både AS1, AS2 og AS3. Men ja, at få noget dansk-sproget på tryk om AS3 ville være en rigtig god ide, som jeg selv sysler lidt rundt med - der går nok noget tid, før jeg ved om det overhovedet bliver til noget :)
Avatar billede rookieboy Nybegynder
12. oktober 2007 - 12:45 #9
barklund: Well, du hvad hvad jeg mener når jeg skriver 'bog om AS2' .. :-)
Anyway, har købt Colin Moocks AS3 bibel - en god indgang til OOP som kan anbefales for kodenørder.

Men du har jo talent for at skrive kodebøger - så en AS3 begynder bog er da lige dig, ik?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester