Python Turtle이 있는 일반 별 다각형
오각형
다윗의 별
아마도 여러분 중 일부는 더 복잡한 별을 그리기 위해 더 많은 선을 추가하려고 시도했을 것입니다. 이 별에도 이름이 있다는 것을 알고 계셨습니까?
헵타그램
옥타그램
아무튼 이 별들을 파이썬으로 그려보면 재미있을 것 같다는 생각이 들었습니다. 이제 이 다각형을 그리기 시작하겠습니다.
별은 다각형입니까?
위에 있는 별들은 복잡한 폴리곤이라고 불리는 폴리곤의 한 종류라는 것이 밝혀졌습니다. 기본적으로 일반 폴리곤과 달리 복잡한 폴리곤에서는 선이 서로 교차합니다.
복잡한 다각형
별 모양의 복잡한 다각형
별 다각형은 복잡한 다각형의 한 유형입니다. 그리고 두 가지 유형이 있습니다. 종이에 다윗의 별을 그리려면 펜을 들어야 하지만 오각형을 그리려면 펜을 들 필요가 없다는 것을 깨달았을 것입니다. 전자 유형의 별을 일반 별 다각형이라고 하고 후자 유형을 축퇴 별 다각형이라고 합니다.
일반 팔각형
퇴화 팔각형
일반 별 다각형의 규칙
위에서 알 수 있듯이 여러 가지 방법으로 특정 수의 꼭짓점을 가진 별을 그릴 수 있습니다. 예를 들어 다음과 같이 9개의 정점이 있는 별 다각형을 그릴 수 있습니다.
방법 1
방법 2
방법 3
정점 1개 건너뛰기
정점 2개 건너뛰기
3개의 정점을 건너뛰었습니다.
진행 상황을 이해하려면 위의 각 다이어그램에서 건너뛴 정점의 수를 세십시오. 또한 2개의 꼭지점을 건너뛰면 별이 퇴화되지만 다른 경우에는 별이 규칙적입니다. 더 많은 정점을 건너뛸 수 있지만 결국 같은 별을 그리게 됩니다.
다음은 우리에게 유용한 규칙과 공식입니다.
위에서 알 수 있듯이 여러 가지 방법으로 특정 수의 꼭짓점을 가진 별을 그릴 수 있습니다. 예를 들어 다음과 같이 9개의 정점이 있는 별 다각형을 그릴 수 있습니다.
방법 1
방법 2
방법 3
정점 1개 건너뛰기
정점 2개 건너뛰기
3개의 정점을 건너뛰었습니다.
진행 상황을 이해하려면 위의 각 다이어그램에서 건너뛴 정점의 수를 세십시오. 또한 2개의 꼭지점을 건너뛰면 별이 퇴화되지만 다른 경우에는 별이 규칙적입니다. 더 많은 정점을 건너뛸 수 있지만 결국 같은 별을 그리게 됩니다.
다음은 우리에게 유용한 규칙과 공식입니다.
N
정점이 있는 별의 경우 abs(N/2)-1
별을 그릴 수 있습니다.For example for a star with 9 vertices you can only draw
abs(9/2)-1=3
stars
별의 순서
M
는 건너뛴 정점의 수+1
로 정의할 수 있습니다.So the possible orders for a 9-vertex star are 2, 3 and 4 for 1, 2 and 3 vertices skipped respectively
N
를 M
로 나눌 수 있는 경우 별은 퇴화별의 외각
별을 추적하기 전에 각도, 특히 외부 각도를 알아야 합니다. 이것은 각 전진 후 거북이를 얼마나 돌려야 하는지를 알기 위한 것입니다. 엄격하게 공식을 유도하지는 않지만 다음을 이해하려고 노력할 것입니다.
M
360*M
N
인 일반 별의 경우 각 외부 각도 = 360*M/N
를 의미합니다.충분히 설득력이 있기를 바랍니다
충분한 대화를 나누자
이제 우리가 가장 좋아하는 기념일 로고를 이해했으므로 Python 거북이로 코딩할 준비가 되었습니다. 회전 각도는 방금 논의한 대로 설정되어 있습니다.
import turtle as t
LENGTH=500
def regular_star(n,m):
"""Draws a regular star polygon (not a degenerate one)
n = number of pointies
m = number of points to skip
"""
angle = 360*m/n
for count in range(n):
t.forward(LENGTH)
t.right(angle)
t.hideturtle()
t.pensize(2)
t.color("green")
regular_star(103,51)
위의 코드는 일반 별 다각형(펜을 떼지 않고 그릴 수 있는 것)만 그립니다. 퇴화별을 그리는 일은 다른 포스팅으로 남겨두겠습니다
여기 103개의 뾰족한 별이 있습니다.
예이!
Reference
이 문제에 관하여(Python Turtle이 있는 일반 별 다각형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/taarimalta/regular-star-polygon-with-python-turtle-k37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import turtle as t
LENGTH=500
def regular_star(n,m):
"""Draws a regular star polygon (not a degenerate one)
n = number of pointies
m = number of points to skip
"""
angle = 360*m/n
for count in range(n):
t.forward(LENGTH)
t.right(angle)
t.hideturtle()
t.pensize(2)
t.color("green")
regular_star(103,51)
Reference
이 문제에 관하여(Python Turtle이 있는 일반 별 다각형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taarimalta/regular-star-polygon-with-python-turtle-k37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)