/ / Interpola le coordinate x, y, z su una sfera usando punti di due vettori di spin? - vettore, geometria, seno, coseno, momento angolare

Interpolare le coordinate x, y, z su una sfera usando punti di due vettori di spin? - vettore, geometria, seno, coseno, momento angolare

Voglio tracciare punti 3D in tempo reale che giacciono sulla superficie di una sfera unitaria (r = 1).

Ci sono due vettori di spin al lavoro qui. Un vettore ruota attorno all'asse Y, i suoi valori X e Z sono calcolati usando il cos () e il sin () di un cerchio che giace completamente sul piano X / Z con tutti i valori Y uguali a 0. L'altro ruota attorno all'asse X, i suoi valori Z e Y calcolati usando il cos () e il sin () di un cerchio che giace completamente sul piano Z / Y con tutti i valori X uguali a 0. Il momento angolare dei due vettori di solito non sono gli stessi. Tuttavia, i punti finali dei vettori si trovano lungo la superficie di una sfera comune con un raggio pari a 1. Sono quindi di uguale magnitudine ed entrambi provengono dallo stesso 0, 0, punto 0.

Diciamo che il primo vettore ha un'angolazionetermine momentum chiamato angXZ e il secondo angZY. Ciò significa che in qualsiasi momento posso calcolare due punti, uno per ciascun vettore di spin, usando angXY e angZY. Con questi due punti 3D, qual è la formula per calcolare un terzo punto che si troverebbe anche sulla superficie della sfera unitaria e sarebbe l'interpolazione corretta tra i due punti calcolati da angXZ e angZY?

Posso vedere nella mia testa che ha dato due punti 3Dche giace sulla superficie di una sfera unitaria, c'è un solo cerchio (piano) la cui circonferenza su cui entrambi giacciono. Posso anche intuire che il calcolo delle coordinate del punto interpolato si riduce a bisecare l'angolo che viene creato dai due punti calcolati quando proiettati sul cerchio di cui entrambi condividono la circonferenza. Ma non riesco a capovolgere le traduzioni e la matematica.

C'è una formula semplice che richiede due 3Dpunti che si trovano sulla superficie di una sfera unitaria, per calcolare un terzo punto che si troverebbe anche su quella superficie e sarebbe l'interpolazione corretta tra i primi due punti?

Sto usando Delphi Pro 6 se questo è importante.

AZIONE SUPPLEMENTARE: Sembra intuitivamente che dovrei essere in grado di prendere il punto medio lineare dei due punti calcolati dalla coppia di vettori di spin, e proiettare quel punto indietro sulla sfera unitaria. Ad esempio, la formula trovata nel link sottostante fornisce equazioni per il calcolo del punto medio tra due punti 3D. Dovrei essere in grado di prendere quel punto 3D e usare una formula, regolarne le coordinate XYZ in modo da proiettarlo sulla superficie della sfera unitaria?

Trovare le coordinate di un punto tra due punti?

risposte:

2 per risposta № 1

Sia M e N i tuoi due punti e O l'origine. Troveremo P, al centro del segmento MN: OP = OM + ON / 2. Calcola la grandezza di OP: | OP |. Il tuo punto necessario sarà R con OR = OP / | OP | = OM + ON / 2 | OP |.

Buona fortuna con il calcolo di questo. Non conosco Delphi, ma forse permette le operazioni dirette del vettore, altrimenti non lo faccio con la geometria analitica.

Le coordinate per il punto medio sono lemedie aritmetiche delle coordinate di M e N (hai detto che puoi calcolarle). Per ottenere la grandezza di | OP | estrai la radice quadrata di x ^ 2 + y ^ 2 + z ^ 2. Per ottenere R devi solo dividere le coordinate di P alla magnitudine calcolata proprio ora.

Si gestiscono separatamente quando M e N si oppongono (P == O).