Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Leikkaavatko kaksi janaa?

Gaxx [01.12.2004 22:11:33]

#

Elikkä taas on ongelmia tuon matematiikan sovelluksessa ohjelmointiin. Tälläkertaa tahtoisin saada selville, leikkaavatko kaksi janaa toisensa. Itse leikkauspiste ei ole tarpeellinen.

Olen yrittänyt ratkaista ongelmaa laskemalla janojen suuntaisten suorien leikkauspisteet ja sitten siitä katsoa, että onko leikkauspiste kummallakin janalla. En ole kuitenkaan suuresta etsinnästä ja pähkäilystäni huolimatta (taaskaan) onnistunut löytämään ratkaisua, enkä tiedä edelleenkään kuinka laskisin suorien leikkauspisteet(osaan kyllä laskea paperilla, mutta koodiin se on hankala soveltaa). Eli apu olisi tervetullutta!

tsuriga [01.12.2004 23:40:23]

#

ax + b = cx + d
=> x * (a - c) = d - b
=> x = (d - b) / (a - c)
missä a ja c ovat x:n kertoimia ja b ja d vakioita (suoran peruskaavan mukaan). Tuosta saa kohtauspisteen x:n selville jos yhtälöt kohtaavat ja vähintään toisessa suorassa on x:n kerroin. Ilman x:n kerrointa kaava heittää nollaa tai päällekkäisille viivoille erroria. Saattaapa siinä muitakin ehdollisuuksia olla, jotka ei heti tule mieleen. y-koordinaatin saa sijoittamalla x:ään kohtauspisteen arvon, ei väliä kumman suoran kaavaan, koska piste on sama. Toimii ainakin 2x+2=-2x-2 -yhtälön kanssa :)

Gaxx [02.12.2004 17:00:50]

#

Ja kuten arvasin, se ei ollut vaikeaa kun vain hoksaa yrittää oikealla tavalla. Kiitos!

msdos464 [02.12.2004 17:46:58]

#

"tahtoisin saada selville, leikkaavatko kaksi janaa toisensa."

Itelle tuli heti mieleen 3d ympäristö, jossa kysymys olisi ollut vähän haasteellisempi. :)

eikös muuten olisi kätevämpää käyttää hyödyksi janan päätepisteiden koordinaatteja?
jos leikkauskohdalla ei ole niin väliä.. on varmaan myös nopeampaa.

Gaxx [02.12.2004 18:08:45]

#

msdos464 kirjoitti:

eikös muuten olisi kätevämpää käyttää hyödyksi janan päätepisteiden koordinaatteja?
jos leikkauskohdalla ei ole niin väliä.. on varmaan myös nopeampaa.

No joo, jos kerrot kuinka se käy käytännössä.

Edit: Ei tarvitse enää, sain itse ratkaistua, kuinka se tehdään.

Vastaus

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

Tietoa sivustosta