Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Kulman ratkaisu

epe07 [26.10.2016 19:57:27]

#

Hei!

Voi nyt vaikuttaa vähän tyhmältä tämä kysymys...
Mutta mulla on siis pelaaja joka pystyy kääntymään 360 astetta ja näkökenttä on vaihteleva.
Tarkoituksena olisi tarkistaa onko jääkö piste X kulman taakse niin ettei se ole näkökentässä. Uskoisi olevan helppoa mutta ei se jos niitä ole koulussa opetellut kunnolla (tai "yhtään")

Jos jollakin sattuu olemaan tylsää niin pls help.

Kiitos :D

fergusq [26.10.2016 20:37:28]

#

Jos pisteen koordinaatit ovat (x,y) suhteessa pelaajaan (pelaaja on origossa) on piste näkökentässä, jos

|θ - α| < β tai |θ - α + 360°| < β tai |θ - α - 360°| < β
missä
θ = y > 0 ? acos(x/h) : 180° + acos(-x/h)
h = sqrt(x^2 + y^2)
α = kulma, johon pelaaja katsoo
β = näkökentän laajuus

Kaavat saattavat olla aivan pielessä ja lisäksi on mahdollista, että yksinkertaisempikin tapa löytyy. Väsäsin nopeasti.

Jaska [26.10.2016 21:27:51]

#

Teet janan, jonka päätepisteet ovat pelaaja ja X ja tarkistat, leikkaako jana kulman kylkiä.

Metabolix [26.10.2016 21:46:45]

#

Kysymyksestä vähän epäselväksi jäi, mitä tarkoittaa ”kulman taakse”. Ainakin nyt fergusq ja Jaska ovat käsittäneet tämän eri tavoin. Eli tarkoititko ”pelaajan taakse” vai ”nurkan taakse”?

Jos tarkoitit ”pelaajan taakse”, fergusq:n kaavasta ei paljon helpommaksi pääse. Vastaavan laskun voi tehdä myös vektorien pistetulolla: Otetaan vektori A pelaajasta eteenpäin ja vektori B pelaajasta tutkittavaan pisteeseen, normalisoidaan molemmat, lasketaan pistetulo ja siitä arkuskosini. Saadaan kulma pelaajan katsontasuunnan ja tarkasteltavan pisteen välillä. Voidaan verrata tätä pelaajan näkökentän leveyteen.

Vastaus

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

Tietoa sivustosta