Skip to content

alhazacod/linearTransformationVisualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linear transformation visualization in 3D

Why?

A linear transformation is a function from one vector space to another that respects the linear structure of each vector space (Learn more). For visualizing this we can transform a vector as we can see in the Fig. 1.

vector transformed

Fig.1 - Vector transformed with a transformation matrix

But it has an obvious problem, because the linear transformation transform the whole space, not just the vector, in other words it transforms the basis vectors thus every vector in the space gets transformed too. That's why i created this app so everyone can see how a transformation matrix change the whole space.

Installation guide

With the executable file

  1. Install Python from the python web.
  2. Download the executable file for your OS (Linux or Windows).
  3. Execute the file (it might take a while to open).
  4. Start using.

The executable was created with PyInstaller.

Manual installation

  1. Install Python from the python web.
  2. Install pip from the pip web
  3. Install the dependences using pip.
    • pip install sympy
    • pip install pyqt5
    • pip install numpy
  4. Download the main.py, Plotting.py and Matrix.py files.
  5. In the console go to the files location
  6. Run the main file with python3.8 main.py

How to use

When you open the app you can see the grid at the left, and the interface at the right. The grid was plotted with color so you can notice the transformations.

vector transformed


At the right you can choose an example from the list and it will transform the original grid by the transformation that you have choose from the examples list, remember that the app can't remember the posterior state, so you can't for example rotate the plot 45º in X and then rotate it again 45º in Y, when you do the second transformation it will transform the original grid not the grid you got in the first transformation. You can create any transformation matrix and write it in the app and see how it transforms the grid too.

vector transformed