터틀 그래픽스

Turtle graphics

컴퓨터 그래픽스에서 터틀 그래픽데카르트 평면(x축y축)에서 상대 커서(거북)를 사용하는 벡터 그래픽입니다.Turtle 그래픽스는 로고 프로그래밍 [1]언어의 주요 기능입니다.

개요

펜이 용지에 닿을 때 전진 및 회전 명령을 조합하여 거북이를 사용하여 그래픽을 만드는 방법을 보여주는 애니메이션입니다.
반복 터틀 그래픽 알고리즘을 사용하여 그린 나선형
Python 프로그램으로 그린 거북이 그래픽 패턴

거북이는 위치, 방향, 펜의 세 가지 속성을 가지고 있다.펜에도 색상, 폭 및 온/오프 상태(아래/위로불린다)의 속성이 있습니다.

거북이는 "10칸 앞으로 이동"과 "좌회전 90도"와 같이 자신의 위치에 상대적인 명령을 사용하여 이동합니다.거북이가 들고 다니는 펜은 사용 가능, 색상 설정, 폭 설정 등으로 조절할 수 있습니다.학생은 거북이가 거북이라면 어떻게 할지를 상상함으로써 거북이의 움직임을 이해할 수 있었다.시모어 패퍼트는 이것을 "신체 공감" 추론이라고 불렀다.

완전한 거북이 그래픽 시스템을 사용하려면 제어 흐름, 절차 및 재귀가 필요합니다. 많은 거북이 그리기 프로그램이 부족합니다.이러한 구성 요소에서 정사각형, 삼각형, 원 및 기타 복합 도형 같은 보다 복잡한 도형을 만들 수 있습니다.예를 들어 거북 그래픽의 개념은 프랙탈을 생성하는 Lindenmayer 시스템에서 유용합니다.

터틀 지오메트리는 엄밀하게 좌표 주소가 지정된 그래픽 시스템의 대안으로 그래픽 환경에서 사용될 수도 있습니다.

역사

거북이 그래픽은 로고 프로그래밍 언어와 [2]관련된 경우가 많습니다.시모어 파퍼트는 1960년대 후반 로고에 거북 그래픽 지원을 추가해 거북 로봇 버전을 지원했다. 거북 로봇은 사용자의 워크스테이션에서 제어되는 간단한 로봇으로 로봇 본체에 장착되거나 부착된 작은 접이식 펜을 사용하여 그림 그리기 기능을 수행하도록 설계됐다.터틀 지오메트리는 비트맵이나 래스터 그래픽과 같은 좌표 어드레스 시스템과 비교하여 주로 벡터 기반(즉, 시작점으로부터의 상대적 방향 및 거리)으로 어드레스된 데카르트 지오메트리와 다소 다르게 작동합니다.구체적으로는 기존 모델 대신 거북이 형상을 사용한 것이 거북이 로봇의 실제 움직임 논리를 모방한 것이다.거북이는 전통적으로 삼각형이나 거북이 아이콘으로 그림으로 표현되는 경우가 가장 많습니다(어떤 아이콘으로도 표현될 수 있습니다.

현재 Python 프로그래밍 언어의 표준 라이브러리에는 Turtle 그래픽 [3]모듈이 포함되어 있습니다.이전 로고와 마찬가지로 Python의 Turtle 구현은 프로그래머가 2차원 공간에서 하나 이상의 Turtle을 제어할 수 있도록 합니다.표준 Python 구문, 제어 흐름 및 데이터 구조를 Turtle 모듈과 함께 사용할 수 있기 때문에 Turtle은 Python을 배우는 프로그래머들에게 언어의 [4]기본을 익히는 인기 있는 방법이 되었습니다.

3차원으로 확장

Cheloniidae Turtle Graphics를 사용하여 3D Turtle 그래픽스 생성
Python 프로그램으로 그린 패턴

거북 그래픽의 배후에 있는 아이디어는 3차원 공간을 포함하도록 확장될 수 있습니다.이것은 여러 다른 좌표 모델 중 하나를 사용하여 달성됩니다.일반적인 설정은 원래 2D 터틀과 마찬가지로 데카르트 회전입니다. 추가 "위" 벡터(정규 벡터)는 거북이의 2D "앞" 벡터가 회전하는 평면을 선택하기 위해 정의됩니다. "위" 벡터 자체도 "앞" 벡터를 중심으로 회전합니다.사실상, 거북이는 두 개의 다른 방향 각도를 가지고 있는데, 하나는 평면 내에 있고 다른 하나는 평면 각도를 결정합니다.일반적으로 평면 각도를 변경해도 기존 설정에 따라 거북이가 움직이지 않습니다.

Verhoff[5] 2010은 2개의 벡터 어프로치를 실장하고 있습니다. 명령어는 "앞으로" 벡터를 중심으로 "위로" 벡터를 회전시키기 위해 사용됩니다.이 기사는 기초적인 거북이 프로그램의 통사적 특성으로부터 기하학적 특성을 증명하기 위한 대수적 이론을 개발한다.통찰력 중 하나는 다이빙 명령어가 턴롤턴 시퀀스의 줄임말이라는 것입니다.

Cheloniidae Turtle Graphics는 Java용 3D 거북이 라이브러리입니다.회전 데카르트 터틀에는 뱅크 명령(롤과 동일)과 피치 명령(다이브와 동일)이 있습니다.비유클리드 기하학을 포함한 다른 좌표 모델은 허용되지만 포함되지 [6]않습니다.

「 」를 참조해 주세요.

MSWLogo에서 거북이와 함께 애니메이션 gif (Cycloid)[7]

레퍼런스

  1. ^ Goldman, Ron; Schaefer, Scott; Ju, Tao. "Turtle Geometry in Computer Graphics and Computer Aided Design" (PDF). CSE.WUSTL.edu.
  2. ^ Thornburg, David D. (March 1983). "Friends of the Turtle: On Logo And Turtles". Compute!. p. 148. Retrieved 6 October 2013.
  3. ^ "25.1. turtle — Turtle graphics — Python 3.7.0 documentation". docs.python.org. Retrieved 2018-08-23.
  4. ^ "3. Hello, little turtles! — How to Think Like a Computer Scientist: Learning with Python 3". python.camden.rutgers.edu. Retrieved 2018-08-23.
  5. ^ Verhoeff, Tom (2010). "3D turtle geometry: artwork, theory, program equivalence and symmetry". International Journal of Arts and Technology. 3 (2/3): 288-319. doi:10.1504/IJART.2010.032569. Retrieved 28 February 2021.
  6. ^ Cheloniidae에 대한 스펜서 팁(2016-9-17)
  7. ^ Pietrocola, Giorgio (2005). "Tartapelago". Maecla.

추가 정보