Toon posts:

[Wiskunde] normaal op vector

Pagina: 1
Acties:
  • 164 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
bestaat er zoiets als een normaal op een vector; bij een lijn (2D) wissel je de richtingscoefficienten om en maak je een van beide negatief... ik zit nu even te puzzelen of dit opgaat voor een vector (3D) volgens mij niet...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

P&W -> W&L

Doet iets met Cloud (MS/IBM)


  • moser
  • Registratie: Februari 2002
  • Laatst online: 26-03-2022

moser

And then there was silence

Dat zal niet wat je hebt in 3D een normaaloppervlak dat loodrecht op je bector staat

je kan wel een normaal van een oppervlak nemen

A busstation is where a bus stops,a trainstation is where train stops
On my desk, I have a workstation,
... No further comment.


  • rollebol
  • Registratie: Mei 2000
  • Laatst online: 22-08-2025
In 3D kan een lijn wel loodrecht op een vlak staan, maar niet loodrecht op een lijn. Maar wat wil je precies?

Verwijderd

Topicstarter
rollebol schreef op 15 December 2002 @ 14:24:
In 3D kan een lijn wel loodrecht op een vlak staan, maar niet loodrecht op een lijn. Maar wat wil je precies?
ik wil een lokaal assen-stelsel op een vector berekenen.
nu doe ik dat met een willekeurig punt die ik vervolgens met wat hoekberekeningen haaks op vector zet. probleem daarbij is dat bij elke vector de richting - lokale assen - anders georienteerd staat.

  • Supersheep40
  • Registratie: Februari 2001
  • Niet online
Als het inproduct van twee vectoren 0 is, heb je een normaal. Dit geldt voor alle vectoren. Je kunt dus een normaal vinden door je vector met een andere te vermenigvuldigen zodat je op 0 uitkomt.

Verwijderd

Topicstarter
gommaar schreef op 15 December 2002 @ 14:28:
Als het inproduct van twee vectoren 0 is, heb je een normaal. Dit geldt voor alle vectoren. Je kunt dus een normaal vinden door je vector met een andere te vermenigvuldigen zodat je op 0 uitkomt.
ja klopt! ware het niet dat ik bedacht had dat het wel handig zou zijn als ik op basis van de coordinaten van de vector een normaal kon berekenen. nu gebruik ik een willekeurige positie en wat hoek berekeningen om deze normaal te vinden.

Verwijderd

ik wil een lokaal assen-stelsel op een vector berekenen.
nu doe ik dat met een willekeurig punt die ik vervolgens met wat hoekberekeningen haaks op vector zet. probleem daarbij is dat bij elke vector de richting - lokale assen - anders georienteerd staat.
Dat is een methode, maar het probleem dat je dan waarschijnlijk hebt is dat die haakse vector niet op een "nette" manier (d.w.z. continu en niet al te wild-verspringend) van de eerste vector afhangt. Dit kun je helaas niet oplossen.

Wat in de praktijk op zich wel redelijk werkt, is als je als "willekeurige" vector iets neemt wat waarschijnlijk nooit gelijk is aan jouw punt.
Bijvoorbeeld: (pi , e , 0.jetelefoonnummer) :)

Verwijderd

Topicstarter
Verwijderd schreef op 15 december 2002 @ 16:00:
[...]

Dat is een methode, maar het probleem dat je dan waarschijnlijk hebt is dat die haakse vector niet op een "nette" manier (d.w.z. continu en niet al te wild-verspringend) van de eerste vector afhangt. Dit kun je helaas niet oplossen.

Wat in de praktijk op zich wel redelijk werkt, is als je als "willekeurige" vector iets neemt wat waarschijnlijk nooit gelijk is aan jouw punt.
Bijvoorbeeld: (pi , e , 0.jetelefoonnummer) :)
klopt in die zin dat ik in principe voor de lokale y-as de waarde 0.0,1.0,0.0 gebruik. wanneer de betreffende vector parallel loopt aan de y-as (rcx==0.0 && rcz==0.0)
dan 'jitter' ik de eind positie van de vector een beetje zodat dit niet meer opgaat; niet echt wenselijk vandaar deze post om te achterhalen of er wellicht andere opties zijn.

  • bankrupcy
  • Registratie: Januari 2002
  • Laatst online: 10-12-2025
Als je vector (a,b,c) is, dan kan je als normaal (1/a,-1/b,0), (1/a,0,-1/c) of (0,1/b,-1/c) gebruiken. Tenminste, als a,b,c =/= 0

Bij de vector (0,1,0) kan je als normaal (1,0,0) en (0,0,1) nemen.

Met wat creativiteit moeten deze 2 methoden voor alle vectoren snel een normaal opleveren.

  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

Verwijderd schreef op 15 December 2002 @ 14:27:
ik wil een lokaal assen-stelsel op een vector berekenen.
Kan je dit uitleggen, want ik snap er niets van? Wat is een 'lokaal' assenstelsel, en wanneer staat een assenstelsel 'op' een vector?

Welch Schauspiel! Aber ach! ein Schauspiel nur!
Wo fass ich dich, unendliche Natur?


Verwijderd

Topicstarter
Lord Daemon schreef op 15 December 2002 @ 17:42:

[...]
Kan je dit uitleggen, want ik snap er niets van? Wat is een 'lokaal' assenstelsel, en wanneer staat een assenstelsel 'op' een vector?
ik heb een vector met een willekeurige locatie in de ruimte... het startpunt van de vector wordt dan het centrum (0.0,0.0,0.0) van het locale assenstelsel. de richting van de vector wordt vervolgens de diepte (z) de twee overige assen bepaald ik aan de hand van wat ik zelf maar 'up'-vector noem (y-as) en de 'right'-vector (x-as)
noem. de 'up'-vector bepaal ik zoals eerder beschreven en de 'right'-vector is de normaal op het vlak van de vector en de zojuist berekende 'up'-vector.

wellicht is het niet danwel volledig niet wetenschappelijk verantwoord qua formulering maar het werkt wel.

  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

Verwijderd schreef op 15 december 2002 @ 19:02:
het startpunt van de vector wordt dan het centrum (0.0,0.0,0.0) van het locale assenstelsel.
Sorry dat ik blijf vragen :) , maar wat bedoel je met het 'startpunt' van de vector? Vectoren zijn toch geen lijnstukken met een start- en een eindpunt?

Welch Schauspiel! Aber ach! ein Schauspiel nur!
Wo fass ich dich, unendliche Natur?


Verwijderd

Topicstarter
Lord Daemon schreef op 15 December 2002 @ 21:26:

[...]
Sorry dat ik blijf vragen :) , maar wat bedoel je met het 'startpunt' van de vector? Vectoren zijn toch geen lijnstukken met een start- en een eindpunt?
yep! een vector die start op positie 0.0,0.0,0.0 ('startpunt') en eindigd op - ik noem maar wat - 1.0,1.0,1.0 ('eindpunt').

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025

Ivo

Je kan wel van een relatief start- en eind-punt spreken als je het over een vector hebt.

  • blobber
  • Registratie: Juli 2000
  • Niet online

blobber

Sol Lucet Omnibus

Lord Daemon schreef op 15 December 2002 @ 21:26:

[...]
Sorry dat ik blijf vragen :) , maar wat bedoel je met het 'startpunt' van de vector? Vectoren zijn toch geen lijnstukken met een start- en een eindpunt?
Hij bedoelt gewoon een coördinaat met een pijltje ;)

To See A World In A Grain Of Sand, And A Heaven In A Wild Flower, Hold Infinity In The Palm Of Your Hand, And Eternity In An Hour


  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

Verwijderd schreef op 15 December 2002 @ 21:39:
yep! een vector die start op positie 0.0,0.0,0.0 ('startpunt') en eindigd op - ik noem maar wat - 1.0,1.0,1.0 ('eindpunt').
O, aha. Nu snap ik het. :) Dat is niet echt een wiskundig juiste manier om tegen vectoren aan te kijken - wat jij beschrijft is een lijnstuk van het ene punt naar het andere punt. Wat je bedoelt is een vectorveld dat in het punt (0,0,0) de waarde (1,1,1) heeft. Anyway, niet echt belangrijk op zich, ik begrijp in ieder geval weer waar we mee bezig zijn. :)

Welch Schauspiel! Aber ach! ein Schauspiel nur!
Wo fass ich dich, unendliche Natur?


Verwijderd

Topicstarter
Lord Daemon schreef op 15 December 2002 @ 21:53:

[...]
O, aha. Nu snap ik het. :) Dat is niet echt een wiskundig juiste manier om tegen vectoren aan te kijken - wat jij beschrijft is een lijnstuk van het ene punt naar het andere punt. Wat je bedoelt is een vectorveld dat in het punt (0,0,0) de waarde (1,1,1) heeft. Anyway, niet echt belangrijk op zich, ik begrijp in ieder geval weer waar we mee bezig zijn. :)
yep noem het een lijnstuk. ik heb lijnstukken nodig ivm. o.a. intersectie berekeningen (3d)

Verwijderd

wanneer de betreffende vector parallel loopt aan de y-as (rcx==0.0 && rcz==0.0)
dan 'jitter' ik de eind positie van de vector een beetje zodat dit niet meer opgaat; niet echt wenselijk vandaar deze post om te achterhalen of er wellicht andere opties zijn.
Helaas, die zijn er niet. Je kunt niet op een "nette" manier (d.w.z. niet "soms jitteren" enzo) bij iedere willekeurige vector een andere vector produceren die er haaks op staat.

Maar als je nou gewoon niet soms jittert maar altijd, dus je neemt een vaste "vieze" vector waar je punt waarschijnlijk nooit aan gelijk zal zijn, en als haakse vector neem je dan het uitproduct met die vector en je punt (en als tweede as van je assenstelsel het uitproduct van de eerste as met je punt). Dan kom je wel een eind denk ik..? (kweet niet precies wat voor engs je allemaal van plan bent:))

Verwijderd

Topicstarter
Verwijderd schreef op 15 december 2002 @ 23:13:
[...]
Maar als je nou gewoon niet soms jittert maar altijd, dus je neemt een vaste "vieze" vector waar je punt waarschijnlijk nooit aan gelijk zal zijn, en als haakse vector neem je dan het uitproduct met die vector en je punt (en als tweede as van je assenstelsel het uitproduct van de eerste as met je punt). Dan kom je wel een eind denk ik..? (kweet niet precies wat voor engs je allemaal van plan bent:))
ik wil een redelijk stabiele manier om per vector een lokaal assenstelsel te berekenen. het idee is namelijk om een reeks aan eengesloten vectoren van een mesh te voorzien; zodat je een polygoon model van een 'tak' krijgt.
per startpositie van een lijnstuk bereken ik een lokaal assenstelsel waar ik in dit geval een cirkel omheen bereken. dat doe ik voor elke startpositie van alle vectoren. vervolgens bereken ik polygonen tussen de verschillende posities. het is dan zaak dat de orientatie van de berekende posities min of meer gelijk is anders krijgt je rotaties in je 'tak'.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Elke vector in het normaalvlak van een gegeven vector staat loodrecht op die originele vector. Je hebt dus twee vectoren nodig om het normaalvlak op te spannen. (1+2 = 3D, simpel he?)

Goed, als we de volledige set van eenheidsvectoren bekijken, dan spannen die een bol op met straal 1 rond de oorsprong. Op elk eindpunt heb je dan een stukje boloppervlak. Daar kun je dus twee richtingsvectoren op definieren. Bovendien is de som van deze richtingen weer een richting.

Nu is er een wiskundig bewijs voor het feit dat je geen vectorveld zonder singulariteiten kunt defineren op een bolopppervlak. Bvb de richting van het aardmagnetisch veld heeft 2 singulareiten (de twee polen). Jouw set van twee vectoren kan dus ook niet zonder singulariteiten.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
MSalters schreef op 16 December 2002 @ 01:10:
Elke vector in het normaalvlak van een gegeven vector staat loodrecht op die originele vector. Je hebt dus twee vectoren nodig om het normaalvlak op te spannen. (1+2 = 3D, simpel he?)

Goed, als we de volledige set van eenheidsvectoren bekijken, dan spannen die een bol op met straal 1 rond de oorsprong. Op elk eindpunt heb je dan een stukje boloppervlak. Daar kun je dus twee richtingsvectoren op definieren. Bovendien is de som van deze richtingen weer een richting.

Nu is er een wiskundig bewijs voor het feit dat je geen vectorveld zonder singulariteiten kunt defineren op een bolopppervlak. Bvb de richting van het aardmagnetisch veld heeft 2 singulareiten (de twee polen). Jouw set van twee vectoren kan dus ook niet zonder singulariteiten.
eerste alinea begrijp, tweede ook.
ik bereken een haakse 'up'-vector die ik gebruik om de normaal op het betreffende vlak te berekenen die ik dan 'right'-vector noem
ik weet alleen de start en eind positie van het lijnsegment waardoor ik dit ter kennisgeving aanneem maar er in concreto niet zo heel veel mee kan.

derde alinea begrijp ik niet... helaas!
zoals ik het lees zou het heel goed mogelijk zijn wat je beweerd :)

  • windancer
  • Registratie: Maart 2000
  • Laatst online: 27-12-2025
Okay,

mag jij de singulariteit aanwijzen op het vectorveld op de eenheidsbol waarbij de vector in elk punt van het boloppervlak gelijk is aan de eenheidsnormaal op het boloppervlak.
MSalters schreef op 16 December 2002 @ 01:10:
Nu is er een wiskundig bewijs voor het feit dat je geen vectorveld zonder singulariteiten kunt defineren op een bolopppervlak. Bvb de richting van het aardmagnetisch veld heeft 2 singulareiten (de twee polen). Jouw set van twee vectoren kan dus ook niet zonder singulariteiten.

  • bankrupcy
  • Registratie: Januari 2002
  • Laatst online: 10-12-2025
Stel je hebt een vector (a,b,c) dan heeft deze de normalen (1/a,-1/b,0), (1/a,0,-1/b) en (0,1/b,-1/c), mits a,b en c niet gelijk zijn aan 0.

Voor een vector (a,b,0) kan je de normaal (1/a,-1/b,0) of (0,0,1) nemen.

De derde normaal moet je altijd berekenen.

  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

MSalters schreef op 16 december 2002 @ 01:10:
Nu is er een wiskundig bewijs voor het feit dat je geen vectorveld zonder singulariteiten kunt defineren op een bolopppervlak. Bvb de richting van het aardmagnetisch veld heeft 2 singulareiten (de twee polen). Jouw set van twee vectoren kan dus ook niet zonder singulariteiten.
Dat is onjuist, zoals windancer ook al aan geeft. Het is niet mogelijk een afbeelding f(r) van het oppervlak van de eenheidsbol op het oppervlak van de eenheidsbol te definiëren die voldoet aan de volgende eisen:
  • De afbeelding is continu

  • f(r) is ongelijk aan r voor elke r
  • Welch Schauspiel! Aber ach! ein Schauspiel nur!
    Wo fass ich dich, unendliche Natur?


    Verwijderd

    handige harry schreef:
    ik wil een redelijk stabiele manier om per vector een lokaal assenstelsel te berekenen. het idee is namelijk om een reeks aan eengesloten vectoren van een mesh te voorzien; zodat je een polygoon model van een 'tak' krijgt.
    per startpositie van een lijnstuk bereken ik een lokaal assenstelsel waar ik in dit geval een cirkel omheen bereken. dat doe ik voor elke startpositie van alle vectoren. vervolgens bereken ik polygonen tussen de verschillende posities. het is dan zaak dat de orientatie van de berekende posities min of meer gelijk is anders krijgt je rotaties in je 'tak'.
    Ok, dat valt in de praktijk wel redelijk goed te doen. Je krijgt een beter resultaat als je de richting van die lijnstukken als uitgangspunt neemt, de positie van dat lijnstuk doet er op zich niet toe.

    Als P0, P1, P2, enz. je punten van de lijnstukken zijn waar je die mesh omheen wilt bouwen, neem je voor Pi dit:

    vector A = Pi+1 - Pi-1
    vector B = ( 0.01 , 100, 0.00001 )
    vector C = (A x B) genormaliseerd
    vector D = (A x P) genormaliseerd

    edit:
    met die x als vectoroperatie bedoel ik dus het uit-product


    En nu trek je om Pi een cirkel met de punten Pi + C*cos(t) + D*sin(t), waarbij t = 0..2pi (aantal stappen bepaalt de precisie, zeg maar de 'rondheid' van je 'tak'). Eventueel C en D eerst nog vermenigvuldigen met een getal om de dikte van je tak te bepalen.

    Werkt als een trein 8)
    Lord Daemon schreef:
    Dat is onjuist, zoals windancer ook al aan geeft. Het is niet mogelijk een afbeelding f(r) van het oppervlak van de eenheidsbol op het oppervlak van de eenheidsbol te definiëren die voldoet aan de volgende eisen:
    • De afbeelding is continu
    • f(r) is ongelijk aan r voor elke r
    f(r) = -r :)

    (ok, flauw.. het moet dus zijn: "f(r) is voor geen enkele r een lineair veelvoud van r", ofwel de functie f heeft geen eigenvector)

    Dit geldt trouwens alleen voor vectorruimtes van oneven dimensies, voor even-dimensionale ruimtes kun je zo'n f(r) wel maken.

    [ Voor 4% gewijzigd door Verwijderd op 19-12-2002 10:17 ]


    • Mastermind
    • Registratie: Februari 2000
    • Laatst online: 12-01 20:16
    wat je dan kan doen is.. je neemt een 'up' vector
    dus je hebt een vector.. dan maak je zelf een vector 'up' die is <0, 1, 0>
    neem het uitproduct.. dan hebt je de vector loodrecht daarop en wijst naar de x as 'ongeveer'
    dan neem je weer het uitproduct van die vector en je 1e 'kijk' vector
    en dan heb je de echte up vector
    en dan heb je 3 vectoren, die een assenstelsel vormen
    en die kan je dan in een matrix verwerken

    • Diadem
    • Registratie: Maart 2000
    • Laatst online: 31-05-2023

    Diadem

    fossiel

    Als je in |R^n een set van n onafhankelijke vectoren x1, x2, x3 ... xn hebt, kun je als volgt een orthogonale basis construeren.

    y1 = x1

    y2 = x2 - <x2,y1> / <y1,y1> * y1

    y3 = x3 - <x3,y1> / <y1,y1> * y1 - <x3,y2> / <y2,y2> * y2

    ...

    Dus als je een vector hebt, verzin je 2 willekeurige andere vectoren die niet afhankelijk hiervan zijn. Dan neem je je eerste vector als y1, en gebruik je die 2 willekeurige vectoren om y2 en y3 uit te rekenen.

    Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life - Terry Pratchett


    • Diadem
    • Registratie: Maart 2000
    • Laatst online: 31-05-2023

    Diadem

    fossiel

    ow, wat ik nog vergeten was:

    onafhankelijk betekent: een vecter y is onafhankelijk van een groep vectoren x1,x2,...,xn als y niet kan worden geschreven als

    y = a1*x1 + a2*x2 + ... + an*xn met x1,x2,...,xn willekeurige getallen.

    (0,1,0) is dus niet onafhankelijk van (0,2,0). En als je (1,0,0) en (0,1,0) hebt, dan is elke vector (a,b,0) daarvan afhankelijk ,maar elke vector (a,b,c) met c != 0 niet.

    Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life - Terry Pratchett


    • MSalters
    • Registratie: Juni 2001
    • Laatst online: 10-12-2025
    Lord Daemon schreef op 16 december 2002 @ 10:08:
    Dat is onjuist, zoals windancer ook al aan geeft. Het is niet mogelijk een afbeelding f(r) van het oppervlak van de eenheidsbol op het oppervlak van de eenheidsbol te definiëren die voldoet aan de volgende eisen:
    <LI>De afbeelding is continu</LI>
    <LI>f(r) is ongelijk aan r voor elke r</LI>
    Nou, zelfs dat kan nog: f(r)=-r

    Ik had alleen een essentiele aanname weggelaten: een continu vectorveld op de eenheidsbol, waarbij f(r) * r = 0. Als ik de OP begrijp was dat al een eis van hem.(inproduct 0, dus loodrecht, dus elke vector ligt in het lokale raakvlak van de bol)

    f(r)=C*r voldoet dus niet, omdat f(r)*r = C*|r|2=C

    Man hopes. Genius creates. Ralph Waldo Emerson
    Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


    • windancer
    • Registratie: Maart 2000
    • Laatst online: 27-12-2025
    Wat nu als de vector waarvan je de normaal wilt berekenen (een veelvoud van) <0, 1, 0> is. Het uitproduct is dan gelijk aan de nul vector en dan zit je vast in jouw verhaal.
    Mastermind schreef op 20 December 2002 @ 14:41:
    wat je dan kan doen is.. je neemt een 'up' vector
    dus je hebt een vector.. dan maak je zelf een vector 'up' die is <0, 1, 0>
    neem het uitproduct.. dan hebt je de vector loodrecht daarop en wijst naar de x as 'ongeveer'
    dan neem je weer het uitproduct van die vector en je 1e 'kijk' vector
    en dan heb je de echte up vector
    en dan heb je 3 vectoren, die een assenstelsel vormen
    en die kan je dan in een matrix verwerken

    [ Voor 6% gewijzigd door windancer op 21-12-2002 14:44 . Reden: Typo ]


    Verwijderd

    Dus als je een vector hebt, verzin je 2 willekeurige andere vectoren die niet afhankelijk hiervan zijn. Dan neem je je eerste vector als y1, en gebruik je die 2 willekeurige vectoren om y2 en y3 uit te rekenen.
    Dat verzinnen van 2 willekeurige andere vectoren is juist het probleem (eentje is al genoeg trouwens).

    Verwijderd

    Ik had alleen een essentiele aanname weggelaten: een continu vectorveld op de eenheidsbol, waarbij f(r) * r = 0
    Nou dat hoeft niet per se, als f(r) geen lineair veelvoud is van r voldoet dat al (een loodrechte vector krijg je dan door het uit-product tussen r en f(r) te nemen)

    • Confusion
    • Registratie: April 2001
    • Laatst online: 01-03-2024

    Confusion

    Fallen from grace

    Diadem schreef:
    Als je in |R^n een set van n onafhankelijke vectoren x1, x2, x3 ... xn hebt, kun je als volgt een orthogonale basis construeren. [knip]
    Als iemand hier achtergrond over zoekt: dit heet het orthogonalisatieproces van Gramm-Schmidt.

    Wie trösten wir uns, die Mörder aller Mörder?

    Pagina: 1