Osuuko piste kolmioon.

aloittelijaa

Teen tässä aikani kuluksi peliä ja olisi sellainen ongelma, että pitäisi tehdä "collision detection".

Eli laskea osuuko piste kolmioon, jonka nurkkapisteet tiedetään ja ovat 3 ulotteisina vektoreina, kuten myös itse pisteen sijainti.

Sen ei saa olla ihan tarkka (koska piste liikkuu hyppäyksittäin kun aikaa porrastetaan eteenpäin, jolloin se tuskin osuu koskaan ihan juuri kohdalle), vaan riittää kun tietää, jos piste tulee tietylle etäisyydelle kolmion pinnasta.

8

<50

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kkkkrrrrrr

      Milloin piste (a,b) on monikulmion sisällä? Määrätään niiden monikulmion sivujen lukumäärä, jotka leikkaavat puolisuoraa x = a, y > b Jos se on pariton luku, niin piste on monikulmion sisällä. Ongelmana on vielä tapaus, missä puolisuora kulkee jonkin kulmapisteen kautta (tai on hyvin lähellä sitä). Silloin voisi käyttää suuntaan kulkevaa puolisuoraa.

    • kukkuuluuuruuu

      Kertoisitko mikä on ongelmasi? Oletatko, että täällä joku avulias Aatu tekee pelin puolestasi ajankulukseen?

      • aloittelijaaa

        Oletan, että joku joka on kiinnostunut tällaisista ongelmista, tietää tähän fiksun ratkaisun. Yleensä ihmiset, jotka ovat kiinnostuneet jostakin asiasta, jakavat tietoansa mielellään. Niin minä ainakin teen, ihan vahingossakin.

        Kysy minulta mitä vaan vaikka pelistäni, jaan kyllä mielelläni mitä olen tehnyt ja miten, jos haluat tehdä perässä . . .


    • Näin_sen_tekisin

      Nopein ja yksinkertaisin lienee laatikkotarkastelu. Siinä ensin määrität kolmiolle koordinaattiakseleiden suuntaisen minimilaatikon, mikä onnistuu helposti min-max-testeillä. Sen jälkeen tutkit, onko tarkasteleva piste laatikon sisällä. Kaikkeen tähän tarvitaan pelkkiä vertailuja, laskea ei tarvitse mitään.

      Algoritmin ongelmana on se, että sen hyväksymisetäisyys vaihtelee kolmion koon ja aseman mukaisesti, mutta olet etsimässäkin likimenetelmää.

    • Ruudinsekoittaja
    • Ohman

      Kolmion nurkkapisteiden paikkavektorit olkoot R1,R2 ja R3.Näiden kautta kulkeva taso olkoon

      (1) ax by c z = d eli (A.R) = d (= (A,R1) = (A,R2) = (A,R3))

      Jotta tuo liikkuva piste P sijaitsisi haluamallasi tavalla, sen tulee olla sellaisen kolmikulmaisen laatikon sisällä jonka laatikon pohja ja katto ovat tason 1 suuntaiset ja näiden muodostamat tasot ovat etäisyyksillä e1 ja e2 tasosta (1). Lienee tarkoitus valita e1 = e2 = e.

      Nämä tasot ovat

      (2) ax by cz = d f ja (3) ax by cz = d - f (f > 0).

      Tasojen (2) ja (3) etäisyys tasosta (1) on e =f /sqrt(a^2 b^2 c^2).Pisteen P pitää olla korkeintaan etäisyydellä e tasosta (1). Pelissä määritellään kuinka suuri e saa korkeintaan olla. Ensin siis tarkastetaan, että liikkuva piste P toteuttaa tämän ehdon.

      Tason (1) yhtälö saadaan siitä, että sen(eräs) normaali on vektori A = ai b j c k.

      Toisaalta normaali on (R2 - R1) x (R3 - R1) joten a,b ja c ovat laskettavissa.
      Toinen yksikkönormaali on N = 1/ sqrt(a^2 b^2 c^2) (a i b j c k) ja sekä N että -N ovat yksikkönormaaleja.Ja d = (A,R1) = (A,R2) = (A,R3)

      Pisteen P paikkavektori olkoon R(P). Pisteen P kautta kulkeva tason (1) suuntainen taso on

      (4) (A,R) = (A,R(P))

      joten P:n etäisyys tasosta (1) on g = l d - (A,R(P)) l / sqrt/(a^2 b^2 c^2). Osuma tulee kun

      (5) g <= e.

      Mutta osumaan tarvitaan myös että P on tuon laatikon sisällä myös pohjan (ja kannen) suunnassa.Jos nyt g toteuttaa ehdon (5) niin pisteen R(P) /- g N, joka on siis P:n projektio tasolle (1), ja jossa tai - merkki valitaan niin että normaali osoittaa tason (1) suuntaan pisteestä P, on oltava alkuperäisen kolmion sisällä.

      Kolmion kärjet olivat R1,R2 ja R3, joten täytyy olla

      (6) R(P) / - g N = t1 R1 t2 R2 t3 R3

      missä barysentriset koordinaatit t(i) ovat ei-negatiiviset ja t(1) t(2) t(3) = 1.

      Jos P toteuttaa ehdot (5) ja (6) niin osuma tuli.

      Ohman

      • martta00

        näinhän se suunnilleen menee..


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Heikki Silvennoinen petti vaimoaan vuosien ajan

      Viiden lapsen isä Heikki kehuu kirjassaan kuinka paljon on pettänyt vaimoaan vuosien varrella.
      Kotimaiset julkkisjuorut
      150
      2387
    2. Taasko se show alkaa

      Koo osottaa taas mieltään
      Ikävä
      27
      1958
    3. Miksi ihmeessä nainen seurustelit kanssani joskus

      Olin ruma silloin ja nykyisin vielä rumempi En voi kuin miettiä että miksi Olitko vain rikki edellisestä suhteesta ja ha
      Ikävä
      23
      1938
    4. Persut nimittivät kummeli-hahmon valtiosihteeriksi!

      Persujen riveistä löytyi taas uusi törkyturpa valtiosihteeriksi! Jutun perusteella järjenjuoksu on kuin sketsihahmolla.
      Perussuomalaiset
      85
      1730
    5. Onko ministeri Juuso epäkelpo ministerin tehtäviensä hoitamiseen?

      Eikö hänellä ole kompetenttia hoitaa sosiaali- ja terveysministetin toimialalle kuuluvia ministerin tehtäviä?
      Perussuomalaiset
      67
      1520
    6. Sakarjan kirjan 6. luku

      Jolla korva on, se kuulkoon. Sain profetian 22.4.2023. Sen sisältö oli seuraava: Suomeen tulee nälänhätä niin, että se
      Profetiat
      20
      1296
    7. Avaa sydämesi mulle

      ❤ ❤❤ Tahdon pelkkää hyvää sulle Sillä ilmeisesti puhumalla Avoimesti välillämme Kaikki taas selviää Kerro kaikki, tahdo
      Ikävä
      38
      1190
    8. Söpö lutunen oot

      Kaipaan aina vaan, vaikkakin sitten yksipuolisesti.
      Ikävä
      11
      1188
    9. Elia tulee vielä

      Johannes Kastaja oli Elia, mutta Jeesus sanoi, että Elia tulee vielä. Malakian kirjan profetia Eliasta toteutuu kokonaan
      Helluntailaisuus
      37
      1183
    10. Nellietä Emmaa ja Amandaa stressaa

      Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k
      Isovanhempien jutut
      10
      1167
    Aihe