コード例 #1
0
ファイル: projections.py プロジェクト: DaniSagan/projections
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()
コード例 #2
0
ファイル: testplane.py プロジェクト: DaniSagan/projections
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.))