from __future__ import print_function import matplotlib.pyplot as plt from geometry.vec3 import Vec3 from geometry.vec2 import Vec2 from geometry.view import View from geometry import shapes, transform from geometry.shapes import LineStripe if __name__ == '__main__': v = View(100) l = LineStripe([Vec3(0., 0., 0.), Vec3(100., 0., 0.)], [0, 1]) ship = shapes.Shape.load('assets/low_poly_express_ship.obj') plt.figure('projection') for k in range(1): for line in ship.get_lines(): v.push_transform(transform.Translation(Vec3(0, 0, -1000))) plt.plot(*Vec2.get_xy_lists(v.project_line(line)), color='k') v.pop_transform() plt.axis('equal') plt.show()
import itertools import matplotlib.pyplot as plt from geometry.view import View import geometry.vec3 as vec3 from geometry.vec3 import Vec3 from geometry.shapes import SQUARE from geometry import utils from geometry.transform import * if __name__ == '__main__': v = View(10) v.push_transforms( Scale(Vec3(100., 100., 100.)), Rotation(vec3.I, utils.deg_to_rad(-30.)), Translation(Vec3(0., 0., -500.))) p1 = v.project_point(SQUARE.vertices[1]) p2 = v.project_point(SQUARE.vertices[0]) p3 = v.project_point(SQUARE.vertices[3]) plt.figure() plt.scatter(p2.x, p2.y, color='r', s=50) plt.scatter([p1.x, p3.x], [p1.y, p3.y], s=50) plt.axis('equal') plt.show(block=False) pl = v.get_plane(p1, p2, p3, 100, 100, utils.deg_to_rad(90.))