Allineamento di tre punti nello spazio
Non riesco ad approcciare questo problema. Ho due set di tre punti nello spazio 3D:
(-10,-5,-15),(-20,-8,-45),(5,14,35)
(5.8,8.4,4.6),(15.5,1.7,1.9),(-8.2,95.6,-128.3)

dovrei calcolare la matrice di rotazione per allineare la seconda terna (gli asterischi) alla prima (i palllini).
Potrei calcolarmi il prodotto vettoriale con i versori di riferimento.
Prendendo i primi due punti, $|A x A'|$ mi calcolo la distanza nello spazio tra i due, ma poi?
Fosse al contrario, che dai pallini devo ruotare e traslare di una certa quantità userei le matrici di rotazione. Ma il viceversa come lo faccio?
(-10,-5,-15),(-20,-8,-45),(5,14,35)
(5.8,8.4,4.6),(15.5,1.7,1.9),(-8.2,95.6,-128.3)

dovrei calcolare la matrice di rotazione per allineare la seconda terna (gli asterischi) alla prima (i palllini).
Potrei calcolarmi il prodotto vettoriale con i versori di riferimento.
Prendendo i primi due punti, $|A x A'|$ mi calcolo la distanza nello spazio tra i due, ma poi?
Fosse al contrario, che dai pallini devo ruotare e traslare di una certa quantità userei le matrici di rotazione. Ma il viceversa come lo faccio?
Risposte
Cosa significa allineare la seconda alla prima ?
Io mi immagino la prima terna di punti come un piano e la seconda terna come un altro piano ruotato e magari spostato rispetto al primo. Quindi quello che avrei bisogno sarebbe allineare il secondo piano al primo
Aggiungo visto che non posso editare i messaggi.
Io pensavo di fare una cosa del genere:
siano
A = (-10,-5,-15), B = (-20,-8,-45), C = (5,14,35)
A' = (5.8,8.4,4.6), B' = (15.5,1.7,1.9), C' = (-8.2,95.6,-128.3)
calcolare il prodotto vettoriale di due punti e uguagliarlo in questo modo
$|A \times A'| = |A||A'|sin(\theta)$
così da trovare $\theta$ tale per cui l'uguaglianza faccia 0 e quindi sapere che i due punti sono allineati.
Trovato l'angolo, imporre l'equazione di rotazione classica
$[[x'],[y'],[z']] = [[1,0,0],[0,cos\theta,-sin\theta],[0,sin\theta,cos\theta]][[x],[y],[z]] $
per ottenere i punti allineati.
Quindi a questo punto imporre la distanza euclidea uguale a 0 per trovare i punti xyz da sottrarre a quelli calcolati dal sistema per risolvere la traslazione.
Può avere senso?
Io pensavo di fare una cosa del genere:
siano
A = (-10,-5,-15), B = (-20,-8,-45), C = (5,14,35)
A' = (5.8,8.4,4.6), B' = (15.5,1.7,1.9), C' = (-8.2,95.6,-128.3)
calcolare il prodotto vettoriale di due punti e uguagliarlo in questo modo
$|A \times A'| = |A||A'|sin(\theta)$
così da trovare $\theta$ tale per cui l'uguaglianza faccia 0 e quindi sapere che i due punti sono allineati.
Trovato l'angolo, imporre l'equazione di rotazione classica
$[[x'],[y'],[z']] = [[1,0,0],[0,cos\theta,-sin\theta],[0,sin\theta,cos\theta]][[x],[y],[z]] $
per ottenere i punti allineati.
Quindi a questo punto imporre la distanza euclidea uguale a 0 per trovare i punti xyz da sottrarre a quelli calcolati dal sistema per risolvere la traslazione.
Può avere senso?
Io faccio ancora fatica a capire cosa vuoi effettivamente fare.
Da quello che capisco hai un un punto $A$ e vuoi allinearlo con un secondo punto $A'$.
Con allineare si intende che una la retta $OA$ passa anche per $A'$.
Se e' questo quello che cerchi, non basta fare $A |A'|/|A|$ ?
Da quello che capisco hai un un punto $A$ e vuoi allinearlo con un secondo punto $A'$.
Con allineare si intende che una la retta $OA$ passa anche per $A'$.
Se e' questo quello che cerchi, non basta fare $A |A'|/|A|$ ?