Example #1
0
    def test_crash(self):
        # base of triangle (from orig to dest)
        o = KineticVertex()
        o.origin = (0., 0.)
        o.velocity = (0., 1.)

        d = KineticVertex()
        d.origin = (10., 0.)
        d.velocity = (0, 1.)

        # vertex supposed to crash into base (the apex)
        a = KineticVertex()
        a.origin = (5, 5)
        a.velocity = (0., -1.)
        times = []
        # vertex crash time
        time = vertex_crash_time(o, d, a)
        times.append(time)
        # edge collapse times
        time = collapse_time_edge(o, d)
        times.append(time)
        time = collapse_time_edge(d, a)
        times.append(time)
        time = collapse_time_edge(a, o)
        times.append(time)
        # area collapse time
        coeff = area_collapse_time_coeff(o, d, a)
        time = solve_quadratic(coeff[0], coeff[1], coeff[2])
        times.extend(time)
        times = get_unique_times(times)
        show_all_times(times, o, d, a)
Example #2
0
    def test_central_crash(self):
        # base of triangle2 (from orig to dest)
        o = KineticVertex()
        o.origin = (0., 0.)
        o.velocity = (sqrt(2), sqrt(2))

        d = KineticVertex()
        d.origin = (10., 0.)
        d.velocity = (-sqrt(2), -sqrt(2))

        # vertex supposed to crash into base (the apex)
        a = KineticVertex()
        a.origin = (5, 5)
        a.velocity = (0, -sqrt(2))
        # edge collapse times
        times = []
        time = collapse_time_edge(o, d)
        times.append(time)
        time = collapse_time_edge(d, a)
        times.append(time)
        time = collapse_time_edge(a, o)
        times.append(time)
        # area collapse time
        area = area_collapse_times(o, d, a)
        times.extend(area)
        # vertex crash time
        time = vertex_crash_time(o, d, a)
        times.append(time)
        # filter None out of the times and see what is there...
        times = get_unique_times(times)
        show_all_times(times, o, d, a)
Example #3
0
    def test_perpendicular2_crash(self):
        # base of triangle2 (from orig to dest)
        o = KineticVertex()
        o.origin = (0., 0.)
        o.velocity = (0., 1.)

        d = KineticVertex()
        d.origin = (10., 0.)
        d.velocity = (0, 1.)

        # vertex supposed to crash into base (the apex)
        a = KineticVertex()
        a.origin = (5, 5)
        a.velocity = (1, 0)
        # edge collapse times
        times = []
        time = collapse_time_edge(o, d)
        times.append(time)
        time = collapse_time_edge(d, a)
        times.append(time)
        time = collapse_time_edge(a, o)
        times.append(time)
        # area collapse time
        area = area_collapse_times(o, d, a)
        times.extend(area)
        # vertex crash time
        time = vertex_crash_time(o, d, a)
        times.append(time)
        #
        times = get_unique_times(times)
        show_all_times(times, o, d, a)
Example #4
0
    def test_equilateral_outwards(self):
        #         k = KineticTriangle()
        V = []
        v = KineticVertex()
        v.origin = (0.0, 0.0)
        v.velocity = (-2.1889010593167346, -1.0)
        V.append(v)
        v = KineticVertex()
        v.origin = (3.0, 0.0)
        v.velocity = (2.1889010593167346, -1.0)
        V.append(v)
        v = KineticVertex()
        v.origin = (1.5, 1.7320508075688772)
        v.velocity = (0.0, 1.5275252316519463)
        V.append(v)
        o, d, a = V
        print o, d, a
        #         k.vertices = V

        # edge collapse times
        times = []
        time = collapse_time_edge(o, d)
        times.append(time)
        time = collapse_time_edge(d, a)
        times.append(time)
        time = collapse_time_edge(a, o)
        times.append(time)
        # area collapse times
        area = area_collapse_times(o, d, a)
        times.extend(area)
        # vertex crash time
        time = vertex_crash_time(o, d, a)
        times.append(time)
        #
        print times
        times = get_unique_times(times)
        show_all_times(times, o, d, a)
        self.assertRaises(ValueError, find_ge, times, 0)