[IP - python] vreemde error bij Turtle (solved)

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

Lttlemoi
Posts: 7

[IP - python] vreemde error bij Turtle (solved)

Post#1 » Mon Oct 08, 2012 10:57 pm

Hallo,
ik heb al de eerste huistaak afgemaakt maar ik blijf met een vreemde bug zitten waar ik niets van snap.
(Als je zelf de oefening nog niet af hebt, gelieve dan niet al te veel inspiratie hier te halen)

ik heb twee bestanden, huistaak.py en discs.py

huistaak.py roept de functies van discs op om de schijven werkelijk te tekenen
SPOILERS - Click here:

Code: Select all

#
# Created on 8-okt.-2012
#
# @author: Stijn Manhaeve rolnummer: 20121442
# editor used: Eclipse 4.2.0 + PyDev
#
# This shows how to use the discs module

# import statements
import turtle
import discs

colors = ["green", # the colors
"purple", "magenta",
"blue", "yellow",
"orange", "red"]

wn = turtle.Screen() # create a window for the turtles
discs.draw_discs(colors, 600)
wn.mainloop()
discs.py bevat alles dat nodig is om de schijven te tekenen
SPOILERS - Click here:

Code: Select all

#
# Created on 8-okt.-2012
#
# @author: Stijn Manhaeve rolnummer: 20121442
# editor used: Eclipse 4.2.0 + PyDev
#
# to draw your own set of discs:
# import this module
# create a list of strings to use as colors
# choose the outer_radius of the largest disc
# call draw_discs(colors, start_radius)

# import statements
import turtle
import math
import random

# local fields
circle_quality = 270 # the number of sides used to draw a circle
circle_amount = 20 # amount of circles in each disc
animation_speed = 0 # the default animation speed for the turtles
radius_ratio = 7/8 # inner radius = radius_ratio*outer_radius
radius_degradation = 1/2 # new disc.radius = old radius*radius_degradation

# functions
def draw_poly(t, sides, length):
# t = turtle
# sides = number of sides
# length = length of sides
# (this function was already written by me for exercise 3 of chapter 4)

angle = 360/sides
for i in range(sides):
t.forward(length)
t.right(angle)

def draw_circle(t, x, y, r):
# t = turtle
# - should be positioned at the origin and facing east!
# x = x-coordinate of the midpoint
# y = y-coordinate of the midpoint
# r = radius

# calculate length of the sides
length = 2*r*math.sin(180/circle_quality)

# move to starting point
t.penup()
t.forward(x)
t.left(90)
t.forward(y+r)
t.right(90)
t.pendown()

# draw the circle
draw_poly(t, circle_quality, length)

def draw_disc(r, count, color):
# r = radius of the midpoints = outer radius
# count = the number of circles to draw for each disc
# color = disc color

inner = r*radius_ratio # calculate radius of the circles (the 'inner radius')
angle_jump = 360/count # the angle between two successive midpoints and the origin

# draw the circles
for i in range(count):
# calculate midpoint
x = r*math.cos(i*angle_jump)
y = r*math.sin(i*angle_jump)
# define the turtle
t = turtle.Turtle()
t.color(color)
t.hideturtle()
t.speed(animation_speed)
# draw the circle
draw_circle(t, x, y, inner)

def draw_discs(colors, start_radius):
# colors = which colors to use
# start_radius = starting outer radius

radius = start_radius
random.shuffle(colors)
for i in colors:
draw_disc(radius, circle_amount, i)
radius *= radius_degradation
als ik huistaak.py dan afspeel verschijnt er een nieuw venster, maar wordt er niks getekend.
Als ik het venster sluit verschijnt ineens deze foutmelding:

Code: Select all

Traceback (most recent call last):
File "C:\Users\Stijn Manhaeve\school\ua - bachelor Informatica\inleiding programmeren\Python projecten\huistaak1.py", line 19, in <module>
discs.draw_discs(colors, 600)
File "C:\Users\Stijn Manhaeve\school\ua - bachelor Informatica\inleiding programmeren\Python projecten\discs.py", line 86, in draw_discs
draw_disc(radius, circle_amount, i)
File "C:\Users\Stijn Manhaeve\school\ua - bachelor Informatica\inleiding programmeren\Python projecten\discs.py", line 77, in draw_disc
draw_circle(t, x, y, inner)
File "C:\Users\Stijn Manhaeve\school\ua - bachelor Informatica\inleiding programmeren\Python projecten\discs.py", line 56, in draw_circle
draw_poly(t, circle_quality, length)
File "C:\Users\Stijn Manhaeve\school\ua - bachelor Informatica\inleiding programmeren\Python projecten\discs.py", line 34, in draw_poly
t.forward(length)
File "C:\Users\Stijn Manhaeve\programma's\programmeren\python\lib\turtle.py", line 1629, in forward
self._go(distance)
File "C:\Users\Stijn Manhaeve\programma's\programmeren\python\lib\turtle.py", line 1597, in _go
self._goto(ende)
File "C:\Users\Stijn Manhaeve\programma's\programmeren\python\lib\turtle.py", line 3170, in _goto
self._pencolor, self._pensize, top)
File "C:\Users\Stijn Manhaeve\programma's\programmeren\python\lib\turtle.py", line 544, in _drawline
self.cv.coords(lineitem, *cl)
File "<string>", line 1, in coords
File "C:\Users\Stijn Manhaeve\programma's\programmeren\python\lib\tkinter\__init__.py", line 2264, in coords
self.tk.call((self._w, 'coords') + args))]
_tkinter.TclError: invalid command name ".53357928"
Last edited by Lttlemoi on Tue Oct 09, 2012 12:05 am, edited 1 time in total.

User avatar
Flipper
Posts: 193

Re: [IP - python] vreemde error bij Turtle

Post#2 » Mon Oct 08, 2012 11:09 pm

Mmh, waar heb jij de discs.py opgeslagen? Het is (denk ik) niet zo dat je een geschreven functie zomaar eender waar kunt opslaan om ze dan vervolgens vanuit een andere script te importeren. Je zou dat kunnen oplossen door

(1) De discs.py en die hele hoop die je daar geschreven heb, gewoon ergens bovenaan in je huistaak.py te copy-pasten. Vergeet dan niet daar de "import disc....(blah)" weg te halen, want je hebt die functie nu zelf binnenin je huistaak.py gedefinieerd.

(2) Of de discs.py in de directory van python te steken waar je alsnog vanuit je huistaak.py de discs.py kunt importeren.


(denk ik he, ik kan er totaal naast staan hoor :P )
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

Lttlemoi
Posts: 7

Re: [IP - python] vreemde error bij Turtle

Post#3 » Mon Oct 08, 2012 11:24 pm

Ik heb 1 al geprobeert en kreeg exact dezelfde errors.
Ik denk niet dat het probleem daar ergens zit omdat in de traceback alle functies in de juiste volgorde staan.
Als de bestanden in dezelfde map staan kun je ze gewoon importeren zoals de andere modules

Ik heb ondertussen nog wat verder opzoekwerk gedaan en er staat iets soortgelijks in de buglist van Python
link: http://psf.upfronthosting.co.za/roundup ... s=1&type=5

(het is het derde laatste item in de tabel)

User avatar
Flipper
Posts: 193

Re: [IP - python] vreemde error bij Turtle

Post#4 » Mon Oct 08, 2012 11:43 pm

ja, je zou ook de script discs.py kunnen nakijken op syntax en/of runtime errors, ik heb al vaak datzelfde soort problemen gehad met verschillende opdrachten. De traceback in Python werkt trouwens niet altijd zuiver, ik kreeg bijvoorbeeld een error op een lijn die eigenlijk in orde was, maar de error zat in een paar lijnen hoger, waar ik een ")" vergeten was..
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

Lttlemoi
Posts: 7

Re: [IP - python] vreemde error bij Turtle

Post#5 » Mon Oct 08, 2012 11:50 pm

da zou uitgeslote moete zijn (Eclipse is vrij goed in het opsporen van zulke fouten) maar ik ga ht nog eens nakijken (je weet mr nooit natuurlijk :wink: )

Lttlemoi
Posts: 7

Re: [IP - python] vreemde error bij Turtle

Post#6 » Tue Oct 09, 2012 12:05 am

ik weet al wat het probleem is.
Omdat er niets verscheen sloot ik het scherm af en dat genereerde de fout. blijkbaar moet ik gewoon wat geduldiger zijn met turtle :mrgreen:

User avatar
Timmy
Posts: 844

Re: [IP - python] vreemde error bij Turtle

Post#7 » Tue Oct 09, 2012 2:24 am

Flipper wrote:Mmh, waar heb jij de discs.py opgeslagen? Het is (denk ik) niet zo dat je een geschreven functie zomaar eender waar kunt opslaan om ze dan vervolgens vanuit een andere script te importeren. Je zou dat kunnen oplossen door
Dan wilk later u eindwerk wel eens bekijken als ge alles in 1 file begint te definieren :D

Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D

User avatar
DenBeke
Posts: 20
Contact:

Re: [IP - python] vreemde error bij Turtle

Post#8 » Tue Oct 09, 2012 8:12 am

Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D
Dit is dan ook veel leuker dan Hello World en basis arrays... :)

User avatar
Timmy
Posts: 844

Re: [IP - python] vreemde error bij Turtle

Post#9 » Tue Oct 09, 2012 11:42 am

DenBeke wrote:
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D
Dit is dan ook veel leuker dan Hello World en basis arrays... :)
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon" :(

Sfeeeeeer! http://www.ethoberon.ethz.ch/native/snaps/tile.jpg" onclick="window.open(this.href);return false;

User avatar
Fristi
WOZ
Posts: 4565

Re: [IP - python] vreemde error bij Turtle

Post#10 » Tue Oct 09, 2012 12:47 pm

Timmy wrote:
DenBeke wrote:
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D
Dit is dan ook veel leuker dan Hello World en basis arrays... :)
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon" :(

Sfeeeeeer! http://www.ethoberon.ethz.ch/native/snaps/tile.jpg" onclick="window.open(this.href);return false;
KILL WITH FIRE :evil:
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

timvdm
Posts: 47

Re: [IP - python] vreemde error bij Turtle (solved)

Post#11 » Tue Oct 09, 2012 4:03 pm

Hmm, je weet toch dat er ook een turtle.Turtle.circle() functie is he :D

User avatar
Nathan
Posts: 64
Contact:

Re: [IP - python] vreemde error bij Turtle

Post#12 » Wed Oct 10, 2012 7:17 pm

Timmy wrote:
DenBeke wrote:
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D
Dit is dan ook veel leuker dan Hello World en basis arrays... :)
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon" :(

Sfeeeeeer! http://www.ethoberon.ethz.ch/native/snaps/tile.jpg" onclick="window.open(this.href);return false;
OBERONCLOWN IS WATCHING YOU TIMMY.

Image
"Man is least himself when he talks in his own person...Give him a mask and he will tell the truth." - Anon.

2010-2011: WINAK Schacht.
2011-2012: WINAK Ancien.
2012-2013: WINAK Ancien.

User avatar
Timmy
Posts: 844

Re: [IP - python] vreemde error bij Turtle

Post#13 » Wed Oct 10, 2012 7:29 pm

Nathan wrote:
Timmy wrote:
DenBeke wrote:
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array :D
Dit is dan ook veel leuker dan Hello World en basis arrays... :)
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon" :(

Sfeeeeeer! http://www.ethoberon.ethz.ch/native/snaps/tile.jpg" onclick="window.open(this.href);return false;
OBERONCLOWN IS WATCHING YOU TIMMY.

Image
*hides*

Lttlemoi
Posts: 7

Re: [IP - python] vreemde error bij Turtle (solved)

Post#14 » Wed Oct 10, 2012 8:44 pm

timvdm wrote:Hmm, je weet toch dat er ook een turtle.Turtle.circle() functie is he :D
ja, da heb ik daarna pas ontdekt :)
er is trouwes ook een setx() en sety() functie. Kheb trouwes al heel wa opnieuw veranderd aan mn programma.

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 4 guests

cron