[파이썬] 터틀 그래픽 배경색 바꾸기: bgcolor(), pencolor(), fillcolor() 차이까지 정리

[파이썬] 터틀 그래픽 배경색 바꾸기: bgcolor(), pencolor(), fillcolor() 차이까지 정리

[파이썬] 터틀 그래픽 배경색 바꾸기: bgcolor(), pencolor(), fillcolor() 차이까지 정리

터틀 그래픽으로 처음 그림을 그리다 보면 꼭 한 번은 이런 순간이 옵니다. 거북이가 선은 잘 그리고 있는데 화면이 너무 밋밋해 보이거나, 분명 색을 바꿨다고 생각했는데 선 색만 바뀌고 배경은 그대로 남아 있는 경우입니다. 어떤 날은 별을 그리려고 했는데 검은 배경에 노란 선을 기대했다가, 실제로는 하얀 화면 위에 노란 선만 그려져서 생각했던 분위기가 하나도 안 나기도 합니다.

이럴 때 많이 찾게 되는 말이 파이썬 터틀 그래픽 배경색입니다. 그런데 막상 검색해보면 bgcolor() 하나만 소개하고 끝나는 글이 많습니다. 물론 함수 하나만 알면 배경색 자체는 바꿀 수 있습니다. 문제는 초보자 입장에서 진짜 헷갈리는 부분이 그 다음부터라는 점입니다. bgcolor()는 배경색이고, pencolor()는 선 색이고, fillcolor()는 색칠용인데, 막상 실습하다 보면 세 개가 자꾸 머릿속에서 섞입니다.

결론부터 말하면 파이썬 터틀 그래픽 배경색bgcolor()로 바꾸고, 선 색은 pencolor(), 도형 안쪽을 채울 때는 fillcolor()를 써야 합니다. 이 셋을 같이 묶어서 이해해야 실습할 때 덜 헷갈립니다. 특히 기존에 많이 보는 터틀 그래픽 컬러 리스트 글과 같이 보면 훨씬 이해가 빨라집니다.

이번 글에서는 터틀 그래픽 배경색을 바꾸는 가장 기본적인 방법부터, 왜 색이 원하는 대로 안 나오는지, bgcolor()fillcolor()는 무엇이 다른지, 그리고 실제로 예쁘게 보이는 조합을 어떻게 만들면 좋은지까지 초보자 기준으로 천천히 정리해보겠습니다.

파이썬 터틀 그래픽 배경색을 바꿀 때 제일 먼저 알아둘 것

│ 배경색은 거북이 색이 아니라 화면 전체 색입니다

처음 배우는 분들이 가장 많이 헷갈리는 부분이 바로 이것입니다. 터틀 그래픽에서 색을 바꾼다고 했을 때, 사실 바꿀 수 있는 대상이 여러 개 있습니다. 화면 전체 배경, 거북이가 그리는 선, 도형 안쪽 색, 심지어 글자 색까지 조금씩 따로 생각해야 합니다.

파이썬 터틀 그래픽 배경색을 바꾸고 싶다면 우선 화면 전체를 칠하는 함수가 따로 있다는 감각을 잡는 게 중요합니다. 그 함수가 바로 bgcolor()입니다. 이름 그대로 background color라고 생각하면 이해가 쉽습니다. 즉 bgcolor()는 선이나 도형을 바꾸는 게 아니라, 그림이 올라가는 도화지 자체 색을 바꾸는 함수입니다.

이 구분이 처음에 안 잡히면 코드를 분명 입력했는데 “왜 이건 선 색만 바뀌지?” 같은 혼란이 계속 생깁니다. 초반에는 함수 문법보다 대상이 무엇인지 먼저 구분하는 편이 더 중요합니다.

│ 터틀 그래픽 배경색은 보통 screen 객체에서 바꾸는 편이 깔끔합니다

실습할 때 가장 자주 쓰는 형태는 아래처럼 Screen() 객체를 하나 만들고 배경색을 지정하는 방식입니다.


import turtle

screen = turtle.Screen()
screen.bgcolor("black")

t = turtle.Turtle()
t.forward(100)

turtle.done()

이 코드에서 screen.bgcolor("black")가 바로 배경색을 바꾸는 부분입니다. 처음 보면 그냥 한 줄 같지만, 실제로는 “이 그림이 그려질 화면은 검은색이다”라고 먼저 정해주는 역할을 합니다. 그래서 선 색이 밝지 않으면 검은 배경에서는 잘 안 보일 수도 있습니다.

│ 배경색을 바꿨는데 선이 안 보이는 이유는 대부분 대비 때문입니다

이건 진짜 많이 겪습니다. 검은 배경으로 바꾸고 나서 “어? 아무것도 안 그려지는데?” 하고 당황하는 경우가 있는데, 실제로는 선 색도 검정에 가까워서 안 보이는 경우가 많습니다. 즉 배경색만 바꿀 게 아니라 선 색도 같이 생각해야 합니다.

예를 들어 이런 식으로 같이 바꾸면 훨씬 보기 쉽습니다.


import turtle

screen = turtle.Screen()
screen.bgcolor("navy")

t = turtle.Turtle()
t.pencolor("white")
t.forward(120)

turtle.done()

이렇게 보면 파이썬 터틀 그래픽 배경색은 단독 설정이 아니라, 선 색과 항상 같이 생각해야 한다는 감각이 생깁니다.

bgcolor, pencolor, fillcolor 차이 설명 이미지
배경색, 선 색, 채우는 색은 서로 역할이 다릅니다.

│ bgcolor(), pencolor(), fillcolor()는 용도가 전부 다릅니다

초보자 실습에서 자꾸 헷갈리는 이유는 이름이 다 color로 끝나기 때문입니다. 그런데 실제 역할은 명확히 나뉩니다.

  • bgcolor() : 화면 전체 배경색
  • pencolor() : 선 색
  • fillcolor() : 도형 안쪽 채우는 색

여기서 파이썬 터틀 그래픽 배경색은 첫 번째에 해당합니다. 즉 별을 노랗게 채우고 싶다고 bgcolor("yellow")를 쓰면 화면 전체가 노랗게 바뀌지, 별만 노랗게 되지는 않습니다.

이 차이를 제대로 이해하면 이후 도형 그리기 실습도 훨씬 편해집니다. 예전에 많이 본 터틀 그래픽 컬러 리스트 글과 같이 보면 색 이름을 고를 때도 감이 더 잘 옵니다.

│ 실제로 많이 쓰는 배경색 코드는 이런 식입니다

배경색은 색 이름으로 넣을 수도 있고, RGB 모드로 바꿔서 숫자로도 넣을 수 있습니다. 처음에는 색 이름으로 시작하는 편이 가장 쉽습니다.


screen.bgcolor("skyblue")
screen.bgcolor("black")
screen.bgcolor("lightyellow")
screen.bgcolor("pink")

이 중에서 초보자가 실습하기 편한 건 skyblue, black, lightyellow 같은 색입니다. 너무 진한 색이나 너무 밝은 색은 선 색과 겹치면 화면이 생각보다 안 예쁘게 보일 수 있습니다.

│ 예쁘게 보이는 조합은 따로 생각하는 편이 좋습니다

실습용으로는 아래 조합이 꽤 무난합니다.

  • 배경 black + 선 white 또는 yellow
  • 배경 skyblue + 선 navy
  • 배경 lightyellow + 선 green
  • 배경 pink + 선 purple

이런 조합을 알고 있으면 파이썬 터틀 그래픽 배경색 실습이 훨씬 덜 밋밋해집니다. 초보자 글에서 이런 부분이 빠지면 함수만 외우고 결과는 마음에 안 드는 경우가 많습니다.

│ 도형 안쪽을 채울 때는 fillcolor()와 begin_fill()을 같이 써야 합니다

이 부분에서 bgcolor()와 가장 많이 헷갈립니다. 예를 들어 하트나 별을 그리고 안을 빨간색으로 채우고 싶다면 배경색 함수가 아니라 fillcolor()를 써야 합니다.


import turtle

screen = turtle.Screen()
screen.bgcolor("white")

t = turtle.Turtle()
t.pencolor("red")
t.fillcolor("pink")

t.begin_fill()
for _ in range(4):
    t.forward(100)
    t.left(90)
t.end_fill()

turtle.done()

여기서 중요한 건 화면은 여전히 흰색이고, 사각형 안쪽만 분홍색으로 채워진다는 점입니다. 즉 파이썬 터틀 그래픽 배경색을 바꾸는 함수와, 도형 안쪽을 칠하는 함수는 역할이 완전히 다릅니다.

이 감각이 잡히면 터틀 그래픽 하트 그리기 같은 글을 다시 볼 때도 훨씬 덜 헷갈립니다.

│ 배경색이 적용되지 않는 것처럼 보일 때 확인할 것

실습하다 보면 분명 bgcolor()를 넣었는데도 원하는 결과가 안 나오는 것처럼 느껴질 때가 있습니다. 이럴 때는 함수가 틀린 경우보다 순서나 색 조합 문제가 더 많습니다.

  • 배경색과 선 색이 비슷해서 안 보이는 경우
  • screen 객체를 따로 만들지 않고 코드 흐름이 섞인 경우
  • 너무 뒤쪽에 넣어서 이미 다른 설정과 같이 헷갈리는 경우
  • 색 이름 철자가 틀린 경우

│ 실습 초반에는 배경 먼저, 선 색 다음 순서가 덜 헷갈립니다

개인적으로는 파이썬 터틀 그래픽 배경색 실습을 할 때 항상 아래 순서로 쓰는 편이 제일 덜 꼬입니다.

  1. Screen() 만들기
  2. bgcolor()로 배경 정하기
  3. Turtle() 만들기
  4. pencolor() 정하기
  5. 필요하면 fillcolor() 정하기
  6. 그다음 도형 그리기

이렇게 가면 색 관련 함수가 각각 무슨 역할인지 눈에 더 잘 들어옵니다.

│ 많이 물어보는 질문도 결국 비슷합니다

│ bgcolor()만 쓰면 거북이 색도 같이 바뀌나요?

아닙니다. bgcolor()는 화면 전체 배경만 바꿉니다. 거북이 선 색은 pencolor()로 따로 바꿔야 합니다.

│ fillcolor()를 썼는데 아무것도 안 채워져요

이 경우는 대부분 begin_fill()end_fill()를 같이 안 쓴 경우입니다. 색만 지정했다고 자동으로 도형 안이 채워지지는 않습니다.

│ 검은 배경으로 했는데 그림이 안 보여요

대부분 선 색도 어두운 색이라 그렇습니다. 배경이 어두우면 선은 흰색, 노란색, 밝은 하늘색처럼 대비가 큰 색으로 바꾸는 편이 좋습니다.

│ 파이썬 터틀 그래픽 배경색은 단독으로 외우기보다 색 역할을 같이 묶어야 덜 헷갈립니다

파이썬 터틀 그래픽 배경색을 검색한 사람은 사실 함수 이름 하나만 알고 싶은 게 아닐 때가 많습니다. 실제로는 “왜 색을 바꿨는데 생각한 대로 안 나오지?”를 해결하고 싶은 경우가 더 많습니다. 그래서 bgcolor()만 따로 외우는 것보다, pencolor(), fillcolor()와 같이 묶어서 보는 편이 훨씬 실용적입니다.

정리하면 화면은 bgcolor(), 선은 pencolor(), 도형 안쪽은 fillcolor()입니다. 이 세 가지만 역할이 분리돼도 터틀 그래픽 실습이 훨씬 덜 답답해집니다. 특히 기존에 조회수가 높은 기본 명령어 모음, 텍스트 출력, 컬러 리스트, 하트 그리기 글과 자연스럽게 연결되기 때문에, 다음 실습으로 넘어가기도 좋습니다.

Loading

댓글 남기기

광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요
광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요