コード例 #1
0
ファイル: test-primitives.py プロジェクト: abrock/lib2geom
    def test_angle(self):
        self.assertAlmostEqual(Angle.rad_from_deg(45), pi/4)
        self.assertAlmostEqual(Angle.deg_from_rad(pi/6), 30)

        p = Point(1, sqrt(3))
        alpha = Angle.from_Point(p)
        self.assertAlmostEqual(alpha.degrees(), 60)

        beta = Angle.from_radians(pi/5)
        gamma = Angle.from_degrees(36)
        self.assertAlmostEqual(beta.radians0(), gamma.radians0())
        self.assertTrue(beta==gamma)
        omega = Angle.from_degrees_clock(0)
        self.assertAlmostEqual(omega.radians(), pi/2)

        delta = Angle(-pi * 0.5)
        self.assertAlmostEqual(delta.degrees(), -90)
        self.assertAlmostEqual(delta.radians0(), 1.5*pi)
        #degreesClock roughly means [ 90 - Angle.degrees() ] mod 360
        self.assertAlmostEqual(delta.degrees_clock(), 180)

        self.assertAlmostEqual(
            (beta + gamma).radians(),
            beta.radians()+gamma.radians() )
        self.assertAlmostEqual( (beta - gamma).degrees(), 0)
コード例 #2
0
    def test_angleInterval(self):
        A = AngleInterval(Angle(pi / 6), Angle(pi / 4))
        B = AngleInterval(0, pi / 4, cw=True)
        self.assertEqual(A(0), Angle(pi / 6))
        self.assertEqual(A(0.5), A.angle_at(0.5))
        self.assertEqual(A(0), A.initial_angle())
        self.assertEqual(B(1), B.final_angle())
        self.assertFalse(B.is_degenerate())
        self.assertTrue(B.contains(Angle(pi / 6)))
        self.assertTrue(A.contains(Angle(pi)))

        self.assertAlmostEqual(B.extent(), pi / 4)
コード例 #3
0
    def test_ellipticalArc(self):
        E = EllipticalArc()
        self.curve(E)
        F = EllipticalArc(Point(), 1, 2, math.pi/6, True, True, Point(1, 1))

        self.assertTrue(F.sweep())
        self.assertTrue(F.large_arc())
        self.assertAlmostEqual(F.chord()(0), Point())
        self.assertAlmostEqual(F.chord()(1), Point(1, 1))
        
        F.set_extremes(Point(1, 1), Point(-1, 1))
        self.assertAlmostEqual(F.initial_point(), Point(1, 1))
        self.assertAlmostEqual(F.final_point(), Point(-1, 1))
        self.assertEqual(F.initial_angle(), F.angle_at(0))
        self.assertEqual(F.final_angle(), F.angle_at(1))
        self.assertTrue(F.contains(F.angle_at(0.5)))
        
        G = EllipticalArc(Point(), 1, 1, 0, True, True, Point(2, 0))
        for i in range(11):
            t = i/10.0
            print G(t)
        self.assertAlmostEqual(G.extent(), math.pi)
        self.assertAlmostEqual(G.extent(), G.sweep_angle())
        self.assertAlmostEqual(float(G.angle_at(0.5)), -math.pi/2)
        
        self.assertAlmostEqual(Point(1, 1), G.rays())
        self.assertAlmostEqual(1, G.ray(1))
        self.assertAlmostEqual(0, float(G.rotation_angle()))
        
        self.assertAlmostEqual(G.extent(), G.angle_interval().extent())
        
        self.assertAlmostEqual(G.center(), Point(1, 0))
        #unit half-circle
        U = EllipticalArc(Point(1, 0), 1, 1, 0, True, True, Point(-1, 0))
        
        G.set(Point(), 1, 1, 0, True, False, Point(1, 0))
        
        A = G.unit_circle_transform()
        
        self.assertAlmostEqual( G(0.5), U.transformed(A)(0.5) )
        self.assertAlmostEqual( G.value_at_angle(G.angle_at(0.32), 0), G.value_at(0.32, 0) )
        
        self.assertTrue(G.contains_angle(Angle(math.pi/4)))
        self.assertFalse(G.is_SVG_compliant())
コード例 #4
0
    def test_angle(self):
        self.assertAlmostEqual(Angle.deg_to_rad(45), pi / 4)
        self.assertAlmostEqual(Angle.rad_to_deg(pi / 6), 30)
        self.assertAlmostEqual(
            Angle.map_circular_arc_on_unit_interval(pi / 6, 0, pi / 2), 1 / 3.)
        self.assertAlmostEqual(
            Angle.map_unit_interval_on_circular_arc(0.4, 0, pi), 2 * pi / 5)
        self.assertTrue(Angle.arc_contains(pi / 3, pi / 4, pi / 2, pi))
        self.assertFalse(Angle.arc_contains(pi / 6, pi / 4, pi / 2, pi))

        p = Point(1, sqrt(3))
        alpha = Angle.from_Point(p)
        self.assertAlmostEqual(alpha.degrees(), 60)

        beta = Angle.from_radians(pi / 5)
        gamma = Angle.from_degrees(36)
        self.assertAlmostEqual(beta.radians0(), gamma.radians0())
        self.assertTrue(beta == gamma)
        omega = Angle.from_degrees_clock(0)
        self.assertAlmostEqual(omega.radians(), pi / 2)

        delta = Angle(-pi * 0.5)
        self.assertAlmostEqual(delta.degrees(), -90)
        self.assertAlmostEqual(delta.radians0(), 1.5 * pi)
        #degreesClock roughly means [ 90 - Angle.degrees() ] mod 360
        self.assertAlmostEqual(delta.degrees_clock(), 180)

        self.assertAlmostEqual((beta + gamma).radians(),
                               beta.radians() + gamma.radians())
        self.assertAlmostEqual((beta - gamma).degrees(), 0)
コード例 #5
0
ファイル: test-primitives.py プロジェクト: XRay3D/L2G
    def test_angle(self):
        self.assertAlmostEqual(Angle.rad_from_deg(45), pi/4)
        self.assertAlmostEqual(Angle.deg_from_rad(pi/6), 30)

        p = Point(1, sqrt(3))
        alpha = Angle.from_Point(p)
        self.assertAlmostEqual(alpha.degrees(), 60)

        beta = Angle.from_radians(pi/5)
        gamma = Angle.from_degrees(36)
        self.assertAlmostEqual(beta.radians0(), gamma.radians0())
        self.assertTrue(beta==gamma)
        omega = Angle.from_degrees_clock(0)
        self.assertAlmostEqual(omega.radians(), pi/2)

        delta = Angle(-pi * 0.5)
        self.assertAlmostEqual(delta.degrees(), -90)
        self.assertAlmostEqual(delta.radians0(), 1.5*pi)
        #degreesClock roughly means [ 90 - Angle.degrees() ] mod 360
        self.assertAlmostEqual(delta.degrees_clock(), 180)

        self.assertAlmostEqual(
            (beta + gamma).radians(),
            beta.radians()+gamma.radians() )
        self.assertAlmostEqual( (beta - gamma).degrees(), 0)
コード例 #6
0
ファイル: test-primitives.py プロジェクト: dov/lib2geom
    def test_angle(self):
        self.assertAlmostEqual(Angle.deg_to_rad(45), pi/4)
        self.assertAlmostEqual(Angle.rad_to_deg(pi/6), 30)
        self.assertAlmostEqual(
            Angle.map_circular_arc_on_unit_interval(pi/6, 0, pi/2),
            1/3.)
        self.assertAlmostEqual(
            Angle.map_unit_interval_on_circular_arc(0.4, 0, pi),
            2*pi/5)
        self.assertTrue(Angle.arc_contains(pi/3, pi/4, pi/2, pi))
        self.assertFalse(Angle.arc_contains(pi/6, pi/4, pi/2, pi))

        p = Point(1, sqrt(3))
        alpha = Angle.from_Point(p)
        self.assertAlmostEqual(alpha.degrees(), 60)

        beta = Angle.from_radians(pi/5)
        gamma = Angle.from_degrees(36)
        self.assertAlmostEqual(beta.radians0(), gamma.radians0())
        self.assertTrue(beta==gamma)
        omega = Angle.from_degrees_clock(0)
        self.assertAlmostEqual(omega.radians(), pi/2)

        delta = Angle(-pi * 0.5)
        self.assertAlmostEqual(delta.degrees(), -90)
        self.assertAlmostEqual(delta.radians0(), 1.5*pi)
        #degreesClock roughly means [ 90 - Angle.degrees() ] mod 360
        self.assertAlmostEqual(delta.degrees_clock(), 180)

        self.assertAlmostEqual(
            (beta + gamma).radians(),
            beta.radians()+gamma.radians() )
        self.assertAlmostEqual( (beta - gamma).degrees(), 0)