Updated how the vertices and matrices can be accessed. That is via indices ([x][y]) or just by named properties (like x or y).

This commit is contained in:
2020-07-15 10:48:50 -05:00
parent cbdf666509
commit 813c1f531f
3 changed files with 110 additions and 39 deletions
+20 -13
View File
@@ -30,7 +30,7 @@ Matrix3x3(Vector3d(1.0,0.0,1.0),Vector3d(0.0,0.0,0.0),Vector3d(1.0,0.0,0.0))
def main():
#tris.load_obj_file('teddy.obj')
ui.thetax = 1
ui.thetay = 1
ui.thetaz = 1
ui.window.bind('<Left>', left)
ui.window.bind('<Right>', right)
ui.window.bind('<Up>', up)
@@ -42,19 +42,19 @@ def main():
ui.show()
def left(event):
ui.thetax -= .1
ui.thetaz += .1
draw_scene()
def right(event):
ui.thetax += .1
ui.thetaz -= .1
draw_scene()
def up(event):
ui.thetay += .1
ui.thetax += .1
draw_scene()
def down(event):
ui.thetay -= .1
ui.thetax -= .1
draw_scene()
def mouse_start(event):
@@ -68,9 +68,9 @@ def mouse_end(event):
ui.thetax += .01
if y < 0:
ui.thetay -= .01
ui.thetaz -= .01
else:
ui.thetay += .01
ui.thetaz += .01
draw_scene()
#ui.theta += x / ui.width
@@ -81,18 +81,25 @@ def draw_scene():
aspect_ratio = ui.height / ui.width
projection_matrix = Matrix4x4.get_projection_matrix(fov, aspect_ratio, near_plane, far_plane)
rotation_matrix_y = Matrix4x4.get_y_rotation_matrix(ui.thetax)
rotation_matrix_x = Matrix4x4.get_x_rotation_matrix(ui.thetay)
rotation_matrix_z = Matrix4x4.get_y_rotation_matrix(ui.thetaz * .5)
rotation_matrix_x = Matrix4x4.get_x_rotation_matrix(ui.thetax)
#translation = Matrix4x4.get_translation_matrix(Vector3d(0, 0, 16))
#world_matrix = Matrix4x4.get_identity_matrix()
#world_matrix = rotation_matrix_z.multiply_matrix(rotation_matrix_x)
#world_matrix = world_matrix.multiply_matrix(translation)
triangles = []
for tri in tris:
# Rotate on the z-axis
row1 = rotation_matrix_y.multiply_3d(tri.row1)
row2 = rotation_matrix_y.multiply_3d(tri.row2)
row3 = rotation_matrix_y.multiply_3d(tri.row3)
row1 = rotation_matrix_z.multiply_3d(tri.row1)
row2 = rotation_matrix_z.multiply_3d(tri.row2)
row3 = rotation_matrix_z.multiply_3d(tri.row3)
rotated_y = Matrix3x3(row1, row2, row3)
# Rotate on the x-axis