Linear Algebraic Shell

DESCRIPTION

LAS - Linear Algeberaic Shell is a command based matrix transformation visualizer for 2D space.

USAGE

NUMBER ARGUMENTS

LAS supports two kinds of number arguments. Real numbers (floating point) and trigonometric functions. Trigonometric functions have the format (func x) where x is a real number. For example: (sin 2), (cos 18.9999). Trigonometric functions must always be surrounded by parentheses and CAN NOT be nested like (cos (cos 1))! currently only cosine and sine are supported.

VECTOR

You can use vector, vec, or v to create vectors, it takes two number arguments. For example:

>>> vec x y
>>> vector (cos x) y
>>> v x (sin y)
>>> v (cos x) (sin y)

TRANSFORM

You can apply a matirx transformation to the space using transform or t for short. It takes 4 number arguments m11 m12 m21 m22 in that order. For example:

>>> t m11 m12 m21 m22

ROTATE

You can use rotate, rot, or r to rotate the space. It takes the degree as an argument and not a radian. Rotate is basically just a specialization of the transform command that applies the matrix with first row [cos(deg) -sin(deg)] and second row [sin(deg) cos(deg)]. Examples:

>>> rot 90
>>> rotate 180

RESET

You can use reset to reset the state of the world, reverse all transformations and remove all displayed vectors.

>>> reset
EXAMPLE

The following commands:

>>> v 1 0
>>> v 0 1
>>> t 2 0 0 2
>>> t 1 0 1 1
>>> t 0.5 0 0 0.5

would create the two basis vectors, scale the whole space by a factor of 2, take the basis vector (1 0) to (1 1), and then scale back to the original factor.

BUGS
CONTACT

If you find a bug or just wanna chit chat then send me an email at nullp0tr at gmail dot com. You can also directly contribute to the project on github :)