python turtle 素數視覺化

2021-10-18 16:24:47 字數 2148 閱讀 2211

在本地用python的turtle庫也畫了乙個玩一下,畫到了素數108463,如下:

**為:

# %%

import turtle

from math import sqrt

# 判斷是否為素數

defis_prime

(num)

:for i in

range(2

,round

(sqrt(num))+

1):# 能整除,非素數

if num % i ==0:

return

false

return

true

# %%

# 定義畫布的大小和背景

turtle.setup(

0.8,

0.9)

turtle.screensize(

100,

100,

'black'

)minxv =-50

minyv =-80

maxxv = turtle.window_width(

)+minxv

maxyv = turtle.window_height(

)+minyv

turtle.setworldcoordinates(minxv, minyv, maxxv, maxyv)

# 定義畫筆的速度

turtle.speed(0)

turtle.turtle(

).screen.delay(0)

# 繪製圖形的寬度

turtle.pencolor(

"white"

)turtle.pensize(1)

turtle.setheading(-90

)turtle.hideturtle(

)# %%

num =

0turtle.pendown(

)run_flag =

true

path =

"out.txt"

with

open

(path,

"w",encoding=

"utf-8"

)as f:

while run_flag:

turtle.forward(1)

num = num+

1 xcor=

round

(turtle.xcor())

ycor=

round

(turtle.ycor())

# 轉向

if is_prime(num)

: turtle.right(90)

keyin=

(xcor,ycor)

print

(",-->"

.format

(keyin,num)

) f.write(

",-->"

.format

(keyin,num)

)# 停止

if xcor > maxxv or xcor < minxv or ycor > maxyv or ycor < minyv:

run_flag =

false

# 儲存影象

ts = turtle.getscreen(

)ts.getcanvas(

).postscript(

file

="work.eps"

)# 不關閉視窗

turtle.mainloop(

)

另外生成了100w以內的素數座標,在excel裡直接生成圖表,如下。其中紅框部分為之前turtle畫圖的區域。

隨後順手搜了下素數視覺化,還有其他的視覺化結果:相關鏈結

截圖如下:

Python turtle色彩控制

turtle.pencolor args 返回或設定pencolor。允許四種輸入格式 pencolor 將當前的pencolor返回為顏色規範字串或元組 參見示例 可用作另一種顏色 pencolor fillcolor呼叫的輸入。pencolor colorstring 設定pencolor到co...

Python Turtle視窗控制

turtle.bgcolor args 引數args 顏色字串或0 colormode範圍內的三個數字或此類數字的3元組 設定或返回turtlescreen的背景顏色。screen.bgcolor orange screen.bgcolor orange screen.bgcolor 800080 ...

python turtle初學總結

仔細觀察turtle的畫布,就會發現,畫筆是乙個類三角形的形狀,可以通過改變畫筆的方向,使之移動,來完成繪圖。接下來介紹turtle的用法 初始化時常用如下 setup width height startx starty 設定窗體的位置和大小,預設在視窗中心,startx和starty為0時,預設...