Heippa!
Viimeisistä matematiikantunnistani on jo yli 6v ja nyt ei meinaa taas lanttu leikata ohjelmoinnin parissa. En millään hoksaa mitä keinoa tässä pitäisi soveltaa
Hakussa olisi siis täydennystä if lausekkeeseen, mutta satunnaisen kokeilun sijaan olisi mukava oppia miten tällaiset tilanteet voisi tulevaisuudessa ratkaista esim Wolframalphan avulla, kun muutamia numeroita tunnetaan.
Gif demonstraatio halutusta tuloksesta:
https://dl.dropboxusercontent.com/u/25020981/Postatut kuvat/blokkianimaatio.gif
Mustaharmaa kuutio on tässä ns pelaaja ja ympärillä palikoista koostuva maa tulisi saada reagoimaan animaation tavoin useilla eri muuttujien arvoilla.
Muutama muuttuja:
minY = -3; maapalikan minimikorkeus
maxY = 0; maapalikan maksimikorkeus
distanceClose = 2;
distanceFar = 5; pelaajan etäisyys maapalikkaan näiden 2 arvon välillä tulisi liikuttaa palikkojen korkeutta lineaarisesti.
distance; yksittäisen palikan etäisyys pelaajaan vaaka-akselilla, korkeutta ei siis huomioida.
Maapalikoiden korkeus vaihtelee siis -3 ja 0 yksikön välillä. Pelaajan ollessa lähempänä kuin 5 yksikön päässä maapalikasta, palikan tulisi nousta lineaarisesti ylöspäin, kunnes etäisyys on 2, jolloin saavutettaisiin korkeus 0. Palikat ovat 2 yksikön etäisyyden sisällä korkeudessa 0, eli pelaajan juuri pelaajan alapuolella
Elikkä:
if (distance < distanceFar && distance > distanceClose)
maapalikan korkeus = ???
Osaisitteko neuvoa, vai tarvitseeko tapaus lisää selvennystä? :)
Ohjelmointipulma matematiikan kanssa.
3
66
Vastaukset
- matikisti
Yleinen tapa lienee käyttää kaavaa f(x)=ax. Eli nyt ääriarvot ovat f(0)=0 ja f(1)=a. Siten esim puolessa välissä f(1/2)=a/2. Jos taas haluat kuvata välin [0,1] välille [a,b] lineaarisesti, niin kokeilepa kaavaa f(x)=(b-a)x a.
- Mutjake
Ei tainnut ihan vielä tällä selvitä.
Jos nyt koodin kannalta miettii niin a ja b olisivat tässä tapauksessa ilmeisesti distanceFar ja distanceClose, mutta jos haettava x olisi etäisyys, ei sitä voi ainakaan ilman yhtälön pyörittelyä tuonne väliin lisätä. Ja tästä varmaankin jäi huomioimatta muuttuva minimikorkeus, minY = -3. Se tulisi myös huomioida kaavassa.
Kokeilin kuitenkin kaavaa niin että x olisi distance elikkä:
korkeus = (((distanceClose-distanceFar))*(distance distanceFar))
Kuva tuloksesta: https://dl.dropboxusercontent.com/u/25020981/Postatut kuvat/korkeus.PNG
Mutta palikan muuttuva korkeus heittää pahasti halutusta 0 | -3 väliltä ja liikkuminen tapahtuu muutenkin korkeuksien -30 | -21 välillä. - Mutjake
Päätä hakkaamalla seinään kaava selvisi kun paperilla vähän töhersi, mutta eipä tästä oikein mitään kätevää oppinut, esim Wolframalphan käyttöä.
Jos jotakuta kiinnosta niin kaava oli lopulta:
(((distance-distanceClose)/(distanceClose-distanceFar))*(maxY-minY))
Eli ensin lasketaan mitenkä lähellä ollaan pistettä, jolloin korkeus on maksimissaan eli (distance-distanceClose).
Tulos jaetaan etäisyydellä, jonka aikana korkeus on muuttuva eli (distanceClose-distanceFar)
Näin saadaan prosenttiosuus kuljetusta matkasta jolloin korkeuden pitää muuttua ja lopulta tulos kerrotaan mahdollisen korkeuden muutoksen määrällä eli (maxY-minY)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mielessäni vieläkin T
Harmi että siinä kävi niinkuin kävi, rakastin sinua. Toivotan sulle kaikkea hyvää. Toivottavasti löydät sopivan ja hyvän371826Nellietä Emmaa ja Amandaa stressaa
Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k61401Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita
Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita – neljä Jyväskylän Outlaws MC:n jäsentä vangittu: "Määrät p431396- 141362
Nähtäiskö ylihuomenna taas siellä missä viimeksikin?
Otetaan ruokaöljyä, banaaneita ja tuorekurkkuja sinne messiin. Tehdään taas sitä meidän salakivaa.11355Persut petti kannattajansa, totaalisesti !
Peraujen fundamentalisteille, vaihtkaa saittia. Muille, näin sen näimme. On helppo luvata kehareille, eikä ne ymmärrä,71324Sinäkö se olit...
Vai olitko? Jostain kumman syystä katse venyi.. Ajelin sitten miten sattuu ja sanoin ääneen siinä se nyt meni😅😅... Lis01294Housuvaippojen käyttö Suomi vs Ulkomaat
Suomessa housuvaippoja aletaan käyttämään vauvoilla heti, kun ne alkavat ryömiä. Tuntuu, että ulkomailla housuvaippoihin11260Hyvää yötä ja kauniita unia!
Täytyy alkaa taas nukkumaan, että jaksaa taas tämän päivän haasteet. Aikainen tipu madon löytää, vai miten se ärsyttävä21210Lepakot ja lepakkopönttö
Ajattelin tehdä lepakkopöntön. Tietääkö joku ovatko lepakot talvella lepakkopöntössä ´vai jossain muualla nukkumassa ta21183