Python繪製五角星等能一筆畫出的角星

2022-04-11 07:41:17 字數 1793 閱讀 7518

只有奇數和4的整數倍的角星才能一筆畫出,見程式和注釋:

多畫幾種情況認真分析,注意到輔助線對角的等分是絕對的,與邊的垂直是特殊的.

奇數角星小角360/(2n),偶數角星小角360/n.可按此公式畫出任意角星,但只有一筆能畫出的角星比較美觀,有一氣呵成之美.

n=2k 但不是n!=4k的角星可由兩個k角星旋轉得到,相位差360/n.旋轉時注意區分n和k.

import

math

import

turtle as t

#這種方法只能畫只在尖角處轉向就可以畫出的角星,\

#即可以用等長線段(線段長度為不轉彎的最大)不提筆畫完的角星\

#如注釋吊28,29行,則偶數角數變為原來2倍,證明此方法只能畫奇數和4的整數倍的角星\

#即只有奇數和4的整數倍的角星才能一筆畫出

defloop(r,n):

t.fd(ol(r,n))

t.right(180-360/(2*n))

defol(r,n):

na = (360/(4*n)) / 180 *math.pi

ol = r * math.cos(na) * 2ol =int(round(ol))

return

oldef

relocation(r,n):

t.penup()

t.left(90)

t.fd(r)

t.right(180 - 360/(4*n))

t.pendown()

defmain(r,n):

times=n

if n==1 or n==2:

print('

error input')

exit()

elif n%2==1:

print('

開始繪製...')

elif n%2==0:

n/=2

if n%2==1:

print('

無法一筆畫出角星

'.format(times))

exit()

else

:

print('

開始繪製...')

else

:

print('

error input')

exit()

relocation(r,n)

for i in

range(times):

loop(r,n)

t.penup()

t.goto(0,0)

t.seth(0)

t.pendown()

r=200n=eval(input('

請輸入要繪製的角星的角數n,n需是》=3的整數:

')) #

eval()函式很重要,不要總忘記加!!!

t.pensize(8) #

注意t.pensize(20)不是t.pensize=20,變數賦值採用=,屬性更改用t.pensize(20)

t.color('

green')

t.speed(10)

t.setup(450,450)

main(r,n)

t.done()

五角星和十六角星:

python 繪製五角星

import turtle def main count 1 while count 5 turtle.forward 100 turtle.right 144 count count 1 turtle.exitonclick if name main main 方法2 import turtle ...

OpenGL繪製五角星

include include include gl.h include glut.h 三稜錐的繪製 2016 10 30 vizer pragma comment linker,subsystem windows entry maincrtstartup 隱藏控制台視窗 旋轉引數 static g...

turtle繪製五角星

用turtle 海龜 來繪製乙個五角星吧 操縱海龜繪圖有著許多的命令,這些命令可以劃分為兩種 一種為運動命令,一種為畫筆控制命令 1.運動命令 forward degree 向前移動距離degree代表距離 backward degree 向後移動距離degree代表距離 right degree ...