Behöver en formel för en studsboll.

Discussion in 'Frågor, support och diskussion' started by parveln, Nov 28, 2010.

  1. parveln

    parveln Kid Droid Medlem

    Joined:
    Sep 23, 2010
    Messages:
    32
    Likes Received:
    1

    MINA ENHETER

    Håller för tillfället på att skapa ett spel med Appinventor, och jag har lite problem med att få en "boll" att studsa på rätt sätt längs väggarna.

    Alltså om en boll slår in i en vägg med när den har riktning 0 ska den få 180.
    Om den däremot slår in i en vägg när den har riktning 225 ska den få 135 i riktning, någon som har ett förslag på formel eller metod för att lösa detta?
     
  2. ThePatrik

    ThePatrik Youth Droid Medlem

    Joined:
    Jun 3, 2010
    Messages:
    248
    Likes Received:
    28

    MINA ENHETER

    Summan av infallsvinkeln och utfallsvinkeln ska vä bli 360?
    Och om infallsvinkeln är 0 blir det 180, alltså rakt motsatt.
     
  3. parveln

    parveln Kid Droid Medlem

    Joined:
    Sep 23, 2010
    Messages:
    32
    Likes Received:
    1

    MINA ENHETER

    Hehe. löste mitt problem genom en förbestämd "trigger" kallad bounce.

    Infallsvinkeln plus utfallsvinkeln kan bli betydligt mer. Om bollens vinkel in i väggen är 355 grader borde utfallsvinkeln bli 175 grader. Alltså 530 grader totalt.
     
  4. drewi

    drewi Teen Droid Medlem

    Joined:
    Feb 6, 2010
    Messages:
    305
    Likes Received:
    10
    Telefon:
    Pixel 2 XL

    MINA ENHETER

    Telefon:
    Pixel 2 XL
    Nu svammlar du väl? om infallsvinkeln är 355 så ska utfallsvinkeln bli 5
     
  5. Zooklubba

    Zooklubba Android Medlem

    Joined:
    Jul 10, 2010
    Messages:
    6 448
    Likes Received:
    2 199

    MINA ENHETER

    Vad är det för en vägg egentligen?

    En rak vägg har en total vinkel på 180 grader, så faller den in på 90 grader bör den åka ut på 90 grader.
    Det blir väl lite mer intressant att leka till dämpningar och sådant så den får en bra kurva.


    Är väl bara att låta väggen alltid ha 0-180 grader på sidan som bollen befinner sig på?
     
  6. henca

    henca Senior Droid Medlem

    Joined:
    Dec 30, 2009
    Messages:
    1 337
    Likes Received:
    213

    MINA ENHETER

    Om spelet är tvådimensionellt och alla väggar dessutom är antingen horisontella eller vertikala är det nog enklare att tänka i hastighetskomposanter än i vinklar. Då bollen träffar en horisontell vägg behåller den sin hastighetskomposant i x-led men hastighetskomposanten i y-led byter tecken.

    Om spelet har väggar i mer avancerade vinklar eller om bollen kan studsa i tre dimensioner är det nog enklast att börja räkna på vektorer.

    Om bollen då har ingångshastigheten (x, y, z) och väggen har vormalvektorn (u, v, w) blir nog utgångshastigheten något i stil med

    (x, y, z) + 2 * (x , y ,z ) * (u, v, w)

    Nu är jag lite trött och jag har bara funderat lite för att komma fram till formeln ovan, därför bör jag nog skicka med en stor brasklapp att den kanske inte är korrekt.

    m v h Henrik
     
  7. parveln

    parveln Kid Droid Medlem

    Joined:
    Sep 23, 2010
    Messages:
    32
    Likes Received:
    1

    MINA ENHETER

    om det är en horisontell vägg ja, men annars borde det bli ( jag tänkte lite fel ) 185 grader.


    För tillfället kan bollen studsa på linjer som har vinkeln 90 och vinkeln 0/180.
    Håller dock på att fösöka klura på en fysisk modell eller vad man ska kalla det, typ att bollen tappar fart när den åker upp och sluligen börjar åka ner, men också att den t.ex förlorar fart vid studs.

    Får se om det går på något sätt med app inventor.
     
    Last edited: Nov 29, 2010
  8. Zooklubba

    Zooklubba Android Medlem

    Joined:
    Jul 10, 2010
    Messages:
    6 448
    Likes Received:
    2 199

    MINA ENHETER

    Ska du hålla på att bygga ut den med mer och mer avancerade fysikaliska egenskaper bör du nog redan nu tänka på det som henca sade och använda vektorer. Känns att det blir lättare att lägga in studsförluster osv då.
     
  9. henca

    henca Senior Droid Medlem

    Joined:
    Dec 30, 2009
    Messages:
    1 337
    Likes Received:
    213

    MINA ENHETER

    Om man är på det humöret går det ju naturligtvis krångla till det hur mycket som helst. Den enklaste delen är nog att ta hänsyn till en studskoefficient som minskar farten efter en studs. Den svåraste delen är nog att börja ta hänsyn till skruvade bollar. Sen finns det ju andra fenomen som corioliseffekten men dem kan du nog bortse från.

    m v h Henrik
     
  10. drewi

    drewi Teen Droid Medlem

    Joined:
    Feb 6, 2010
    Messages:
    305
    Likes Received:
    10
    Telefon:
    Pixel 2 XL

    MINA ENHETER

    Telefon:
    Pixel 2 XL
    Ta en titt under kaströrelse här http://www.kursnavet.se/kurser/fy1201/fy1201w/download/pdf/Fysiktabell.pdf

    Jag har själv gjort ett spel där man skjuter iväg en projektil i en kaströrelse, använder mig då av formlerna för att ta reda på x och y och ritar ut projektilen på motsvarande koordinat på skärmen. Vid varje studs så gör jag ett nytt kast med farten reducerad med 35% genom att multiplicera v_0 med 0.65

    Tänk bara på att du måste isåfall göra om vinkeln till radianer för att det ska fungera
     
  11. parveln

    parveln Kid Droid Medlem

    Joined:
    Sep 23, 2010
    Messages:
    32
    Likes Received:
    1

    MINA ENHETER

    till att börja får man väl ta och tacka för alla svar :) sjukt bra aktivitet på det här forumet :D

    drewi: Finns spelet på market så man kan testa? Och kan din boll studsa på en 180 graders skiva endast eller även t.ex. väggar med 90 graders lutning?

    Någon som vet om man dessutom kan definera golv / väggar på en canvas i Appinventor?

    Teoretiskt sätt borde man kunna se vid vilken Y och X väggen / golvet är men eftersom det verkar skilja på olika modeller och att appinventor inte verkar fixa att göra en variable av pixelbredden/höjden av en canvas så... :/
     
    Last edited: Nov 29, 2010
  12. drewi

    drewi Teen Droid Medlem

    Joined:
    Feb 6, 2010
    Messages:
    305
    Likes Received:
    10
    Telefon:
    Pixel 2 XL

    MINA ENHETER

    Telefon:
    Pixel 2 XL
    Mitt spel är inte helt klart ännu så finns inte på market, men det är ungefär som nanaca crash http://www.geocities.jp/lledoece/nanaca-crash.html och man studsar alltså bara på en plan mark

    Kan inte svara på några frågor om appinventor
     
  13. Json_81

    Json_81 Adult Droid Medlem

    Joined:
    Sep 1, 2009
    Messages:
    540
    Likes Received:
    67

    MINA ENHETER

    En vägg är alltid 180 grader (eller ja, så länge den är rak).
    Fast appinventorn kanske inte räknar i förhållande till väggen?
     
  14. parveln

    parveln Kid Droid Medlem

    Joined:
    Sep 23, 2010
    Messages:
    32
    Likes Received:
    1

    MINA ENHETER

    Hehe, kanske lite felformulerat :P en bild förklarar istället,

    http://img508.imageshack.us/i/screenlx.png/
    hmm, lyckades inte få in den i bildformat... får bli en länk.