Menu

[8a2e19]: / pychart3 / zap.py  Maximize  Restore  History

Download this file

81 lines (68 with data), 2.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#
# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com)
#
# Jockey is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Jockey is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# Modified 2010-03-31 by Jussi Salmela
#
from . import fill_style
from . import line_style
import copy
def _draw_zap(can, p1, p2, style, pat):
x = copy.deepcopy(p1)
x.extend(p2)
can.polygon(None, pat, x)
can.lines(style, p1)
can.lines(style, p2)
def zap_horizontally(can, style, pat, x1, y1, x2, y2, xsize, ysize):
"""Draw a horizontal "zapping" symbol on the canvas that shows
that a graph is ripped in the middle.
Parameter <fill_style> specifies the style for the zig-zag lines.
PAT specifies the pattern with which the area is filled.
The symbol is drawn in the rectangle (<x1>, <y1>) - (<x2>, <y2>).
Each "zigzag" has the width <xsize>, height <ysize>."""
assert isinstance(style, line_style.T)
assert isinstance(pat, fill_style.T)
points = []
points2 = []
x = x1
y = y1
while x < x2:
points.append((x, y))
points2.append((x, y + (y2-y1)))
x += xsize
if y == y1:
y += ysize
else:
y -= ysize
points2.reverse()
_draw_zap(can, points, points2, style, pat)
def zap_vertically(can, style, pat, x1, y1, x2, y2, xsize, ysize):
"""Draw a vertical "zapping" symbol on the canvas that shows
that a graph is ripped in the middle.
Parameter <fill_style> specifies the style for the zig-zag lines.
PAT specifies the pattern with which the area is filled.
The symbol is drawn in the rectangle (<x1>, <y1>) - (<x2>, <y2>).
Each "zigzag" has the width <xsize>, height <ysize>."""
points = []
points2 = []
x = x1
y = y1
while y < y2:
points.append((x, y))
points2.append((x + (x2-x1), y))
y += ysize
if x == x1:
x += xsize
else:
x -= xsize
points2.reverse()
_draw_zap(can, points, points2, style, pat)