[Flash/script] Wiskunde

Pagina: 1
Acties:

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Het maakt eigelijk niet uit waarvoor het is, maar ik gebruik het iig voor flash.

Ik heb een schuifbalk van 325 pixels breed. Die gaat van -25 tot 300.
De startwaarde is 1000, max is 6000.
Nu kan ik de positie instellen door de pixels op te geven, dan krijg ik dus daarvan de waarde te zien.
Bijv. set_position(100) is dan ongeveer 2000.

Nu wil ik de waarde in kunnen stellen. Dus set_value(5000).
Maar ik heb geen idee hoe ik dat moet doen.
Aantal gegevens:

5000 = 83% van 6000
Op 5000 staat de slider op 235 pixels
235 pixels (wat 5000 is) = 72% van de totale breedte.

En daar zit de fout al. De een zegt 83, de ander zegt 72.

Wie kan me helpen?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Euh... Volgens mij zit het zo:

5000/6000*100 = 83,33...%
325 / 100 * 83,33... = 270.8225 (ongeveer, als je 83.33 afrond op 2 decimalen)
En als je dan de omgekeerde bewerking doet krijg je uiteraard weer 5000.

If you can't beat them, try harder


Verwijderd

Je startwaarde is 1000, dus eigenlijk zoek je 4000 = x% van 5000 = 80%
80% van je balk van 325 pixels is 260, vanaf -25 gerekend dus 235.

Het komt er dus gewoon op neer dat je goed moet kijken naar je startwaardes en het bereik voordat je formuletjes er op loslaat.

[ Voor 108% gewijzigd door Verwijderd op 27-04-2004 20:56 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
waarde(x) = 1000 + 5000/325*(x+25)
x(waarde) = -25 + 325/5000*(waarde-1000)

5000 is op de schaal van 1000 tot 6000 gelijk aan 4000/5000 = 80%. Het komt overeen met 235 pixels op een schaal van -25 tot 300 en dat is gelijk aan 260/325 = 80%. In beide gevallen zit je dus op 80%.

edit:
RobinVR was me te snel af. :P

[ Voor 8% gewijzigd door Soultaker op 27-04-2004 20:59 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Wow dank jullie wel.
Ik heb ondertussen de slider naar rechts verplaatst, zodat hij van 0 tot 325 gaat. Lijkt me makkelijker.
1 probleem, als ik met de slider naar 270 pixels ga, dan is de waarde 5295.
Volgens mij laat hij wel de goede waarde zien, aangezien hij 6000 en 1000 aan beide kanten goed laat zien.

De waarde wordt zo berekend bij het sliden:
code:
1
2
3
4
5
6
7
8
9
10
function refresh_value()
{
    var percent = slider_x / 3.25;
    var fvalue = Math.round((percent / 100) * (max_value - start_value)) + start_value;
    slider.value.text = fvalue;
    
    if (fvalue != prev_value) onscroll(fvalue);
    prev_value = fvalue;
    trace(slider._x);
}


Ahola!!!
Bedankt!! Het is gelukt.
Dit is de functie voor het setten, het uitlezen was nix mis mee ;)

code:
1
2
3
4
5
6
7
8
9
function set_value(val)
{

    val -= start_value;
    tmp = (val / (max_value - start_value)) * 325;
    trace(tmp);
    slider_x = slider._x = tmp;
    refresh_value();
}

[ Voor 57% gewijzigd door Guillome op 27-04-2004 21:09 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router