\require{AMSmath}
WisFaq - de digitale vraagbaak voor wiskunde en wiskunde onderwijs


Printen

Omliggende driehoek van punt gegeven 2 snijlijnen

- ik weet de coordinaten van 2 rechten AB en CD
- ik weet dat AB en CD elkaar snijden in punt X
- ik weet de coordinaten van een willekeurig punt P
Nu zoek ik een formule om te bepalen binnen welke driehoek/vlak punt P ligt... zonder allemaal losse vergelijkingen te hoeven maken. Dus ik zoek de coordinaten van de driehoek ADX of ACX of CBX of BDX.

Floris
Iets anders - maandag 19 juli 2004

Antwoord

We gaan uit van de punten A(a1,a2), B(b1,b2), C(c1,c2) en D(d1,d2) en punt P(p1,p2)
Het snijpunt X(x1,x2) van AB en CD kunnen we als volgt berekenen:
m1=a2-b2
m2=b1-a1
n1=c2-d2
n2=d1-c1
i=m1*a1+m2*a2
j=n1*c1+n2*c2
det=n2*m1-m2*n1
x1=(n2*i-m2*j)/det en
x2=(m1*j-n1*i)/det

Als we nu aannemen dat X op de lijnstukken AB en CD ligt dan kunnen we als volgt te werk gaan:

We gaan nu een coordinaten transformatie uitvoeren zo, dat punt X in de oorsprong komt te liggen.
De vectoren r=XB en s=XD beschouwen we nu als basis van het vlak. Dan geldt:
r1=b1-x1
r2=b2-x2
s1=d1-x1
s2=d2-x2

We bekijken de vector pa=XP
pa1=p1-x1
pa2=p2-x2


We gaan nu pa schrijven als lineaire combinatie van r en s, dus pa=labda*r+mu*s.
De getallen labda en mu berekenen we als volgt:

det=r1*s2-r2*s1
labda=(pa1*s2-pa2*s1)/det
mu=(pa2*r1-pa1*r2)/det.

Er geldt nu:
Als labda0 dan is B een hoekpunt van de gezochte figuur.
Als labda0 dan is A een hoekpunt van de gezochte figuur.
Als mu0 dan is D een hoekpunt van de gezochte figuur.
Als mu0 dan is C een hoekpunt van de gezochte figuur.


Helaas is het natuurlijk niet zo dat elk willekeurig punt P binnen een van de driehoeken ACX, BCX, ADX of BDX ligt. Het kan zijn dat P buiten vierhoek ACBD ligt.
Dit kunnen we als volgt nagaan:
We berekenen de lengtes van de vectoren XA, XB, XC en XD als volgt
lengtea=Ö((a1-x1)^2+(a2-x2)^2)
lengteb=Ö(r12+r22)
lengtec=Ö((c1-x1)2+(c2-x2)2)
lengted=Ö(s12+s22)
Als labda0 dan labda=labda*lengteb/lengtea
Als mu0 dan mu=mu*lengted/lengtec.
Als nu |labda|+|mu|1 dan ligt P binnen vierhoek ACBD dus binnen een van de driehoeken ACX, BCX, ADX of BDX.


woensdag 11 augustus 2004

©2001-2024 WisFaq