本文整理汇总了Python中canoepaddle.Pen.stroke_mode方法的典型用法代码示例。如果您正苦于以下问题:Python Pen.stroke_mode方法的具体用法?Python Pen.stroke_mode怎么用?Python Pen.stroke_mode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类canoepaddle.Pen
的用法示例。
在下文中一共展示了Pen.stroke_mode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_translate
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_translate():
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(3)
p.arc_left(90, 3)
p.turn_left(90)
p.move_forward(3)
p.fill_mode()
p.circle(0.5)
p.move_forward(3)
p.square(1)
p.paper.translate((1, 1))
assert_equal(
p.paper.svg_elements(1),
[
(
'<path d="M1.0,-1.5 L1.0,-0.5 L4.0,-0.5 A 3.5,3.5 0 0 0 '
'7.5,-4.0 L6.5,-4.0 A 2.5,2.5 0 0 1 4.0,-1.5 L1.0,-1.5 z" '
'fill="#000000" />'
),
(
'<path d="M4.5,-4.0 A 0.5,0.5 0 0 0 3.5,-4.0 '
'A 0.5,0.5 0 0 0 4.5,-4.0 z" fill="#000000" />'
),
(
'<path d="M0.5,-3.5 L1.5,-3.5 L1.5,-4.5 L0.5,-4.5 L0.5,-3.5 z" '
'fill="#000000" />'
),
]
)
示例2: test_fuse_with_joint
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_fuse_with_joint():
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(180)
p.line_forward(5)
p.turn_left(90)
p.line_forward(5)
p.break_stroke()
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
assert_path_data(
p, 0,
[
'M0,1 L0,-1 L-6,-1 L-6,5 L-4,5 L-4,1 L0,1 z',
'M0,-1 L0,1 L5,1 L5,-1 L0,-1 z',
]
)
p.paper.join_paths()
p.paper.fuse_paths()
assert_path_data(
p, 0,
'M-6,5 L-4,5 L-4,1 L5,1 L5,-1 L-6,-1 L-6,5 z'
)
示例3: test_copy_loop
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_copy_loop():
p = Pen()
p.stroke_mode(0.2)
def square():
p.turn_to(180)
p.line_forward(1)
p.turn_left(90)
p.line_forward(1)
p.turn_left(90)
p.line_forward(1)
p.turn_left(90)
p.line_forward(1)
p.move_to((0, 0))
square()
p = p.copy(paper=True)
p.move_to((2, 0))
square()
assert_path_data(
p, 1,
(
'M0.1,-0.1 L-1.1,-0.1 L-1.1,1.1 L0.1,1.1 L0.1,-0.1 z '
'M-0.1,0.1 L-0.1,0.9 L-0.9,0.9 L-0.9,0.1 L-0.1,0.1 z '
'M2.1,-0.1 L0.9,-0.1 L0.9,1.1 L2.1,1.1 L2.1,-0.1 z '
'M1.9,0.1 L1.9,0.9 L1.1,0.9 L1.1,0.1 L1.9,0.1 z'
)
)
示例4: test_mirror_end_slant
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_mirror_end_slant():
paper = Paper()
p = Pen()
p.stroke_mode(sqrt2)
p.move_to((0, 0))
p.turn_to(-45)
p.line_forward(5 * sqrt2, end_slant=45)
p.paper.mirror_x(0)
paper.merge(p.paper)
p = Pen()
p.stroke_mode(sqrt2)
p.move_to((0, 0))
p.turn_to(45)
p.line_forward(5 * sqrt2)
paper.merge(p.paper)
paper.join_paths()
paper.fuse_paths()
assert_path_data(
paper, 1,
'M-5.5,4.5 L-4.5,5.5 L5.5,-4.5 L4.5,-5.5 L-5.5,4.5 z'
)
示例5: test_center_on_xy
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_center_on_xy():
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(4)
p.move_to((2, 1))
p.circle(1)
p.paper.center_on_x(0)
assert_equal(
p.paper.svg_elements(0),
[
'<path d="M-2,-1 L-2,1 L2,1 L2,-1 L-2,-1 z" fill="#000000" />',
'<path d="M2,-1 A 2,2 0 0 0 -2,-1 A 2,2 0 0 0 2,-1 z" fill="#000000" />',
]
)
p.paper.center_on_y(0)
assert_equal(
p.paper.svg_elements(1),
[
(
'<path d="M-2.0,0.0 L-2.0,2.0 L2.0,2.0 L2.0,0.0 L-2.0,0.0 z" '
'fill="#000000" />'
),
(
'<path d="M2.0,0.0 A 2.0,2.0 0 0 0 -2.0,0.0 '
'A 2.0,2.0 0 0 0 2.0,0.0 z" fill="#000000" />'
),
]
)
示例6: draw_template_path
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def draw_template_path():
pen = Pen()
pen.stroke_mode(0.05, '#466184')
pen.turn_to(0)
pen.move_to((0, BOTTOM))
pen.line_forward(10)
pen.move_to((0, MIDDLE))
pen.line_forward(10)
pen.move_to((0, TOP))
pen.line_forward(10)
pen.paper.center_on_x(0)
return pen.paper
示例7: test_join_paths_thick
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_join_paths_thick():
# Segments join together if possible when join_paths is called.
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
p.break_stroke()
p.turn_left(90)
p.line_forward(5)
p.paper.join_paths()
assert_path_data(
p, 0,
'M0,-1 L0,1 L6,1 L6,-5 L4,-5 L4,-1 L0,-1 z'
)
示例8: test_fuse_paths
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_fuse_paths():
# Create two halves of a stroke in the same direction.
p = Pen()
p.stroke_mode(sqrt2)
p.move_to((-3, 3))
p.turn_to(-45)
p.line_forward(3 * sqrt2, start_slant=0)
p.line_forward(3 * sqrt2, end_slant=0)
p.paper.fuse_paths()
assert_path_data(
p, 1,
['M-2.0,-3.0 L-4.0,-3.0 L2.0,3.0 L4.0,3.0 L-2.0,-3.0 z']
)
示例9: test_join_and_fuse_simple
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_join_and_fuse_simple():
# Create two halves of a stroke in separate directions.
p = Pen()
p.stroke_mode(sqrt2)
p.move_to((0, 0))
p.turn_to(-45)
p.line_forward(3 * sqrt2, end_slant=0)
p.break_stroke()
p.move_to((0, 0))
p.turn_to(-45 + 180)
p.line_forward(3 * sqrt2, end_slant=0)
p.paper.join_paths()
p.paper.fuse_paths()
assert_path_data(
p, 1,
'M2.0,3.0 L4.0,3.0 L-2.0,-3.0 L-4.0,-3.0 L2.0,3.0 z'
)
示例10: test_join_paths_turn_back_no_joint
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_join_paths_turn_back_no_joint():
p = Pen()
p.stroke_mode(1.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(10)
p.turn_right(180)
p.break_stroke()
p.line_forward(5)
p.paper.join_paths()
line1, line2 = p.last_path().segments
assert line1.end_joint_illegal
assert line2.start_joint_illegal
assert_path_data(
p, 1,
(
'M0.0,-0.5 L0.0,0.5 L10.0,0.5 L10.0,-0.5 '
'L5.0,-0.5 L5.0,0.5 L10.0,0.5 L10.0,-0.5 L0.0,-0.5 z'
)
)
示例11: test_copy_custom_cap
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_copy_custom_cap():
# Regression test for a bug where doing pen.copy() in a cap function would
# break outline drawing.
p = Pen()
p.stroke_mode(2.0)
p.move_to((0, 0))
p.turn_to(0)
p.line_forward(5)
p.turn_left(90)
p.line_forward(5)
def copy_cap(pen, end):
pen.copy()
pen.line_to(end)
p.last_segment().end_cap = copy_cap
assert_path_data(
p, 0,
'M0,-1 L0,1 L6,1 L6,-5 L4,-5 L4,-1 L0,-1 z'
)
示例12: draw
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def draw():
p = Pen()
# Draw sine waves in various widths.
for width in [0.01, 0.1, 0.3, 0.5, 0.8, 1.0]:
p.stroke_mode(width)
func = sine_func_factory(
amplitude=1.0,
frequency=4 / math.pi,
phase=0,
)
p.parametric(
func,
start=0,
end=10,
step=0.1,
)
# Next line.
p.turn_to(-90)
p.move_forward(1.0 + 2 * width)
return p.paper
示例13: test_line_segment_bounds
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
def test_line_segment_bounds():
# Fill mode segment.
p = Pen()
p.fill_mode()
p.move_to((1, 0))
p.line_to((2, 3))
line = p.last_segment()
assert_equal(
line.bounds(),
Bounds(1, 0, 2, 3)
)
# Stroke mode segment.
p = Pen()
p.stroke_mode(sqrt2)
p.move_to((0, 0))
p.line_to((5, 5))
line = p.last_segment()
assert_equal(
line.bounds(),
Bounds(-0.5, -0.5, 5.5, 5.5)
)
示例14: Pen
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
from canoepaddle import Pen
p = Pen()
p.stroke_mode(0.15)
def trefoil(origin, radius, num_leaves, leaf_angle, step=1):
p.turn_to(90)
points = []
for i in range(num_leaves):
p.move_to(origin)
p.turn_right(360 / num_leaves)
p.move_forward(radius)
points.append(p.position)
p.move_to(points[0])
for i in range(num_leaves):
next_point = points[((i + 1) * step) % num_leaves]
p.turn_toward(origin)
p.turn_right(leaf_angle / 2)
p.arc_to(next_point)
trefoil((-6, 6), 3, 3, 110)
trefoil((0, 6), 2.7, 4, 120)
trefoil((6, 6), 2.7, 4, 70)
trefoil((-6, 0), 2.7, 5, 70)
trefoil((0, 0), 2.7, 5, 130)
trefoil((6, 0), 2.7, 5, 110, step=2)
trefoil((-6, -6), 2.7, 31, 20, step=14)
trefoil((0, -6), 3, 8, 120, step=3)
trefoil((6, -6), 2.7, 30, -90, step=1)
示例15: Pen
# 需要导入模块: from canoepaddle import Pen [as 别名]
# 或者: from canoepaddle.Pen import stroke_mode [as 别名]
from canoepaddle import Pen
p = Pen()
def trefoil(origin, radius, num_leaves, leaf_angle, step=1):
p.turn_to(90)
points = []
for i in range(num_leaves):
p.move_to(origin)
p.turn_right(360 / num_leaves)
p.move_forward(radius)
points.append(p.position)
p.move_to(points[0])
for i in range(num_leaves):
next_point = points[((i + 1) * step) % num_leaves]
p.turn_toward(origin)
p.turn_right(leaf_angle / 2)
p.arc_to(next_point)
p.stroke_mode(1.0, '#a00')
trefoil((0, 0), 8, 3, 110)
p.outline_mode(1.0, 0.1, '#111')
trefoil((0, 0), 8, 3, 110)
print(p.paper.format_svg())