bepalen middelpunt cirkel gegeven drie 3d punten
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
bepalen middelpunt cirkel gegeven drie 3d punten
Hallo
Ik wil het middelpunt bepalen van een cirkel die door drie gegeven punten in 3d space gaan.
Ik heb op het internet gezocht naar een oplossing, maar ik kan de oplossing niet vinden.
Ik weet overigens ook de hoeken tussen de lijnen die van dit middenpunt lopen naar de drie
punten waar de cirkel doorheen moet gaan. Misschien maakt dit een simpeler oplossing mogelijk?
Ik hoop dat iemand me verder kan helpen.
Ik wil het middelpunt bepalen van een cirkel die door drie gegeven punten in 3d space gaan.
Ik heb op het internet gezocht naar een oplossing, maar ik kan de oplossing niet vinden.
Ik weet overigens ook de hoeken tussen de lijnen die van dit middenpunt lopen naar de drie
punten waar de cirkel doorheen moet gaan. Misschien maakt dit een simpeler oplossing mogelijk?
Ik hoop dat iemand me verder kan helpen.
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Is het volgende misschien een goed idee?
Ik denk twee lijnstukken tussen de punten. Dan bereken ik voor elk lijnstuk een vlak dat dit lijnstuk
als normaal vector heeft en dat door het midden van het lijnstuk gaat.
Dan bereken ik een derde vlak dat de drie punten bevat. De normaal kan ik berekenen met de twee normalen
van de andere vlakken, want dat derde vlak moet loodrecht op beide eerste vlakken staan.
Het snijpunt van deze drie vlakken is het gezochte punt.
Ik heb dan drie vlakken in de vorm van ax + by + cz = d.
Dus drie vergelijkingen met drie onbekenden. Nu kan ik echter op het internet alleen vinden hoe je dit
oplost als je getallen in vult. Door de matrix schoon te vegen zoals dat geloof ik heet.
Maar er moet toch ook een generieke methode zijn zodat je een formule krijg om dit voor willekeurige
punten op te lossen. Was dat niet iets met dot product en determinant en zo?
Kan iemand me daarmee verder opweg helpen?
Of is er een betere methode om het middelpunt te vinden?
Ik denk twee lijnstukken tussen de punten. Dan bereken ik voor elk lijnstuk een vlak dat dit lijnstuk
als normaal vector heeft en dat door het midden van het lijnstuk gaat.
Dan bereken ik een derde vlak dat de drie punten bevat. De normaal kan ik berekenen met de twee normalen
van de andere vlakken, want dat derde vlak moet loodrecht op beide eerste vlakken staan.
Het snijpunt van deze drie vlakken is het gezochte punt.
Ik heb dan drie vlakken in de vorm van ax + by + cz = d.
Dus drie vergelijkingen met drie onbekenden. Nu kan ik echter op het internet alleen vinden hoe je dit
oplost als je getallen in vult. Door de matrix schoon te vegen zoals dat geloof ik heet.
Maar er moet toch ook een generieke methode zijn zodat je een formule krijg om dit voor willekeurige
punten op te lossen. Was dat niet iets met dot product en determinant en zo?
Kan iemand me daarmee verder opweg helpen?
Of is er een betere methode om het middelpunt te vinden?
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Het idee is goed.
Het kan eenvoudiger maar eerst nog een vraag.
In welke vorm zoek je het antwoord? Ik bedoel, zoek je bijv. een formule waar je de coordinaten van de drie gegeven punten kunt invullen en dan bereken je met deze formule de positie van het middelpunt ?
Of ben je tevreden met de principe oplossing ?
Is dat laatste bij jouw het geval dan de volgende hint:
Bedenk dat door drie punten in R3 en plat vlak is gedefinieerd..
De cirkel is een vlakke figuur en omdat hij door de drie punten gaat ligt de cirkel dus ook in dit vlak.
Eigenlijk heb je nu een probleem in R2 .
Kun je nu zelf verder?
Het kan eenvoudiger maar eerst nog een vraag.
In welke vorm zoek je het antwoord? Ik bedoel, zoek je bijv. een formule waar je de coordinaten van de drie gegeven punten kunt invullen en dan bereken je met deze formule de positie van het middelpunt ?
Of ben je tevreden met de principe oplossing ?
Is dat laatste bij jouw het geval dan de volgende hint:
Bedenk dat door drie punten in R3 en plat vlak is gedefinieerd..
De cirkel is een vlakke figuur en omdat hij door de drie punten gaat ligt de cirkel dus ook in dit vlak.
Eigenlijk heb je nu een probleem in R2 .
Kun je nu zelf verder?
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Ik heb een methode nodig om het met software telkens weer te kunnen berekenen.
Ik heb het nu gedaan met die drie vlakken en het oplossen van 3 vergelijking met 3 onbekenden.
Maar ik ben altijd benieuwd of het efficienter zou kunnen.
Ik heb het nu gedaan met die drie vlakken en het oplossen van 3 vergelijking met 3 onbekenden.
Maar ik ben altijd benieuwd of het efficienter zou kunnen.
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Noem de drie punten
Het midden van lijnstuk AB noem ik C' en het midden van BC noem ik A'.
Het middelpunt van de driehoek is nu het snijpunt van
het vlak door A' loodrecht op BC met
het vlak door C' loodrecht op AB en
het vlak door A,B en C.
Het midden van lijnstuk AB noem ik C' en het midden van BC noem ik A'.
Het middelpunt van de driehoek is nu het snijpunt van
het vlak door A' loodrecht op BC met
het vlak door C' loodrecht op AB en
het vlak door A,B en C.
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Ja dat stelde ik zelf al voor. Maar nu nog een methode om dat zo efficient mogelijk te kunnen berekenen.
Re: bepalen middelpunt cirkel gegeven drie 3d punten
De punten A, B en C spannen een plat vlak op. In dat vlak ligt de cirkel en ook dus het middelpunt. Noem dit punt M.
We gaan ons eerst beperken tot dat vlak en daar en formule voor vinden.
Het efficiëntst is een vector voorstelling.
X = A + l.(B-A) + m.(C-A)
X is de plaatsvector van een willekeurig punt in het vlak
A, B en C zijn de plaatsvectoren van resp. de punten A, B en C
B-A is de verschilvector van B en A en ligt dus in het gezochte vlak
Dus B-A= (x2-x1,y2-y1,z2-z1).
C-A is de verschilvector van C en A en ligt dus ook in het gezochte vlak.
Kun je zelf nu C-A berekenen?
l en m zijn vrij te kiezen en bepalen een punt in het gezochte vlak.
Hoe moet je l en m kiezen opdat X= B, en hoe opdat X=C?
Als dit lukt dan volgende keer verder.
Gr. pgb
We gaan ons eerst beperken tot dat vlak en daar en formule voor vinden.
Het efficiëntst is een vector voorstelling.
X = A + l.(B-A) + m.(C-A)
X is de plaatsvector van een willekeurig punt in het vlak
A, B en C zijn de plaatsvectoren van resp. de punten A, B en C
B-A is de verschilvector van B en A en ligt dus in het gezochte vlak
Dus B-A= (x2-x1,y2-y1,z2-z1).
C-A is de verschilvector van C en A en ligt dus ook in het gezochte vlak.
Kun je zelf nu C-A berekenen?
l en m zijn vrij te kiezen en bepalen een punt in het gezochte vlak.
Hoe moet je l en m kiezen opdat X= B, en hoe opdat X=C?
Als dit lukt dan volgende keer verder.
Gr. pgb
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Laten we alvast verder gaan.
Het vlak door de punten A, B en C noemen we vlak V.
Nu moeten de waarden van l en m die horen bij het middelpunt M worden bepaald.
Maak zelf een tekening in het vlak V.
Teken de punten A, B en C. Teken de verbindingslijnen AB en AC. Noem de hoek tussen deze twee lijnen theta.
Het midden van AB is C', het midden van BC is B'.
De middelloodlijn op AB en die op BC snijden elkaar in het middelpunt M.
De lijn AB is ook de richting van de verschilvector B-A, evenzo de lijn AC heeft de richting van de verschilvector C-A
De afstand AB is de lengte van de verschilvector B-A, deze lengte noem ik p, dus p= |B-A|.
Evenzo q= |C-A|.
Het punt M volgt nu door vectorieel optellen. Dat wil zeggen we nemen l maal de verschilvector B-A en tellen daar vectorieel m maal C-A bij op.
Nu terug naar de tekening. Teken door M een lijn evenwijdig aan AB, deze lijn snijdt AC in het pint E.
De lengte van EM is nu l*p en de lengte van AE is nu m*q.
Met enige goniometrie kun je nu uit de tekening l en m berekenen.
l= (p-qcos(theta))/(2psin^2(theta)) en
m = (q-pcos(theta))/(2qsin^2(theta)).
Vul deze l en m in in de vergelijking: X = A + l.(B-A) + m.(C-A) en je krijgt X = M.
Voorbeeld :
A = (2,0,0)
B = (2,-1,2)
C = (2,1,2)
Dus B-A =(0,-1,2) en C-A = (0,1,2).
Dan p=|B-A| = 5^(1/2), evenzo q=5^(1/2)
Nu cos(theta) berekenen met
cos(theta) = (B-A).(C-A)/(pq) = 3/5. Let op, in de teller staat het 'in product' van de vectoren B-A en C-A.
Dan volgt l = 5/16 en ook m = 5/16.
X = M =(2,0,0) + 5/16*(0,-1,2) + 5/16*(0,1,2) = (2,0,5/4)
Verifieer zelf de oplossing.
pgb
Het vlak door de punten A, B en C noemen we vlak V.
Nu moeten de waarden van l en m die horen bij het middelpunt M worden bepaald.
Maak zelf een tekening in het vlak V.
Teken de punten A, B en C. Teken de verbindingslijnen AB en AC. Noem de hoek tussen deze twee lijnen theta.
Het midden van AB is C', het midden van BC is B'.
De middelloodlijn op AB en die op BC snijden elkaar in het middelpunt M.
De lijn AB is ook de richting van de verschilvector B-A, evenzo de lijn AC heeft de richting van de verschilvector C-A
De afstand AB is de lengte van de verschilvector B-A, deze lengte noem ik p, dus p= |B-A|.
Evenzo q= |C-A|.
Het punt M volgt nu door vectorieel optellen. Dat wil zeggen we nemen l maal de verschilvector B-A en tellen daar vectorieel m maal C-A bij op.
Nu terug naar de tekening. Teken door M een lijn evenwijdig aan AB, deze lijn snijdt AC in het pint E.
De lengte van EM is nu l*p en de lengte van AE is nu m*q.
Met enige goniometrie kun je nu uit de tekening l en m berekenen.
l= (p-qcos(theta))/(2psin^2(theta)) en
m = (q-pcos(theta))/(2qsin^2(theta)).
Vul deze l en m in in de vergelijking: X = A + l.(B-A) + m.(C-A) en je krijgt X = M.
Voorbeeld :
A = (2,0,0)
B = (2,-1,2)
C = (2,1,2)
Dus B-A =(0,-1,2) en C-A = (0,1,2).
Dan p=|B-A| = 5^(1/2), evenzo q=5^(1/2)
Nu cos(theta) berekenen met
cos(theta) = (B-A).(C-A)/(pq) = 3/5. Let op, in de teller staat het 'in product' van de vectoren B-A en C-A.
Dan volgt l = 5/16 en ook m = 5/16.
X = M =(2,0,0) + 5/16*(0,-1,2) + 5/16*(0,1,2) = (2,0,5/4)
Verifieer zelf de oplossing.
pgb
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Twee correcties op het voorlaatste bericht.
In regel 6 staat "........het midden van BC is B", dit moet zijn " ..........het midden van AC is B' "
Ook in regel 7 BC vangen door AC.
Sorry voor het ongemak.
pgb
In regel 6 staat "........het midden van BC is B", dit moet zijn " ..........het midden van AC is B' "
Ook in regel 7 BC vangen door AC.
Sorry voor het ongemak.
pgb
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Hallo pgbakker
Dat ziet er veel simpeler uit dan de 3 vlakken die ik wilde snijden, oftewel 3 vergelijkingen met drie onbekenden. Met Cramers rule kan ik daar M wel uit berekenen, maar is vrij complex. De methode van jouw ziet er veel simpeler uit!
Ik moet nog bestuderen hoe je aan de twee formules voor m en I kom. Bedoel je met sin^2(theta) de waarde
sin(theta)*sin(theta)?
En als je de waarde van cos(theta) hebt, gebruik je dan de inverse cos om theta te bepalen en die bij de sin(theta) in te vullen? Of is er hier een of ander goniometrisch trukje gebruikt?
Voor zover in iedergeval heel erg bedankt voor deze 'simpele' methode.
Dat ziet er veel simpeler uit dan de 3 vlakken die ik wilde snijden, oftewel 3 vergelijkingen met drie onbekenden. Met Cramers rule kan ik daar M wel uit berekenen, maar is vrij complex. De methode van jouw ziet er veel simpeler uit!
Ik moet nog bestuderen hoe je aan de twee formules voor m en I kom. Bedoel je met sin^2(theta) de waarde
sin(theta)*sin(theta)?
En als je de waarde van cos(theta) hebt, gebruik je dan de inverse cos om theta te bepalen en die bij de sin(theta) in te vullen? Of is er hier een of ander goniometrisch trukje gebruikt?
Voor zover in iedergeval heel erg bedankt voor deze 'simpele' methode.
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Dag,
Met sin^2(theta) wordt inderdaad sin(theta)*sin(theta) bedoeld.
Aangezien sin^2 ()+ cos^2 ()= 1 volgt simpel sin^2(theta) = 1 - cos^2(theta)
Overigens, wat is het praktijkprobleem waar je deze methode voor nodig hebt?
Gr. pgb
Met sin^2(theta) wordt inderdaad sin(theta)*sin(theta) bedoeld.
Aangezien sin^2 ()+ cos^2 ()= 1 volgt simpel sin^2(theta) = 1 - cos^2(theta)
Overigens, wat is het praktijkprobleem waar je deze methode voor nodig hebt?
Gr. pgb
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Het is voor een nieuw type motion platform waarbij het platform op drie punten vastgehouden wordt. De drie punten kunnen langs een cirkel bewegen. Ik moet gegeven die drie punten de stand en plaats van het motion platform kunnen bepalen voor de terug koppeling van de motoren.
Kun je aangeven hoe je aan de formules voor I en m kwam?
Kun je aangeven hoe je aan de formules voor I en m kwam?
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Berekening van l
Terug naar de figuur.
Trek vanuit B' de loodlijn op AB, deze snijdt AB in D.
Het gaat nu om de bepaling van de lengte van ME, deze lengte noem ik l*p.
De lengte van AB' is q/2. Dus lengte van AD is q/2*cos(theta) .
De lengte van AC' is p/2. Dus lengte van DC' is p/2 - q/2*cos(theta).
Dan is lengte van B'M : (p/2-q/2*cos(theta))/sin(theta).
Beschouw nu de driehoek B'ME. De lengte van ME is dan lengte B'M/sin(theta).
Conclusie: lengte ME is l*p = (p/2 -q/2*cos(theta))/sin^2(theta), of
l = (p - qcos(theta))/(2psin^2(theta)).
Evenzo vind je m
Gr. pgb
Terug naar de figuur.
Trek vanuit B' de loodlijn op AB, deze snijdt AB in D.
Het gaat nu om de bepaling van de lengte van ME, deze lengte noem ik l*p.
De lengte van AB' is q/2. Dus lengte van AD is q/2*cos(theta) .
De lengte van AC' is p/2. Dus lengte van DC' is p/2 - q/2*cos(theta).
Dan is lengte van B'M : (p/2-q/2*cos(theta))/sin(theta).
Beschouw nu de driehoek B'ME. De lengte van ME is dan lengte B'M/sin(theta).
Conclusie: lengte ME is l*p = (p/2 -q/2*cos(theta))/sin^2(theta), of
l = (p - qcos(theta))/(2psin^2(theta)).
Evenzo vind je m
Gr. pgb
-
- Vast lid
- Berichten: 25
- Lid geworden op: 15 okt 2012, 23:15
Re: bepalen middelpunt cirkel gegeven drie 3d punten
Hallo pgbakker,
Het duurde even voor ik weer tijd had hieraan verder te werken. Ik heb het bestudeerd en snap het helemaal. Ik heb het inmiddels toegepast en het werkt perfect. Veel sneller dan wat ik had.
Hartelijk dank voor de formules en de uitleg!
Het duurde even voor ik weer tijd had hieraan verder te werken. Ik heb het bestudeerd en snap het helemaal. Ik heb het inmiddels toegepast en het werkt perfect. Veel sneller dan wat ik had.
Hartelijk dank voor de formules en de uitleg!