Oriented cross products in the actual normalized primary frame.
noncomputable def
EulerPacketMovingFrame.frameCoordinates
(p q x : EulerSmoothLimit.Space)
(i : Fin 3)
:
Frame coordinates, given by ⟪frame p q i,x⟫_ℝ.
Equations
- EulerPacketMovingFrame.frameCoordinates p q x i = inner ℝ (EulerPacketMovingFrame.frame p q i) x
Instances For
Frame vector, given by X 0 • p+X 1 • q+X 2 • cross p q.
Equations
- EulerPacketMovingFrame.frameVector p q X = X 0 • p + X 1 • q + X 2 • EulerPacketCrossProduct.cross p q
Instances For
theorem
EulerPacketMovingFrame.cross_frameVector
(p q : EulerSmoothLimit.Space)
(X Y : Fin 3 → ℝ)
(hp : inner ℝ p p = 1)
(hq : inner ℝ q q = 1)
(hpq : inner ℝ p q = 0)
:
EulerPacketCrossProduct.cross (frameVector p q X) (frameVector p q Y) = frameVector p q ((crossProduct X) Y)
theorem
EulerPacketMovingFrame.frameVector_inner
(p q z : EulerSmoothLimit.Space)
(X : Fin 3 → ℝ)
:
inner ℝ (frameVector p q X) z = X 0 * frameCoordinates p q z 0 + X 1 * frameCoordinates p q z 1 + X 2 * frameCoordinates p q z 2
theorem
EulerPacketMovingFrame.cross_inner_coordinates
(p q x y z : EulerSmoothLimit.Space)
(hp : inner ℝ p p = 1)
(hq : inner ℝ q q = 1)
(hpq : inner ℝ p q = 0)
:
inner ℝ (EulerPacketCrossProduct.cross x y) z = (crossProduct (frameCoordinates p q x)) (frameCoordinates p q y) 0 * frameCoordinates p q z 0 + (crossProduct (frameCoordinates p q x)) (frameCoordinates p q y) 1 * frameCoordinates p q z 1 + (crossProduct (frameCoordinates p q x)) (frameCoordinates p q y) 2 * frameCoordinates p q z 2
Cross-product and orientation errors cannot be hidden in a coordinate model: the triple product equals the actual oriented-frame expression.