2D Rotation by Angle
Angle2d is a type that internally has an angle as a parameter, and can be thought of as a lazy version of RotMatrix{2}.
Angle2d
example
julia> t = 1.2 # rotation angle1.2julia> m = [cos(t) -sin(t);sin(t) cos(t)]2×2 Matrix{Float64}: 0.362358 -0.932039 0.932039 0.362358julia> Angle2d(t) # construct from matrix2×2 Angle2d{Float64} with indices SOneTo(2)×SOneTo(2)(1.2): 0.362358 -0.932039 0.932039 0.362358julia> RotMatrix{2}(t)2×2 RotMatrix2{Float64} with indices SOneTo(2)×SOneTo(2): 0.362358 -0.932039 0.932039 0.362358julia> dump(Angle2d(t))Angle2d{Float64} theta: Float64 1.2julia> dump(RotMatrix{2}(t))RotMatrix2{Float64} mat: StaticArraysCore.SMatrix{2, 2, Float64, 4} data: NTuple{4, Float64} 1: Float64 0.3623577544766736 2: Float64 0.9320390859672263 3: Float64 -0.9320390859672263 4: Float64 0.3623577544766736