1 van 1
kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 13:14
door Swets
voor een computer programma zoek ik eigenlijk iets om te zien of 2 lijnen elkaar snijden...
dus ik geef x1,y1-x2,y2 voor de eerste lijnen en een x3,y3-x4,y4 en nu wil ik op een of andere manier willen weten of die lijnen elkaar kruisen of niet...
ik hoef niet te weten waar ze kruisen....
iemand misschien iets van info... of een voorbeeldtje...
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 13:26
door klazon
Gaat het over snijden of over kruisen?
Kruisen veronderstelt een 3-dimensionaal systeem.
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 15:54
door Back2Basics
Het zal wel snijden wezen.
bepaal het exacte verschil tussen de verschillende punten van de beide lijnen:
((x2-x1)/(y2-y1) - (x4-x3)/(y4-y3)) = d
Als d exact 0 is, dan zijn de lijnen parallel, en snijden ze elkaar niet.
Is d niet exact gelijk aan 0, dan zullen de lijnen elkaar ergens snijden.
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 17:50
door Emveedee
Merk wel op dat de vergelijking van B2B ook 0 geeft als het 2 dezelfde lijnen zijn!
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 20:57
door Swets
nou wat ik wil weten of 2 lijnen elkaar raken... dat is dus wat ik eigenlijk wil weten....
maar ik weet niet hoe die lijnen liggen.... dus ze kunnen elkaar kruisen... maar ze kunnen ook een meter uit elkaar liggen....
dus eigenlijk ... je teken 2 willekeurige lijnen in een assenstelsel en ik weet ook niet of de x1,y1-x2,y2 lijn bijvoorbeeld dichter bij de oorsprong staat of niet... dus ik weet alleen begin, eind van beide lijnen....
dus het enigste wat ik weten wil is of ze elkaar (dus over hun volle lengte) ergens raken... 1= ja...0 is nee....
maar niet ergens in het verlengde gaan ze elkaar ergens een keertje raken...
2 lijnen... raken ze elkaar ja of nee....
ik hoef niet te weten waar ze elkaar raken... alleen of ze elkaar raken....
nee allemaal 2D... dus in het platte vlak... alleen x,y
en nu zoek ik een beetje slimme functie...
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 21:26
door Professor Puntje
Het ziet ernaar uit dat je wil weten of de lijnstukken AB en CD in het platte xy-vlak wel of niet gemeenschappelijke punten hebben, waarbij is gegeven dat:
A = (x1,y1)
B = (x2,y2)
C = (x3,y3)
D = (x4,y4)
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 21:32
door Swets
ja... dat bedoel ik....
Re: kruisen 2 lijnen?
Geplaatst: ma 06 nov 2017, 21:48
door Professor Puntje
Grappig probleem! Is er iets bekend over x1 en x2 en over x3 en x4? Het zou wel handig zijn als we er vanuit mogen gaan dat x1 ≤ x2 en x3 ≤ x4 .
Re: kruisen 2 lijnen?
Geplaatst: di 07 nov 2017, 00:24
door Swets
nou het zou het leukste zijn als het verhaaltje het zelf uit zoek....
dus iets van if x1>x3 then .... enz enz
het mag ook gewoon in mensen taal....
Re: kruisen 2 lijnen?
Geplaatst: di 07 nov 2017, 15:00
door Back2Basics
a) Bepaal eerst de vergelijkingen van de twee lijnen waar ieder lijnstuk deel van uit maakt.
b) Kijk of er een snijpunt is; als de rictingscoefficienten gelijk zijn, is er geen snijpunt, of de lijnen vallen samen.
c) Als er een snijpunt is, kijk dan of dat op lijnstuk 1 ligt. (of op lijnstuk 2).
Bij a):
y=mx+n, waarbij m=(y2-y1)/(x2-x1)
n kun je bepalen door (x1, y1) in te vullen (of (x2, y2)), en dan uit te rekenen.
Analoog voor de andere lijn.
bij b):
kijk of de m bij de eerste vergelijking ongelijk is aan de m van de tweede vergelijking. Als dat het geval is, dan
bij c):
stel de twee vergelijkingen aan elkaar gelijk, en los op. Dit levert het snijpunt (xs, ys) op.
Kijk vervolgens of x1<xs<x2
Zo ja: de lijnstukken snijden elkaar.
ps: houd er rekening mee dat er ook vertikale lijnen bestaan. In dat geval is x1=x2, of x3=x4. De vergelijking van een dergelijke lijn is: x=c