summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2006-07-10 22:11:28 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2006-07-10 22:11:28 (GMT)
commit06c68b800ca3e31d2551923083ce8294ab94cb24 (patch)
tree55f5e94158b05c9fcc5d8138fd5f9109a0bb3f22
parent722b88308da16225530a8852adc0581a918d5105 (diff)
downloadcpython-06c68b800ca3e31d2551923083ce8294ab94cb24.zip
cpython-06c68b800ca3e31d2551923083ce8294ab94cb24.tar.gz
cpython-06c68b800ca3e31d2551923083ce8294ab94cb24.tar.bz2
Patch #1519566: Remove unused _tofill member.
Make begin_fill idempotent. Update demo2 to demonstrate filling of concave shapes.
-rw-r--r--Doc/lib/libturtle.tex4
-rw-r--r--Lib/lib-tk/turtle.py35
-rw-r--r--Misc/NEWS2
3 files changed, 28 insertions, 13 deletions
diff --git a/Doc/lib/libturtle.tex b/Doc/lib/libturtle.tex
index 6b9585f..2b329b7 100644
--- a/Doc/lib/libturtle.tex
+++ b/Doc/lib/libturtle.tex
@@ -108,7 +108,9 @@ and call \code{fill(0)} when you finish to draw the path.
\end{funcdesc}
\begin{funcdesc}{begin\_fill}{}
-Switch turtle into filling mode; equivalent to \code{fill(1)}.
+Switch turtle into filling mode;
+Must eventually be followed by a corresponding end_fill() call.
+Otherwise it will be ignored.
\versionadded{2.5}
\end{funcdesc}
diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py
index 9fa447c..4cface7 100644
--- a/Lib/lib-tk/turtle.py
+++ b/Lib/lib-tk/turtle.py
@@ -86,7 +86,6 @@ class RawPen:
self._color = "black"
self._filling = 0
self._path = []
- self._tofill = []
self.clear()
canvas._root().tkraise()
@@ -306,19 +305,15 @@ class RawPen:
{'fill': self._color,
'smooth': smooth})
self._items.append(item)
- if self._tofill:
- for item in self._tofill:
- self._canvas.itemconfigure(item, fill=self._color)
- self._items.append(item)
self._path = []
- self._tofill = []
self._filling = flag
if flag:
self._path.append(self._position)
- self.forward(0)
def begin_fill(self):
""" Called just before drawing a shape to be filled.
+ Must eventually be followed by a corresponding end_fill() call.
+ Otherwise it will be ignored.
Example:
>>> turtle.begin_fill()
@@ -331,7 +326,8 @@ class RawPen:
>>> turtle.forward(100)
>>> turtle.end_fill()
"""
- self.fill(1)
+ self._path = [self._position]
+ self._filling = 1
def end_fill(self):
""" Called after drawing a shape to be filled.
@@ -901,15 +897,30 @@ def demo2():
speed(speeds[sp])
color(0.25,0,0.75)
fill(0)
- color("green")
- left(130)
+ # draw and fill a concave shape
+ left(120)
up()
- forward(90)
+ forward(70)
+ right(30)
+ down()
color("red")
- speed('fastest')
+ speed("fastest")
+ fill(1)
+ for i in range(4):
+ circle(50,90)
+ right(90)
+ forward(30)
+ right(90)
+ color("yellow")
+ fill(0)
+ left(90)
+ up()
+ forward(30)
down();
+ color("red")
+
# create a second turtle and make the original pursue and catch it
turtle=Turtle()
turtle.reset()
diff --git a/Misc/NEWS b/Misc/NEWS
index 770b87f..fd6c17c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -46,6 +46,8 @@ Core and builtins
Library
-------
+- Patch #1519566: Update turtle demo, make begin_fill idempotent.
+
- Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
environment variable to be set in order to the SDK environment
for finding the compiler, include files, etc.