Calysto 是一個小巧的 Python 工具庫,用它可以簡單方便地通過 Jupyter 筆記本頁面進(jìn)行圖形繪制和模擬演示。 Calysto 項目發(fā)布頁面為 https://github.com/Calysto/calysto
你可以在系統(tǒng)終端窗口輸入以下命令來安裝 Calysto 軟件包:
pip install calysto
安裝完成后即可嘗試以下繪制圖形對象的示例,首先導(dǎo)入包內(nèi)的圖形模塊 calysto.graphics 中的所有對象和顯示模塊 calysto.display 中的兩個函數(shù),接下來創(chuàng)建一個 Canvas 畫布對象以及任意多個圖形對象例如 Circle 圓形,Text 文本,Polygon 多邊形等,然后調(diào)用畫布對象的 draw 方法在畫布上繪制圖形對象,最后調(diào)用 display 函數(shù)在 Jupyter 筆記本頁面中顯示畫布:
from calysto.graphics import *
from calysto.display import display, clear_output
canvas = Canvas((500, 200)) # 創(chuàng)建畫布,位置參數(shù)指定大小是多少個像素
# 創(chuàng)建圓形,位置參數(shù)指定圓心,半徑,關(guān)鍵字參數(shù)有填充顏色,線條顏色等
circle = Circle((100, 100), 30, fill="red", stroke="green")
circle.stroke_width(3) # 也可調(diào)用對象的方法,例如stroke_width()改變線條寬度
canvas.draw(circle)
# 創(chuàng)建文本,位置參數(shù)指定文本,起點,可以使用style關(guān)鍵字參數(shù)設(shè)置任意CSS樣式
text = Text("畫布上的文本", (180, 100), fill="blue", stroke="red", style="font-weight:bold;font-size:30px;font-style:italic")
canvas.draw(text)
# 創(chuàng)建多邊形,位置參數(shù)指定所有頂點
polygon = Polygon([(400, 100), (430, 100), (480, 130), (460, 150), (420, 150)])
canvas.draw(polygon)
display(canvas) # 顯示畫布

calysto_canvas.png
圖形模塊中還定義了 Turtle 海龜對象,可以在 Jupyter 筆記本頁面中控制海龜進(jìn)行繪圖,但具體實現(xiàn)上與標(biāo)準(zhǔn)庫的 turlte 模塊有所差別,例如并不能填充海龜畫出的封閉空間,也不會顯示海龜?shù)囊苿舆^程(不過通過刷新畫布也是可以生成動效的)。
import time # 導(dǎo)入標(biāo)準(zhǔn)庫time模塊用于定時操作
canvas = Canvas((400, 200))
tt = Turtle(canvas, (0, 100)) # 創(chuàng)建海龜,位置參數(shù)指定所在畫布,起始點
tt.stroke = "red" # 繪制紅色36芒星
tt.stroke_width = 2
for _ in range(36):
tt.forward(180)
tt.right(170)
tt.penup()
tt.goto(220, 100) # 動態(tài)繪制藍(lán)色36芒星
tt.stroke = "blue"
tt.pendown()
for _ in range(36):
tt.forward(180)
tt.right(170)
clear_output(wait=True) # 添加刷新畫布的代碼
display(canvas)
time.sleep(.25)

calysto_turtle.png
Calysto 沒有提供很完善的文檔,學(xué)習(xí)者需要自行研究,例如它的繪圖模塊是通過另一個第三方包 svgwtrite 在網(wǎng)頁中輸出 SVG 圖形來實現(xiàn)的,因此可以參看相應(yīng)文檔了解詳情 https://svgwrite.readthedocs.io