[Tutor] Empty GraphicsWindow
niyanaxx95 at gmail.com
niyanaxx95 at gmail.com
Fri Nov 21 04:00:42 CET 2014
I need help figuring why my GraphicsWindow empty, I cannot figure out why it is empty.
Here is my code :
# Import graphics from module
from graphics import GraphicsWindow
tileSize = 0
def main() :
# Define global variables
tilesInRow = 0
tilesInCol = 0
gapX = 0
gapY = 0
# Input room width
roomWidth = getNumber(100, 500, "Enter a room width between 100 and 500: ", "")
roomLength = getNumber(100, 450, "Enter a room length between 100 and 450: ", "")
tileSize = getNumber(20, 50, "Enter a tile size between 20 and 50: ", "")
numCols = tilesForSize(roomWidth, tileSize)
print("The total number of Columns:", numCols)
numRows = tilesForSize(roomLength, tileSize)
print("The total number of Rows:", numRows)
# Print the total number of tiles
print("The total number or Tiles: %d" %(numCols * numRows))
# Calculate the gap
# the gap = (the total width - the number of tiles * tile width / 2
gapX = calculateGap(roomWidth, numCols)
gapY = calculateGap(roomLength, numRows)
# Print the gaps
print("The gap at each end of a row is: %.1f" % (gapX))
print("The gap at each end of a column is: %.1f" % (gapY))
# Draw graphics window
win = GraphicsWindow(roomWidth, roomLength)
canvas = win.canvas()
# Draw the checkered surface
for row in range(numRows) :
# If the row is even
if row % 2 == 0 :
# If the column is even set color to black, if odd yellow
drawRow(canvas, row, gapX, numCols, gapY, "black", "yellow")
# If the row is odd
else:
# If the column is even set color to yellow, if odd black
drawRow(canvas, row, gapX, numCols, gapY, "yellow", "black")
win.wait()
def getNumber(minBound, maxBound, msg, err_msg) :
num = minBound - 1
while num < minBound or num > maxBound :
if(msg == "") :
num = float(input("Enter a number between %f and %f: " % (minBound, maxBound)))
else :
num = float(input(msg))
if num < minBound or num > maxBound :
if err_msg == "" :
print("Invalid input.")
else:
print(err_msg)
return num
def tilesForSize(size, tileSize) :
pairs = int(size - tileSize) // int(2 * tileSize)
num = int(1 + (2 * pairs))
return num
def calculateGap(size, num) :
return (size - num * tileSize) / 2
def drawRow(canvas, row, gapX, numCols, gapY, color1, color2) :
for col in range(numCols) :
if col % 2 == 0 :
canvas.setColor("black")
else:
canvas.setColor("yellow")
# Draw the actual rectangle
canvas.drawRect(row * tileSize + gapX, col * tileSize + gapY, tileSize, tileSize)
main ()
Sent from Windows Mail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20141121/46c537a8/attachment-0001.html>
More information about the Tutor
mailing list