A simple vector toolkit dealing with vectors and points in the 3-dimensional space

## CHANGES

0.0.9
from __future__ import division added to fix division operator to use true division as in Python 3.0 instead of classic division.

## Vectors

Vectors is a simple library toolkit dealing with common vector and point logic in the 3-dimensional space.

Supports commonly used vector math functions including:

• Vector magnitude
• Addition with another vector or a real number.
• Multiplication by another vector or a real number.
• Dot product
• Cross/scalar product
• Angle between vectors
• Check if two vectors are perpendicular, parallel or non-parallel

Github Repository

## Installation

```pip install vectors
```

## Usage

There are multiple ways to create our vector instances using the vectors module.

We can first initialize some vectors and points calling their repsective class contructors as follows.

```  from vectors import Point, Vector

v1 = Vector(1, 2, 3) #=> Vector(1, 2, 3)
v2 = Vector(2, 4, 6) #=> Vector(2, 4, 6)

p1 = Point(1, 2, 6) #=> Point(1, 2, 3)
p2 = Point(2, 0, 2) #=> Point(2, 4, 6)
```

We can also create a Point instance or a Vector instance with a list using the class method from_list().

```components = [1.2, 2.4, 3.8]

v = Vector.from_list(components) #=> Vector(1.2, 2.4, 3.8)
```

We can also create our Vectors from two Point instances using the classmethod from_points().

```v = Vector.from_points(p1, p2) #=> Vector(1, -2, -4)
```

We can also get access to the vector array to use it with other libraries.

```v1.vector #=> [1, 2, 3]
```

## Magnitude

We can get the magnitude of the vector easily.

```v1.magnitude() #==> 3.7416573867739413
```

We can add a real number to a vector or compute the vector sum of two vectors as follows.

```v1.add(2) #=> Vector(3.0, 4.0, 5.0)

v1.sum(v2) #=> Vector(3.0, 6.0, 9.0)
```

Both methods return a Vector instance.

## Multiplication

We can multiply a vector by a real number.

```v1.multiply(4) #=> Vector(4.0, 8.0, 12.0)
```

The above returns a Vector instance.

## Dot Product

We can find the dot product of two vectors.

```v1.dot(v2) #=> 0.0
```

We can also use angle theta on the dot function.

```v1.dot(v2. 180)
```

Dot product returns a real number.

## Cross/Scalar Product

We can find the cross product of two vectors.

```v1.cross(v2) #=> Vector(0, 0, 0)
```

Cross product returns a Vector instance, which is always perpendicular to the other two vectors.

## Angle Theta

We can also find the angle theta between two vectors.

```v1.angle(v2) #=> 0.0
```

Angle is a measured in degrees.

## Parallel, Perpendicular, Non-Parallel

We can check if two vectors are parallel, perpendicular or non-parallel to each other.

```v1.parallel(v2) #=> True
v1.perpendicular(v2) #=> False
v1.non_parallel(v2) #=> False
```

All of the above return either True or False.

## TODO

• Create Analytic Geometry Toolkit based on the vectors toolkit.

## Project details

This version 1.0.0 0.0.9 0.0.8 0.0.7 0.0.6 0.0.4 0.0.3 0.0.2 0.0.1