Under construction...
Alicia Solid by 黒星紅白 and 雨刻, using three.js.
$$ \block{array}{{cl} x \amp \text{ Real numbers.} \\ \qi, \qj, \qk \amp \text{ Unit quaternions } (\qi^2 = \qj^2 = \qk^2 = \qi \qj \qk = -1). \\ \qq = q_0 + q_1 \qi + q_2 \qj + q_3 \qk \amp \text{ Quaternions and their elements.} \\ \vv = (v_1, v_2, v_3) \amp \text{ 2d or 3d vectors and their elements.} \\ \qv = v_1 \qi + v_2 \qj + v_3 \qk \amp \text{ Implicit conversion from 3d vectors } \vv \text{ to quaternions } \qv. } $$
Foo
Bar
Screen coodinates \( \vv \in \mathbb{R}^2 \) to the points on the unit sphere \( \vp \in \mathbb{R}^3 ,\, |\vp| = 1 \) :
Azimuthal equidistant (My proposal) | $$ \block{align}{ (p_1,\, p_2) \amp= \sin \L( \frac{\pi}{2} |\vv| \R) \, \frac{\vv}{|\vv|} \\ p_3 \amp= \cos \L( \frac{\pi}{2} |\vv| \R) } $$ |
Orthographic (Shoemake) | $$ \block{align}{ (p_1,\, p_2) \amp= \vv \\ p_3 \amp= \sqrt{1 - {|\vv|}^2} \amp\amp \if {|\vv|}^2 \lt 1, \\ \\ (p_1,\, p_2) \amp= \frac{\vv}{|\vv|} \\ p_3 \amp= 0 \amp\amp \otherwise. } $$ |
Orthographic + hyperbola (Holroyd) | $$ \block{align}{ (p_1, \, p_2) \amp= \vv \\ p_3 \amp= \sqrt{1 - {|\vv|}^2} \amp\amp \if {|\vv|}^2 \lt \frac{1}{2}, \\ \\ (\tilde{p}_1,\, \tilde{p}_2) \amp:= \vv \\ \tilde{p}_3 \amp:= \frac{1}{2 |\vv|} \\ \vp \amp= \frac{\vec{\tilde{p}}}{|\vec{\tilde{p}}|} \amp\amp \otherwise. } $$ |
Point pairs \( \vp_0, \ \vp_1 \) on the unit sphere to the rotation \( \qq \in \mathbb{H} \) :
$$ \cos \theta := {\vp_0} \cdot {\vp_1} \,,\, \vec{a} := \frac{ \vp_0 \times \vp_1 }{ | \vp_0 \times \vp_1 | } $$
1×, path dependent | $$ \qq = \cos \frac{\theta}{2} + \boldsymbol{a} \sin \frac{\theta}{2} $$ |
2×, path independent (Shoemake) | $$ \qq = \cos \theta + \boldsymbol{a} \sin \theta = \qp_1 \, \bar{\qp}_0 $$ |