반응형
1. 움직이는 애니메이션 공 프로그램을 작성하시오.
'''
움직이는 애니메이션 공 프로그램을 작성하시오.
'''
from tkinter import*
import random
import time
window = Tk()
canvas = Canvas(window, width=600, height=400)
canvas.pack()
class Ball():
def __init__(self, color, size):
self.id = canvas.create_oval(0, 0, size, size, fill=color)
self.dy = random.randint(1,10)
self.dx = random.randint(1, 10)
self.dz = random.randint(1, 10)
ball1 = Ball("red", 60)
ball2 = Ball("green", 100)
ball3 = Ball("blue", 80)
window.mainloop()
canvas.create_oval() #캔버스 위에 타원을 그려주는 method
2. 움직이는 메서드 추가
'''
움직이는 애니메이션 공 프로그램을 작성하시오.
'''
from tkinter import*
import random
import time
window = Tk()
canvas = Canvas(window, width=600, height=400)
canvas.pack()
class Ball():
def __init__(self, color, size):
self.id = canvas.create_oval(0, 0, size, size, fill=color)
self.dy = random.randint(1,10)
self.dx = random.randint(1, 10)
def move(self):
canvas.move(self.id, self.dx, self.dy)
x0, y0, x1, y1 = canvas.coords(self.id)
if y1 > canvas.winfo_height() or y0 < 0: #원이 위쪽이나 아래쪽으로 벗어났으면
self.dy = -self.dy # dy의 부호를 반전시킴
if x1 > canvas.winfo_width() or x0 < 0: #원이 왼쪽이나 오른쪽으로 벗어났으면
self.dx = -self.dx # dx의 부호를 반전시킴
ball1 = Ball("red", 60)
ball2 = Ball("green", 100)
ball3 = Ball("blue", 80)
while True:
ball1.move()
ball2.move()
ball3.move()
window.update()
time.sleep(0.05)
window.mainloop()
3. 공 갯수 증가
'''
움직이는 애니메이션 공 30개를 만드는 프로그램을 작성하시오
리스트를 생성하고 리스트에 객체를 저장하시오.
'''
from tkinter import*
import random
import time
window = Tk()
canvas = Canvas(window, width=600, height=400)
canvas.pack()
class Ball():
def __init__(self, color, size):
self.id = canvas.create_oval(0, 0, size, size, fill=color)
self.dy = random.randint(1,10)
self.dx = random.randint(1, 10)
def move(self):
canvas.move(self.id, self.dx, self.dy)
x0, y0, x1, y1 = canvas.coords(self.id)
if y1 > canvas.winfo_height() or y0 < 0: #원이 위쪽이나 아래쪽으로 벗어났으면
self.dy = -self.dy # dy의 부호를 반전시킴
if x1 > canvas.winfo_width() or x0 < 0: #원이 왼쪽이나 오른쪽으로 벗어났으면
self.dx = -self.dx # dx의 부호를 반전시킴
colors = ["red", "orange", "yellow", "green", "blue", "violet", "indigo"]
ballList = []
for i in range(30):
ballList.append(Ball(random.choice(colors),random.randint(1,60)))
while True:
for i in range(30):
ballList[i].move()
window.update()
time.sleep(0.5)
ball1 = Ball("red", 60)
ball2 = Ball("green", 100)
ball3 = Ball("blue", 80)
while True:
ball1.move()
ball2.move()
ball3.move()
window.update()
time.sleep(0.05)
window.mainloop()
4. numpy 연습
import numpy as np
print(np.zeros(3)) # 0이 3개 들어있는 배열 생성
print(np.ones(3))
print(np.zeros((2,2))) # 요소의 값이 모두 0인 2*2 배열생성
print(np.ones((3, 2))) # 요소의 값이 모두 1인 3 * 2
a = np.array([-1, 3, 2, -6])
print(a,type(a))
b = np.array([3, 6, 1, 2])
print(b,type(b))
A = np.reshape(a, [2,2])
print(A)
B = np.reshape(b, [2,2])
print(B)
반응형
'Python' 카테고리의 다른 글
파이썬 pandas (0) | 2023.04.26 |
---|---|
파이썬 넘파이 연습 (1) | 2023.04.20 |
Python 클래스, 객체, GUI (0) | 2023.04.18 |
Python set, 객체 개념 정리 (4) | 2023.04.12 |
파이썬 statistics 모듈 활용, set, 가위바위보 게임 프로그램 (1) | 2023.04.11 |