Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Oma Slider

kayttaja-3842 [27.03.2007 09:45:54]

#

Juu elikkäs huomasin, että tarvitsen omaan ohjelmaani ihan yksinkertaisen Slider barin. Noh, aloin kirjoittamaan slidern koodia ja itselläni oli tarkat tiedost miten se tehdään, mutta ei se ollukaan niin tarkka. Slideri tyssäsi kokonaan laskukaavoihin. Eli sliderin kulukujanan eli missä slideri kulkee se viiva sen leveys on 68px. Eli Slider palikan max kohta on kulkujananx + kulkujananleveys. Eli jos vaikka kulkujanan x = 50 ja leveys on se 68px, niin jos sliderin x = kulkujananx + kulkujananleveys, niin sitten arvo = 100 ja jos arvo = 0 nii sitten slider bar on kulkujananx:ssä vain. Eli tavalaan nollassa.

Niin eli eikös tämä kaava mene arvosta bar:in x muuttujaan näin?

 slidebarx = arvo / 100 * 68 + kulkujananx - sliderbarleveys;

Jos tuo on oikein, sitten minun pitäisi vielä jotenkin saada selvitettyä, että miten arvo saadaan x:tä?

Eli jos x = esim 65, nii mitä se on arvona 0 - 100 väliltä?

...koittakaa saada selvää! :P

TsaTsaTsaa [27.03.2007 15:28:13]

#

"Aika" sekavaa tekstiä. Onko x sama kuin slidebarx? Vai kenties x=kulkujananx?

Jos x:llä tarkoitetaan slidebarx:ää, ja se tunnetaan ja halutaan selvittää arvo, niin ei muuta tarvi kuin vähän pyöritellä tuota yhtälöä. Eli muotoon:
arvo = slidebarx * 100 * 68 - kulkujananx + sliderbarleveys;

Eipä matemaattisesti kovin vaativa pulma, mikäli tätä kysyttiin. :(

kayttaja-3842 [27.03.2007 17:27:47]

#

hmm...Tuota, jos kaava on arvo = slidebarx * 100 * 68 - kulkujananx + sliderbarleveys; tuloksesta tulee aika suuri...Meinaan jos vaikka x:än sijainti on 68, niin jos lasken arvo = 68 * 100 * 68 - 50 + 7, niin tulos on aika suuri.

Edit: Sain sen sittenkin itse selvitettyä

kaava on:arvo = (hx - 50) / 68 * 100;

TsaTsaTsaa [27.03.2007 17:40:09]

#

Niin joo nuo 100 ja 68 tietysti kertoimiksi myös kulkujananx:lle ja slbleveydelle:
arvo = 100 * 68 * (slidebarx - kulkujananx + sliderbarleveys)

Nyt noilla arvoilla tulee
arvo = 100 * 68 * (68 - 50 + 7) = 6800 * 25
Eipä sekään osu välille 0-100.

Mutta kun en ymmärtänyt tuosta alkuperäisestä viestistä oikein mitään. Tuo oli vain veikkaus sen perusteella, mitä luulin sinun kysyneen, mutta ilmeisesti se oli ihan väärää.

EDIT: Eli voisitko vähän yrittää selkeämmin esittää kysymyksesi.

EDIT2: Nyt taisinkin hoksata...

px = X/100 * (s-r) + kjx
X = 100*(px-kjx)/(s-r)

Missä
- px on liikkuvan palikan x-koordinaatti
- kjx on kulkujanan vasemman reunan x-koordinaatti
- X on arvo (väliltä 0-100)
- s on kulkujanan pituus
- r on palikan pituus

kayttaja-3842 [27.03.2007 17:51:00]

#

Joo sain sen itse ratkaistuu jo

arvo = (hx - 50) / 68 * 100;

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta