def test_inplace(self, u): u_orig = u u += (1, 1) assert u == Vec2d(4, 5) assert u is u_orig u -= (1, 1) assert u == Vec2d(3, 4) assert u is u_orig u *= 2 assert u == Vec2d(6, 8) assert u is u_orig u /= 2 assert u == Vec2d(3, 4) assert u is u_orig
def main(): # Pede vetores de entrada para o usuário print(__doc__) pyxel.factory = Transform.rotation_degrees pyxel.translation = Vec2d(0, 0) pyxel.angle = 0 pyxel.M = pyxel.factory(pyxel.angle) pyxel.points = list(square()) pyxel.transform = None # Inicializa o módulo e roda! pyxel.init(240, 180, caption="Retas", fps=30) pyxel.mouse(True) pyxel.run(update, draw)
def test_algebraic_operations(self, u, v): assert u + v == Vec2d(u.x + v.x, u.y + v.y) assert u - v == Vec2d(u.x - v.x, u.y - v.y) assert u * 2 == Vec2d(2 * u.x, 2 * u.y) assert 2 * u == Vec2d(2 * u.x, 2 * u.y) assert u / 2 == Vec2d(u.x / 2, u.y / 2)
delta = (v - u) / 3 a, c = u + delta, u + 2 * delta b = a + delta.rotated_degrees(-60) yield from koch(u, a, n - 1) yield from koch(a, b, n - 1) yield from koch(b, c, n - 1) yield from koch(c, v, n - 1) def update(): try: cmds.extend(islice(gen, 4)) except StopIteration: pass def draw(): pyxel.cls(pyxel.COLOR_BLACK) colors = islice(cycle(range(1, 16)), pyxel.frame_count % 15, None) for cmd, col in zip(cmds, colors): pyxel.line(*cmd, col) HEIGHTS = range(220, 50, -70) gen = chain.from_iterable(koch(Vec2d(0, y), Vec2d(256, y), 4) for y in HEIGHTS) cmds = [] pyxel.init(256, 256, caption="Koch Fractal", fps=30) pyxel.run(update, draw)
def read_vec(msg) -> Vec2d: """ Pede uma entrada vetorial. """ x, _, y = input(msg).lstrip("[( ").rstrip(")] ").partition(",") return Vec2d(float(x), float(y))
def jj(): return Vec2d(0, 1)
def ii(): return Vec2d(1, 0)
def v(): return Vec2d(1, 1)
def u(): return Vec2d(3, 4)