728x90

** 2021.01.22 일부 오타수정

1. PC 좌표 이해

* 일반적으로 수학에서 사용하는 2차원 좌표와 프로그래밍에서 사용하는 2차원 좌표의 개념은 다릅니다.
pc 좌표는 위과 같이 생겼다고 생각하시면 됩니다.

 


2. 도형그리기_사각형/원/타원/선

 

python.draw.도형 함수(rect, cicle, ellipsis, line)로 원하는 도형을 그릴 수 있습니다. 

 


1. 사각형

 

rect.(surface객체, 색, (위치와 크기), 테두리 굵기)

 

pygame.draw.rect(SURFACE, color_green, (20, 100, 50, 50), width_draw)

 


2. 원

 

circle.(surface객체, 색, 중심좌표, 반경, 테두리 굵기)

 

#원그리기
pygame.draw.circle(SURFACE, color_red, (50, 50), width_draw)
pygame.draw.circle(SURFACE, color_red, (150, 50), radius_circle, width_draw)

 


3. 타원

 

ellipse.(surface객체, 색, (타원에 외접하는 사각형의 위치와 크기), 테두리 굵기)

 

* 타원은 사각형을 먼저 그리고 사각형에 타원을 채운다는 생각을 해야합니다.

ellipsis_rect = (100, 100, 110, 60)
pygame.draw.ellipse(SURFACE, color_blue, ellipsis_rect, width_draw)

 


4. 선

 

line.(surface객체, 색, 시작좌표, 끝좌표, 테두리 굵기)

 

line_start = (250, 100) #시작좌표
line_end = (250, 150) #끝좌표
pygame.draw.line(SURFACE, color_green, line_start, line_end, width_draw)

 


#소스코드

import sys
import pygame
from pygame.locals import QUIT, Rect

pygame.init()
SURFACE = pygame.display.set_mode((400, 300))
color_red = (255, 0, 0)
color_green = (0, 255, 0)
color_blue = (0, 0, 255)
width_draw = 5
radius_circle = 20

FPSCLOCK = pygame.time.Clock()


def main():
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
                
		#surface 객체 색(바탕색)
        SURFACE.fill((255, 255, 255))
        
        #원그리기
        pygame.draw.circle(SURFACE, color_red, (50, 50), width_draw)
        pygame.draw.circle(SURFACE, color_red, (150, 50), radius_circle, with_draw)
		
        #사각형그리기
        pygame.draw.rect(SURFACE, color_green, (20, 100, 50, 50), with_draw)
        
        #타원그리기
        ellipsis_rect = (100, 100, 110, 60)
        pygame.draw.ellipse(SURFACE, color_blue, ellipsis_rect, with_draw)
        
        #선그리기
        line_start = (250, 100) #시작좌표
        line_end = (250, 150) #끝좌표
        pygame.draw.line(SURFACE, color_green, line_start, line_end, width_draw)

        pygame.display.update()
        FPSCLOCK.tick(1)


if __name__ == '__main__':
    main()

 


 

728x90

+ Recent posts