| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Algebra.Quaternion
Synopsis
- type QuatF = Quat Float
- type QuatD = Quat Double
- type QuatR = Quat Rational
- type QuatM = Quat Micro
- type QuatN = Quat Nano
- type QuatP = Quat Pico
- data Quat a = Quat !a !(V3 a)
- quat :: a -> a -> a -> a -> Quat a
- scal :: Quat a -> a
- vect :: Quat a -> V3 a
- qu :: Semiring a => Quat a
- qi :: Semiring a => Quat a
- qj :: Semiring a => Quat a
- qk :: Semiring a => Quat a
Documentation
Instances
qi :: Semiring a => Quat a Source #
The i quaternion.
Represents a \( \pi \) radian rotation about the x axis.
>>>rotate (qi :: QuatM) $ V3 1 0 0V3 1.000000 0.000000 0.000000>>>rotate (qi :: QuatM) $ V3 0 1 0V3 0.000000 -1.000000 0.000000>>>rotate (qi :: QuatM) $ V3 0 0 1V3 0.000000 0.000000 -1.000000
>>>qi * qjQuat 0 (V3 0 0 1)
qj :: Semiring a => Quat a Source #
The j quaternion.
Represents a \( \pi \) radian rotation about the y axis.
>>>rotate (qj :: QuatM) $ V3 1 0 0V3 -1.000000 0.000000 0.000000>>>rotate (qj :: QuatM) $ V3 0 1 0V3 0.000000 1.000000 0.000000>>>rotate (qj :: QuatM) $ V3 0 0 1V3 0.000000 0.000000 -1.000000
>>>qj * qkQuat 0 (V3 1 0 0)
qk :: Semiring a => Quat a Source #
The k quaternion.
Represents a \( \pi \) radian rotation about the z axis.
>>>rotate (qk :: QuatM) $ V3 1 0 0V3 -1.000000 0.000000 0.000000>>>rotate (qk :: QuatM) $ V3 0 1 0V3 0.000000 -1.000000 0.000000>>>rotate (qk :: QuatM) $ V3 0 0 1V3 0.000000 0.000000 1.000000
>>>qk * qiQuat 0 (V3 0 1 0)>>>qi * qj * qkQuat (-1) (V3 0 0 0)