本文整理汇总了Python中canoepaddle.pen.Pen.turn_to方法的典型用法代码示例。如果您正苦于以下问题:Python Pen.turn_to方法的具体用法?Python Pen.turn_to怎么用?Python Pen.turn_to使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类canoepaddle.pen.Pen
的用法示例。
在下文中一共展示了Pen.turn_to方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_straight_joint_headings
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_straight_joint_headings():
# The math in calculating joint geometry can get numerically unstable
# very close to straight joints at various headings.
for heading_angle in range(0, 45):
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(heading_angle)
p.line_forward(10)
p.line_forward(10)
path = p.paper.paths[0]
path.render_path(2) # Doesn't crash.
# Check that the joint angle is 90 degrees from the heading.
assert_equal(len(p.paper.paths), 1)
segments = p.paper.paths[0].segments
assert_equal(len(segments), 2)
s0, s1 = segments
target_angle = (heading_angle + 90) % 180
joint_angle = math.degrees(vec.heading(vec.vfrom(s0.b_right, s0.b_left)))
assert_almost_equal(joint_angle % 180, target_angle)
joint_angle = math.degrees(vec.heading(vec.vfrom(s1.a_right, s1.a_left)))
assert_almost_equal(joint_angle % 180, target_angle)
示例2: test_line_line_half_illegal_joint
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_line_line_half_illegal_joint():
# The outside edge meets, but the inside is too short to meet.
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(2)
p.turn_left(165)
p.line_forward(2)
assert_path_data(
p, 2,
(
'M0.00,-0.50 L0.00,0.50 L5.80,0.50 L0.20,-1.00 '
'L-0.06,-0.03 L1.87,0.48 L2.00,-0.50 L0.00,-0.50 z'
)
)
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(2)
p.turn_right(165)
p.line_forward(2)
assert_path_data(
p, 2,
(
'M0.00,-0.50 L0.00,0.50 L2.00,0.50 L1.87,-0.48 '
'L-0.06,0.03 L0.20,1.00 L5.80,-0.50 L0.00,-0.50 z'
)
)
示例3: test_line_to_coordinate
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_line_to_coordinate():
p = Pen()
p.fill_mode()
p.move_to((0, 0))
p.turn_to(45)
p.line_to_y(3)
assert_points_equal(p.position, (3, 3))
for x, y in [
(2, 1),
(3, -4),
(-7, -5),
(-6, 6),
]:
p = Pen()
p.fill_mode()
p.move_to((0, 0))
p.turn_toward((x, y))
p.line_to_y(y * 2)
assert_points_equal(p.position, (x * 2, y * 2))
p.move_to((0, 0))
p.turn_toward((x, y))
p.line_to_x(x * 3)
assert_points_equal(p.position, (x * 3, y * 3))
示例4: test_offwidth_arc_joins
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_offwidth_arc_joins():
# Join arcs and lines of different widths.
p = Pen()
p.move_to((0, 0))
p.turn_to(0)
p.stroke_mode(0.8)
p.line_forward(5)
p.turn_left(45)
p.stroke_mode(3.0)
p.arc_left(90, 5)
p.turn_to(-180)
p.line_forward(5)
p.turn_left(45)
p.stroke_mode(0.8)
p.arc_left(45, 5)
p.turn_right(90)
p.stroke_mode(3.0)
p.arc_right(90, 4)
assert_svg_file(
p, 3,
'test_offwidth_arc_joins.svg'
)
示例5: test_color_path
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_color_path():
# Changing colors starts a new path.
p = Pen()
p.move_to((0, 0))
p.turn_to(0)
p.stroke_mode(1.0, (1.0, 0.0, 0.0))
p.line_forward(1)
p.stroke_mode(1.0, (0.0, 1.0, 0.0))
p.line_forward(1)
p.stroke_mode(1.0, (0.0, 0.0, 1.0))
p.line_forward(1)
assert_equal(
p.paper.svg_elements(1),
[
(
'<path d="M0.0,-0.5 L0.0,0.5 L1.0,0.5 L1.0,-0.5 L0.0,-0.5 z" '
'fill="#ff0000" />'
'<path d="M1.0,-0.5 L1.0,0.5 L2.0,0.5 L2.0,-0.5 L1.0,-0.5 z" '
'fill="#00ff00" />'
'<path d="M2.0,-0.5 L2.0,0.5 L3.0,0.5 L3.0,-0.5 L2.0,-0.5 z" '
'fill="#0000ff" />'
),
]
)
示例6: test_circle_line_overlap
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_circle_line_overlap():
# Draw a circle that is above one line but below the other line.
p = Pen()
p.stroke_mode(1.0, color=(1.0, 0.0, 0.0))
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(4)
p.fill_mode(color=(0.0, 1.0, 0.0))
p.move_to((2, 2))
p.circle(2)
p.stroke_mode(1.0, color=(0.0, 0.0, 1.0))
p.move_to((0, 4))
p.turn_to(0)
p.line_forward(4)
assert_equal(
p.paper.svg_elements(1),
[
(
'<path d="M0.0,-0.5 L0.0,0.5 L4.0,0.5 L4.0,-0.5 L0.0,-0.5 z" '
'fill="#ff0000" />'
),
(
'<path d="M4.0,-2.0 A 2.0,2.0 0 0 0 0.0,-2.0 '
'A 2.0,2.0 0 0 0 4.0,-2.0 z" fill="#00ff00" />'
),
(
'<path d="M0.0,-4.5 L0.0,-3.5 L4.0,-3.5 L4.0,-4.5 L0.0,-4.5 z" '
'fill="#0000ff" />'
),
]
)
示例7: test_custom_cap
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_custom_cap():
def circle_cap(pen, end):
pen.arc_to(end)
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
p.last_segment().end_cap = circle_cap
assert_path_data(
p, 0,
'M0,-1 L0,1 L5,1 A 1,1 0 0 0 5,-1 L0,-1 z'
)
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
p.last_segment().start_cap = circle_cap
assert_path_data(
p, 0,
'M0,-1 A 1,1 0 1 0 0,1 L5,1 L5,-1 L0,-1 z'
)
示例8: test_color_formats
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_color_formats():
for color, output in [
(
(1.0, 0.0, 0.0),
'#ff0000',
),
(
Color.NewFromHtml('red'),
'#ff0000',
),
(
'green',
'#008000',
),
(
'#123456',
'#123456',
),
]:
p = Pen()
p.stroke_mode(2.0, color)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
assert_equal(
p.paper.svg_elements(0)[0],
'<path d="M0,-1 L0,1 L5,1 L5,-1 L0,-1 z" fill="{}" />'.format(output)
)
示例9: test_arc_angle_error
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_arc_angle_error():
# Endpoints with certain angles do not go all the way across the
# stroke, and are disallowed.
p = Pen()
p.stroke_mode(1.0)
p.arc_left(90, 10, start_slant=0)
seg = p.last_segment()
assert seg.start_joint_illegal
assert not seg.end_joint_illegal
p = Pen()
p.stroke_mode(1.0)
p.arc_left(90, 10, end_slant=90)
seg = p.last_segment()
assert not seg.start_joint_illegal
assert seg.end_joint_illegal
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.arc_left(90, radius=5, start_slant=25)
seg = p.last_segment()
assert seg.start_joint_illegal
assert not seg.end_joint_illegal
# A combination of angles can also create a degenerate arc.
p = Pen()
p.stroke_mode(1.0)
p.turn_toward((1, 0))
p.turn_left(1)
p.arc_to((1, 0), start_slant=40, end_slant=-40)
seg = p.last_segment()
assert seg.start_joint_illegal
assert seg.end_joint_illegal
示例10: draw
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def draw(offset):
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(0.5 + offset, end_slant=45)
return p
示例11: test_joint_loop_color
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_joint_loop_color():
p = Pen()
p.move_to((0, 0))
p.turn_to(0)
# Draw a square with one side a different color. It joins to the
# beginning correctly.
p.stroke_mode(2.0, color='black')
p.line_forward(5)
p.turn_left(90)
p.line_forward(5)
p.turn_left(90)
p.line_forward(5)
p.turn_left(90)
p.stroke_mode(2.0, color='red')
p.line_forward(5)
assert_equal(len(p.paper.paths), 1)
assert_path_data(
p, 0,
[
'M1,-1 L-1,1 L6,1 L6,-6 L-1,-6 L1,-4 L4,-4 L4,-1 L1,-1 z',
'M1,-4 L-1,-6 L-1,1 L1,-1 L1,-4 z',
]
)
示例12: test_arc_joint_continue
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_arc_joint_continue():
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.arc_left(90, 5)
p.arc_left(90, 5)
p.move_to((0, 0))
p.turn_to(0)
p.arc_right(90, 5)
p.arc_right(90, 5)
assert_path_data(
p, 0,
(
'M0,-1 L0,1 A 6,6 0 0 0 6,-5 A 6,6 0 0 0 0,-11 '
'L0,-9 A 4,4 0 0 1 4,-5 A 4,4 0 0 1 0,-1 z '
'M0,-1 L0,1 A 4,4 0 0 1 4,5 A 4,4 0 0 1 0,9 '
'L0,11 A 6,6 0 0 0 6,5 A 6,6 0 0 0 0,-1 z'
),
)
示例13: test_arc_joint_numerical
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_arc_joint_numerical():
# Sometimes arc joints can miss the mark if they have odd float numbers.
p = Pen()
p.stroke_mode(0.5)
p.move_to((-26.685559703113075, 65.00539003547281))
p.turn_to(202.85281173472714)
p.arc_right(180, 1)
# This shouldn't error:
p.arc_right(50.443252846269075, center=(0.5, 0.5))
示例14: test_start_slant_legal_joint
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_start_slant_legal_joint():
# Create a joint that is only legal because of the start slant.
p = Pen()
p.outline_mode(1.0, 0.1)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(0.8, start_slant=-45)
p.turn_left(90)
p.outline_mode(2.0, 0.1)
p.line_forward(5)
示例15: test_line
# 需要导入模块: from canoepaddle.pen import Pen [as 别名]
# 或者: from canoepaddle.pen.Pen import turn_to [as 别名]
def test_line():
p = Pen()
p.fill_mode()
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
assert_path_data(
p, 0,
'M0,0 L5,0'
)