File: module-fill-style.html

package info (click to toggle)
python-pychart 1.39-7.1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 1,840 kB
  • ctags: 1,836
  • sloc: python: 6,899; makefile: 81; sh: 30
file content (254 lines) | stat: -rw-r--r-- 8,961 bytes parent folder | download | duplicates (4)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><style type="text/css">
pre {background-color: #e0e0e0}
</style>

<link rel="STYLESHEET" href="pychart.css" type='text/css' />
<link rel="first" href="pychart.html" title='PyChart' />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="module-font.html" />
<link rel="prev" href="module-color.html" />
<link rel="parent" href="pychart.html" />
<link rel="next" href="module-font.html" />
<meta name='aesop' content='information' />
<title>16 Fill styles</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="15 Colors"
  href="module-color.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyChart"
  href="pychart.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="17 Drawing texts"
  href="module-font.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyChart</td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-color.html">15 Colors</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="pychart.html">PyChart</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-font.html">17 Drawing texts</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION0001600000000000000000">
16 Fill styles</A>
</H1>
<A NAME="module-fill-style"></A>
<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-273' xml:id='l2h-273' class="class">fill_style.T</tt></b>
<dd>
This class determines the color and the pattern of the
background of a region. Class <code>fill_style.T</code> itself is an
abstract base class; actual drawing functions are provided by
its subclassess, which are described later.
</dl>

<P>
This class supports the following attributes:

<P>
<dl><dt><b><tt id='l2h-274' xml:id='l2h-274' class="member">bgcolor</tt></b></dt>
<dd>
<b>Type:</b> color.T
( see Section&nbsp;<A href="module-color.html#module-color">15</A>)
<b>Default:</b> color.white. 

<P>
The background color.
</dl>
<dl><dt><b><tt id='l2h-275' xml:id='l2h-275' class="member">line_interval</tt></b></dt>
<dd>
<b>Type:</b> number
<b>Default:</b> 3. 

<P>
The interval between successive stitch lines.
</dl>
<dl><dt><b><tt id='l2h-276' xml:id='l2h-276' class="member">line_style</tt></b></dt>
<dd>
<b>Type:</b> line_style.T
( see Section&nbsp;<A href="module-line-style.html#module-line-style">14</A>)
<b>Default:</b> line_style.black. 

<P>
The style of the line. 
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-277' xml:id='l2h-277' class="class">fill_style.Plain</tt></b>
<dd>
This class just fills the region with solid background color.
Attributes line_style and line_interval are ignored.

<P>
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-278' xml:id='l2h-278' class="class">fill_style.Diag</tt></b>
<dd>
This class fills the region with diagonal lines.

<P>
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-279' xml:id='l2h-279' class="class">fill_style.Rdiag</tt></b>
<dd>
Fills the region with diagonal lines, but tilted in the opposite
direction from <code>fill_style.Diag</code>.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-280' xml:id='l2h-280' class="class">fill_style.Vert</tt></b>
<dd>
Fills the region with vertical lines.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-281' xml:id='l2h-281' class="class">fill_style.Horiz</tt></b>
<dd>
Fills the region with horizontal lines.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-282' xml:id='l2h-282' class="class">fill_style.Stitch</tt></b>
<dd>
Fills the region with horizontal and vertical lines.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-283' xml:id='l2h-283' class="class">fill_style.Wave</tt></b>
<dd>
Fills the region with horizontal wavy lines.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-284' xml:id='l2h-284' class="class">fill_style.Vwave</tt></b>
<dd>
Fills the region with vertical wavy lines.
</dl>

<P>
<dl><dt><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-285' xml:id='l2h-285' class="class">fill_style.Lines</tt></b>
<dd>
Fills the region with a series of short line segments.
</dl>

<P>
The below picture shows the standard set of fill styles. They are named
like <code>fill_style.</code><var>name</var>, where <var>name</var> are the labels shown
in the picture.

<P>
<IMG
  WIDTH="816" HEIGHT="402" ALIGN="BOTTOM" BORDER="0"
 SRC="./fillstyles.png"
 ALT="Image fillstyles">

<P>
Just for your information, the "rdiag3" style shown in the picture can
be created manually by the following code:

<P>
<div class="verbatim"><pre>
rdiag3 = <a href="module-fill-style.html">fill_style.</a>Rdiag(line_style=<a href="module-line-style.html">line_style.</a>T(width=3, color=<a href="module-color.html">color.</a>gray5),
                          line_interval=6)
</pre></div>

<P>
You can create your own fill style by subtyping <code>fill_style.T</code>.
It should provide the following public method:

<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-286' xml:id='l2h-286' class="method">draw</tt></b>(</nobr></td>
  <td><var>self, can, x1, y1, x2, y2</var>)</td></tr></table></dt>
<dd>
  This method is called to fill a rectangular
  region in a canvas. Parameter
  <var>can</var> is a canvas ( see Section&nbsp;<A href="module-canvas.html#module-canvas">21</A>), and
  region (<var>x1,y1</var>)-(<var>x2,y2</var>) specifies the region to be filled.
</dl>

<P>
Just for your information, below is how the Rdiag class is implemented.

<P>
<div class="verbatim"><pre>
class Rdiag(<a href="module-fill-style.html">fill_style.</a>T):
    """Fills the region with diagonal lines, but tilted in the opposite
direction from <a href="module-fill-style.html">fill_style.</a>Diag."""
    def draw(self, can, x1, y1, x2, y2):
        line_width = self.<a href="module-line-style.html">line_style.</a>width
        interval = self.line_interval * 1.414
        x1 -= line_width
        y1 -= line_width
        x2 += line_width
        y2 += line_width
        len = max(y2 - y1, x2 - x1)
        while curx in range(x1, x2 + len, interval):
            can.line(self.line_style, curx, y1, curx-len, y1+len)
</pre></div>

<P>

<DIV CLASS="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="15 Colors"
  href="module-color.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyChart"
  href="pychart.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="17 Drawing texts"
  href="module-font.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyChart</td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-color.html">15 Colors</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="pychart.html">PyChart</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-font.html">17 Drawing texts</A>
</div>
</div>
<hr />
<span class="release-info">Documentation released on July 2, 2005.</span>
</DIV>
<!--End of Navigation Panel-->

</BODY>
</HTML>