/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
krydser en vektor denne trekant?
Fra : Janus


Dato : 21-02-03 10:06

Hvad er den hurtigste måde at se om en vektor givet ved et start- og et
slut-punkt krydser en trekant givet ved et hjørnepunkt og to vektorer?

Min tanke går først på at beregne planets ligning for trekanten og sætte
start og slut punkterne for vektoren ind i ligningen. Hvis resultatet er
forskelligt fortegn for de to punkter, så skæres planet - ellers gør det
ikke.

Nu skal jeg så finde punktet hvor vektoren skærer planet. Hm.. hvordan gør
jeg det?

Og til slut skal jeg se om dette punkt er indenfor trekanten.
Det kan vel gøres ved at beregne vinklen mellem to kanter i et hjørne og
sammenligne denne med vinklen mellem den ene kant og en vektor fra hjørnet
til skæringspunktet mellem plan og vektor.
Hvis vinklen til skæringspunktet er større, så er den udenfor. Dette check
laves for to hjørner og hvis det ikke fejler for nogen af dem, så er punktet
indenfor.

Er der eventuelt en mere simpel generel måde at gøre det på?







 
 
Carsten Svaneborg (21-02-2003)
Kommentar
Fra : Carsten Svaneborg


Dato : 21-02-03 12:30

Janus wrote:
> Hvad er den hurtigste måde at se om en vektor givet ved et start- og et
> slut-punkt krydser en trekant givet ved et hjørnepunkt og to vektorer?

Udregn punktet i midten af trekanten, og udregn den korteste afstand
mellem linien og dette punkt. Er denne større end den største afstand
mellem trekantens midtpunkt og dens hjørner så går linien ikke mellem
trekanten.

Er den mindrer så kan linien krydse eller ikke.

Så ville jeg gøre som dig, finde ligningen for det plan trekanten
ligger i, og finde det (hvis det eksistere) punkt hvor linien
skærer planen.

Du kan så opfatte de tre sider i din trekant som bestående af
3 vektorer, der går fra hoved til hale af den foregående.

Hvis punktet ligger til højre for alle vektorer eller til venstre
for alle vektorer, så ligger det inde i trekanten. For at udregne det
kan du projicere punktet ind på den ortogonale vektor til hver af
de tre sider, denne projektion skal have det samme fortegn for alle.

--
Mvh. Carsten Svaneborg
http://www.softwarepatenter.dk


Janus (23-02-2003)
Kommentar
Fra : Janus


Dato : 23-02-03 09:06

> Hvis punktet ligger til højre for alle vektorer eller til venstre
> for alle vektorer, så ligger det inde i trekanten. For at udregne det
> kan du projicere punktet ind på den ortogonale vektor til hver af
> de tre sider, denne projektion skal have det samme fortegn for alle.

Og den ortogonale vektor er givet ved krydsproduktet mellem trekantens side
og normalvektoren?
God ide! Det må da være nemmere end at beregne to parvis vinkler og
sammenligne størelse, som jeg tidligere overvejede.
Takker.



Carsten Svaneborg (24-02-2003)
Kommentar
Fra : Carsten Svaneborg


Dato : 24-02-03 15:05

Janus wrote:
> Og den ortogonale vektor er givet ved krydsproduktet
> mellem trekantens side og normalvektoren?

Sådan kan du godt beregne det.

Jeg ville nok definere en af vektorene i trekanten som
værende parallel med x aksen i et 2D koordinatsystem.
Den ortogonale er y aksen. Så kan du udtrykke de andre vektorer i
2D koordinater i planen, ved at tage prikprodukt er, og så
blot tage den ortogonale som (y,-x) i planen, og så indsætte
3D vektoren svarende til ex og ey vektorene.

--
Mvh. Carsten Svaneborg
http://www.softwarepatenter.dk


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408936
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste