Пример #1
0
    def __init__(self, from_point: points.Point, to_point: points.Point,
                 up: vectors.Vector) -> None:

        super().__init__(4, 4)

        forward = (to_point - from_point).normalize()
        left = forward.cross(up.normalize())

        true_up = left.cross(forward)

        self.set(0, 0, left.x)
        self.set(0, 1, left.y)
        self.set(0, 2, left.z)
        self.set(1, 0, true_up.x)
        self.set(1, 1, true_up.y)
        self.set(1, 2, true_up.z)
        self.set(2, 0, -forward.x)
        self.set(2, 1, -forward.y)
        self.set(2, 2, -forward.z)
        self.set(3, 3, 1)

        temp = self * Translate(-from_point.x, -from_point.y, -from_point.z)
        self.values = temp.values