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)
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)
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())
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)
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)
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)