본문 바로가기

회의록

그림판 개발의 문서화의 예제

※각각의 문서는 연관된 문서와 문서끼리 링크를 걸어 둔다 예로 날짜 별로, 혹은 분야별로 회의록 설계 구현을 링크를 건다.

--- 회의록 시작 ---

 

회의록

1. 프로젝트 목표:

   1) 실습으로 그림판 애플리케이션을 만드는 것.

 

2. 팀 구성:

   1) 팀장 및 개발자: 아빠

3. 기능 목록:
   1) 드로잉 도구
   2) 색상 및 브러시 설정
   3) 지우개 도구
   4) 레이어 기능
   5) 파일 저장 및 불러오기
   6) Undo/Redo 기능

4. 프로젝트 일정:

   1) 2025년 3월 10일부터 기능 개발 시작.

5. 커뮤니케이션 도구:

   1) Google Docs 사용.

--- 회의 부분 끝: 문서 작성하고 회의 폴더에 저장 ---

 

--- 설계 시작 ---

 

설계

1. 전체 아키텍처:
   1) 주요 컴포넌트:
      (1) UI (Tkinter)
      (2) 드로잉 기능
      (3)이벤트 처리

 

2. 클래스 정의:
   1)DrawingApp 클래스:
       (1) __init__: 초기화 및 UI 설정
       (2) draw: 드로잉 기능
       (3) reset: 드로잉 시작 위치 초기화

 

--- 설계 끝: 문서작성하고 설계 폴더에 저장한다. ---

 

 

--- 구현 시작 ---


구현 코드 (첫 번째 작업)
아래 코드는 기본 드로잉 기능을 구현한 것입니다. 이 코드를 실행하면 사용자가 마우스로 그림을 그릴 수 있습니다.

import tkinter as tk

class DrawingApp:
    def __init__(self, root):
        self.root = root
        self.root.title("그림판")
        
        # 캔버스 설정
        self.canvas = tk.Canvas(root, bg="white", width=800, height=600)
        self.canvas.pack()

        # 드로잉 이벤트 바인딩
        self.canvas.bind("<B1-Motion>", self.draw)  # 마우스 드래그 이벤트
        self.canvas.bind("<ButtonRelease-1>", self.reset)  # 마우스 버튼 해제 이벤트
        
        self.last_x, self.last_y = None, None

    def draw(self, event):
        x, y = event.x, event.y
        if self.last_x is not None and self.last_y is not None:
            self.canvas.create_line(self.last_x, self.last_y, x, y, fill="black", width=2)
        self.last_x, self.last_y = x, y

    def reset(self, event):
        self.last_x, self.last_y = None, None

if __name__ == "__main__":
    root = tk.Tk()
    app = DrawingApp(root)
    root.mainloop()


이제 이 코드를 복사하여 실행해 보세요. 기본 드로잉 기능이 잘 작동하는지 확인해 주시고, 다음 단계로 추가할 기능에 대해 논의하시면 됩니다. 

 

--- 구현 끝:  비쥬얼 스튜디오 혹 기타 IDE에서 코딩하고 구현 폴더에 저장한다. ---