본문 바로가기

파이썬

간단한 그림판 - 마우스로 그림을 그릴 수 있는 간단한 그림판을 만듭니다.

반응형

1. 제목 및 설명:

제목: 간단한 그림판 - 마우스로 그림 그리기
설명: 이 프로그램은 파이썬을 사용하여 간단한 그림판을 만드는 예제입니다. 사용자는 마우스를 이용하여 그림을 그릴 수 있습니다.


2. 코딩시 주의 할 점:

사용자의 마우스 입력을 받아 그림을 그리는 데 필요한 라이브러리를 사용해야 합니다.
마우스 이벤트를 처리하고 그림을 그릴 수 있는 로직을 작성해야 합니다.


3. 코딩에 나오는 명령어 설명:

pygame: 게임 개발을 위한 파이썬 라이브러리로, 그림 그리기와 이벤트 처리에 사용됩니다.
pygame.init(): pygame 라이브러리를 초기화합니다.
pygame.display.set_mode(): 화면을 생성합니다.
pygame.draw.line(): 선을 그리는 함수입니다.
pygame.mouse.get_pos(): 현재 마우스 위치를 가져옵니다.
pygame.event.get(): 이벤트를 가져옵니다.
pygame.quit(): pygame 라이브러리를 종료합니다.


4. 실행 방법:

파이썬을 설치하지 않았다면 Python 공식 웹 사이트에서 다운로드하고 설치하세요.
파이썬 라이브러리 pygame을 설치합니다. 명령 프롬프트 또는 터미널에서 다음 명령을 실행하세요: pip install pygame
아래의 파이썬 코드를 텍스트 편집기에 복사하여 .py 파일로 저장하세요.
명령 프롬프트 또는 터미널을 열고 해당 디렉토리로 이동한 후, 다음 명령을 실행하세요: 

python 파일이름.py

 

5. 파이썬 코드:

import pygame
import sys

try:
    # pygame 초기화
    pygame.init()

    # 화면 생성
    screen = pygame.display.set_mode((800, 600))
    pygame.display.set_caption("간단한 그림판 - 마우스로 그림 그리기")

    # 배경 색상 설정 (예: 흰색)
    background_color = (255, 255, 255)  # 흰색 배경
    screen.fill(background_color)  # 화면을 지정한 배경 색상으로 채우기


    # 색상 설정
    color = (0, 0, 0)  # 검은색
    drawing = False
    last_pos = None

    # 게임 루프
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    drawing = True
                    last_pos = event.pos
            elif event.type == pygame.MOUSEBUTTONUP:
                if event.button == 1:
                    drawing = False
            elif event.type == pygame.MOUSEMOTION:
                if drawing:
                    new_pos = event.pos
                    pygame.draw.line(screen, color, last_pos, new_pos, 5)
                    last_pos = new_pos

        # 화면 업데이트
        pygame.display.flip()

    # pygame 종료
    pygame.quit()
except Exception as e:
    print("오류 발생:", e)

반응형