📐
pydrawer
The Python package for visualizing curves and linear transformations in a super simple way.
✏️
Installation
Install pydrawer package with pip:
$ pip install pydrawer
or clone the repository:
$ git clone https://github.com/dylannalex/pydrawer.git
✏️
Usage
📌
Drawing curves
To start drawing curves you need to create a GraphingCalculator
object:
from pydrawer import GraphingCalculator
graphing_calculator = GraphingCalculator()
pydrawer let you draw parametrized curves and mathematical functions. Lets create and draw the square root of x function for this example:
def square_root(x):
return x ** (1 / 2)
graphing_calculator.draw(square_root, (0, 25)) # We want to draw the function from x = 0 to x = 25
You can also accomplish the same result by defining the square root of x as a parameterized function:
def square_root(t):
return t, t ** (1 / 2)
graphing_calculator.draw(square_root, (0, 25)) # We want to draw the curve from t = 0 to t = 25
📌
Linear transformations
pydrawer provides a curves
module which contains functions for modifying curves with linear transformations.
from pydrawer import curves
📍
curves.transform_curve()
This function let you apply a linear transformation (specified as a matrix) to a parametrized curve. curves.transform_curve()
returns the transformed curve.
Parameters:
- curve: parametrized curve
- matrix: linear transformation's matrix
The matrix is a tuple of tuples (or list of lists) which has the same structure as numpy arrays. A matrix
[ a b ]
[ c d ]
should be defined as:
matrix = ((a,b), (c,d))
Example:
matrix = ((1, 0), (0, -2))
graphing_calculator.draw(curves.transform_curve(square_root, matrix), (0, 25))
📍
curves.rotate_curve()
Rotates a curve anticlockwise by the given angle.
Parameters:
- curve: parametrized curve
- angle: angle in radians
Example:
angle = pi / 4 # 90 degrees
graphing_calculator.draw(curves.rotate_curve(square_root, angle), (0, 25))
📍
curves.scale_curve()
Scales the given curve by the given scalar.
Parameters:
- curve: parametrized curve
- scalar: scalar for scaling the curve
Example:
scalar = 2 # The function is going to be twice as bigger
graphing_calculator.draw(curves.scale_curve(square_root, 2), (0, 25))