Dynamische curve in 3d programma/webpagina

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
IEOIE
Nieuw lid
Nieuw lid
Berichten: 10
Lid geworden op: 28 jan 2014, 17:12

Dynamische curve in 3d programma/webpagina

Bericht door IEOIE » 09 aug 2020, 19:59

Beste lezer,

heb een dynamische curve geprogrammeerd in een 3d programma, javascript/python.

deze curve is nu gebouwd om het centrum van de 3d wereld, deze curve zou ik graag ergens anders in de 3d ruimte kunnen verplaatsen.

maar zit vast bij het implementeren van de rotaties, het verplaatsen van de curve is me al gelukt, maar het in positie roteren is waar het vastloopt.

ten eerste weet ik niet hoe ik de juiste rotatie hoeken bereken
ten tweede weet ik niet hoe ik deze rotatie hoeken in mijn code dien te verwerken zodat de dynamische curve doet wat hij hoort te doen, alleen ergens anders in de 3d ruimte.

ik weet niet of ik de vraag hier kan stellen dus heb ik de stoute schoenen toch maar aangetrokken...
op hoop van zegen...

arie
Moderator
Moderator
Berichten: 3515
Lid geworden op: 09 mei 2008, 09:19

Re: Dynamische curve in 3d programma/webpagina

Bericht door arie » 09 aug 2020, 21:53

Bij rotatie om de oorsprong wordt elk punt (x, y, z) afgebeeld op (x', y', z'), waarbij geldt:

\(\left\{\begin{matrix} x' & = & (\cos \alpha \cos \beta)\cdot x & + &(\cos \alpha \sin \beta \sin \gamma-\sin \alpha \cos \gamma)\cdot y & +&(\cos \alpha \sin \beta \cos \gamma+\sin \alpha \sin \gamma)\cdot z \\ y' & = & (\sin \alpha \cos \beta)\cdot x & + &(\sin \alpha \sin \beta \sin \gamma+\cos \alpha \cos \gamma)\cdot y & + & (\sin \alpha \sin \beta \cos \gamma-\cos \alpha \sin \gamma)\cdot z \\ z' & = & (-\sin \beta) \cdot x & + & (\cos \beta \sin \gamma)\cdot y & + & (\cos \beta \cos\gamma)\cdot z \end{matrix}\right.\)

Dit is de betekenis van de rotatiematrix R op deze pagina:
https://en.wikipedia.org/wiki/Rotation_ ... _rotations

Voor een rotatie om een willekeurig punt:
- voer je eerst een translatie uit waarbij het rotatiepunt op de oorsprong wordt afgebeeld
- dan voer je de rotatie uit,
- tenslotte transleer je alles weer terug (zodat de oorsprong weer op het oorspronkelijke rotatiepunt belandt).

Kom je hiermee verder?

Plaats reactie