def GrayscaleImage():
    gw = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    image = GImage(IMAGE_FILENAME)
    gw.add(image, (gw.getWidth() - IMAGE_SEP) / 2 - image.getWidth(),
           (gw.getHeight() - image.getHeight()) / 2)
    grayscale = createGrayscaleImage(image)
    gw.add(grayscale, (gw.getWidth() + IMAGE_SEP) / 2,
           (gw.getHeight() - image.getHeight()) / 2)
Exemple #2
0
def Pacman():
    def bodyAnimation():
        def step():
            nonlocal d_ang
            arc.move(dx, 0)
            START = arc.getStartAngle()
            SWEEP = arc.getSweepAngle()
            if START == abs(d_ang):
                d_ang *= -1
            if SWEEP == SWEEP_ANGLE:
                d_ang *= -1
            arc.setStartAngle(START + d_ang)
            arc.setSweepAngle(SWEEP - 2 * d_ang)
            if arc.getX() > gw.getWidth() - d:
                timer.stop()

        d_ang = (360 - (SWEEP_ANGLE + START_ANGLE)) / M_STEPS
        timer = gw.createTimer(step, TIME_STEP)
        timer.setRepeats(True)
        timer.start()

    gw = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    dx = (gw.getWidth() - d) / N_STEPS
    arc = GArc(0, 0, d, d, START_ANGLE, SWEEP_ANGLE)
    arc.setFilled(True)
    arc.setFillColor('yellow')
    gw.add(arc, 5, (GWINDOW_HEIGHT / 2) - (d / 2))

    bodyAnimation()
def CreateMaze():
    g = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    maze = Maze(MAZE_ROWS, MAZE_COLS, SQUARE_SIZE)
    x = (g.getWidth() - maze.getWidth()) / 2
    y = (g.getHeight() - maze.getHeight()) / 2
    createRandomMaze(maze)
    g.add(maze, x, y)
def tester():

    sideLen = 100
    print(
        "How many sides do you want your regular polygon to have? Enter a positive integer."
    )
    iPut = int(input())
    gw = GWindow(sideLen * 3, sideLen * 3)
    gr = GRegularPolygon(iPut, 30)
    gw.add(gr, gw.getWidth() / 2, gw.getHeight() / 2)
def CreateMaze2():
    g = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    maze = Maze(MAZE_ROWS, MAZE_COLS, SQUARE_SIZE)
    x = (g.getWidth() - maze.getWidth()) / 2
    y = (g.getHeight() - maze.getHeight()) / 2
    #createRandomMaze(maze)
    #g.add(maze, x, y)
    #g.setInterval(g.add(wall.setColor("Black")), 2000)
    walls = maze.getWalls()
    random.shuffle(walls)
    squares = maze.getSquares()
    for square in squares:
        square.setColor(randomColor())
    for wall in walls:
        updateMaze(maze, wall, g)
Exemple #6
0
def Kindergarten():
	gw = GWindow(GWINDOW_WIDTH,GWINDOW_HEIGHT)
	x0 = (gw.getWidth() - N_COLUMNS * SQUARE_SIZE) / 2
	y0 = (gw.getHeight()- N_ROWS * SQUARE_SIZE) / 2
	for row in range(N_ROWS):
		for col in range(N_COLUMNS):
			x = x0 + col * SQUARE_SIZE
			y = y0 + row * SQUARE_SIZE
			if row % 4 == 0:
				sq = GRect(x, y, SQUARE_SIZE, SQUARE_SIZE)
				sq.setFilled((row + col) % 2 != 0)
				gw.add(sq)
			elif row % 2 != 0:
				sq = GRect(x + ((1/3) * SQUARE_SIZE), y, SQUARE_SIZE, SQUARE_SIZE)
				sq.setFilled((row + col) % 2 != 0)
				gw.add(sq)
			else:
				sq = GRect(x + ((1/2) * SQUARE_SIZE), y, SQUARE_SIZE, SQUARE_SIZE)
				sq.setFilled((row + col) % 2 != 0)
				gw.add(sq)
				end_sq = GRect(x0, y0 + row * SQUARE_SIZE, SQUARE_SIZE * (1/2), SQUARE_SIZE)
				end_sq.setFilled(True)
				gw.add(end_sq)
			line = GLine(x0, y, x0 + N_COLUMNS * SQUARE_SIZE, y)
			line.setColor('darkgrey')
			width = line.getWidth()
			line.setLineWidth(width * 2)
			gw.add(line)
	rect = GRect(x0 + SQUARE_SIZE * N_COLUMNS, y0, SQUARE_SIZE * .5, y0 + SQUARE_SIZE * N_ROWS)
	rect.setFilled(True)
	rect.setColor('white')
	gw.add(rect)
	for i in range(2):
		line = GLine(x0 + (i * SQUARE_SIZE * N_COLUMNS), y0, x0 + (i * SQUARE_SIZE * N_COLUMNS), y0 + (SQUARE_SIZE * N_ROWS))
		line.setColor('darkgrey')
		gw.add(line)
	end = GLine(x0, y0 + N_ROWS * SQUARE_SIZE, x0 + N_COLUMNS * SQUARE_SIZE, y0 + N_ROWS * SQUARE_SIZE)
	end.setColor('darkgrey')
	gw.add(end)
def Swirl():
    gw = GWindow(GW_WIDTH,GW_HEIGHT)
    allFlowers=[]
    theta=0
    steps=0
    angleNumber=4
    diamondAngle=THETA[3]
    limChanger=0
    stepChanger=10
    angularOffset=(.5*diamondAngle)
    aOchanger=0
    
    

    def setUp():#sets up scene
        nonlocal allFlowers,theta,diamondAngle,angularOffset
        lim=GW_WIDTH*2
        while(lim>=1):
            flower=drawFlowerz(lim,theta,diamondAngle)
            gw.add(flower,MIDX,MIDY)
            theta+= angularOffset
            lim= changeLim(lim)
            allFlowers.append(flower)
            
    def changeDiamondAngle():#changes the number of diamonds, or the number of colors
        nonlocal diamondAngle,angleNumber,angularOffset
        angleNumber+=1
        
        if angleNumber>len(THETA)-1:
            angleNumber=0
        diamondAngle=THETA[angleNumber]
        angularOffset=(.5*diamondAngle)
        
    def click(e):
        buttonPressed=gw2.getElementAt(e.getX(),e.getY())
        if buttonPressed==changeAngleButton:
            changeDiamondAngle()
        if buttonPressed==changeSpaceOffsetButton:
            changeSpace()
        if buttonPressed==changeAngularOffsetButton:
            changeAngularOff()
            
    
    def changeAngularOff():#changes angular offset of each flower with respect to the previous
        nonlocal diamondAngle,angularOffset,aOchanger
        aOchanger+=1
        if aOchanger>2:
            aOchanger=0
        if aOchanger==0:
            angularOffset=(.5*diamondAngle)
        if aOchanger==1:
            angularOffset=(.75*diamondAngle)
        if aOchanger==2:
            angularOffset=(2*diamondAngle)
        
    def step():
        nonlocal allFlowers,theta,steps,diamondAngle,stepChanger,angularOffset
        for i in allFlowers:
            gw.remove(i)
        allFlowers.clear()
        lim=GW_WIDTH*2
        steps+=stepChanger
        theta=0+(steps)
        
        while(lim>=1):
            flower=drawFlowerz(lim,theta,diamondAngle)
            gw.add(flower,MIDX,MIDY)
            theta+= angularOffset
            lim= changeLim(lim)
            allFlowers.append(flower)
        
    def changeSpace(): 
        nonlocal limChanger
        limChanger+=1
    
    def changeLim(lim): #changes space offset between each flower
        nonlocal limChanger,stepChanger
        if limChanger>=4:
            limChanger=0
        if limChanger==0:
            stepChanger=10
            return ((.5* lim)/cos((radians(.5*diamondAngle))))
        if limChanger==1:
            stepChanger=30
            return lim-60
        if limChanger==2:
            stepChanger=20
            return lim-100
        if limChanger==3:
            stepChanger=40
            return lim-40
    
    setUp()
    gw2=GWindow(GW_WIDTH,100)
    gw.setInterval(step,TIME_STEP)
    
   
    gw2.addEventListener("click",click)
    
    space=gw2.getWidth()//4
    changeAngleButton=createButton("Change Number of Colors") #changes the number of diamonds
    changeSpaceOffsetButton=createButton("Change Space Offset")#changes the space between each flower
    changeAngularOffsetButton=createButton("Change Angular Offset")#changes offset of each flower with respect to the previous
    gw2.add(changeAngleButton,space,gw2.getHeight()//2)
    gw2.add(changeSpaceOffsetButton,space*2,gw2.getHeight()//2)
    gw2.add(changeAngularOffsetButton,space*3,gw2.getHeight()//2)
Exemple #8
0
def DrawHexagon():
    gw = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    hexagon = createHexagon(HEXAGON_SIDE)
    gw.add(hexagon, gw.getWidth() / 2, gw.getHeight() / 2)
Exemple #9
0
def TestSierpinskiTriangle():
    gw = GWindow(GWINDOW_WIDTH, GWINDOW_HEIGHT)
    triangle = GSierpinskiTriangle(100, 1)
    gw.add(triangle, gw.getWidth() / 2, gw.getHeight() / 2)