Organized modules into individual files
This commit is contained in:
17
tools/animation-tools/MatrixMath.py
Normal file
17
tools/animation-tools/MatrixMath.py
Normal file
@@ -0,0 +1,17 @@
|
||||
import math
|
||||
from pygame.math import Vector3
|
||||
|
||||
def project(vector, w, h, fov, distance):
|
||||
factor = math.atan(fov / 2 * math.pi / 180) / (distance + vector.z)
|
||||
x = vector.x * factor * w + w / 2
|
||||
y = -vector.y * factor * w + h / 2
|
||||
return Vector3(x, y, vector.z)
|
||||
|
||||
def rotate_vertices(vertices, angle, axis):
|
||||
return [v.rotate(angle, axis) for v in vertices]
|
||||
def scale_vertices(vertices, s):
|
||||
return [Vector3(v[0]*s[0], v[1]*s[1], v[2]*s[2]) for v in vertices]
|
||||
def translate_vertices(vertices, t):
|
||||
return [v + Vector3(t) for v in vertices]
|
||||
def project_vertices(vertices, w, h, fov, distance):
|
||||
return [project(v, w, h, fov, distance) for v in vertices]
|
||||
Reference in New Issue
Block a user