我需要使用Python的龜圖形繪製條形圖,並且我認爲簡單地將筆製作成厚方形會更容易,因此我可以繪製這樣的條形圖,而不必擔心製作數十個矩形並填充它們。可以改變龜的筆畫嗎?
當我設置使用turtle.shape('square')
雖然烏龜形狀,它只是改變了筆的外觀,但對實際圖紙沒有影響:
有沒有辦法使龜的實際繪製一個矩形的筆畫,無論是通過內置的方法還是通過修改龜文件?
我不想圓邊,就像這樣:
我需要使用Python的龜圖形繪製條形圖,並且我認爲簡單地將筆製作成厚方形會更容易,因此我可以繪製這樣的條形圖,而不必擔心製作數十個矩形並填充它們。可以改變龜的筆畫嗎?
當我設置使用turtle.shape('square')
雖然烏龜形狀,它只是改變了筆的外觀,但對實際圖紙沒有影響:
有沒有辦法使龜的實際繪製一個矩形的筆畫,無論是通過內置的方法還是通過修改龜文件?
我不想圓邊,就像這樣:
那麼,我已經想出了一個完美的解決方案,可以滿足我的需求。
通過使用screen.register_shape("bar",((width/2,0),(-width/2,0),(-width/2,height),(width/2,height)))
註冊自定義形狀,筆變爲我們想要繪製的條的確切大小。
然後,我們可以簡單地遍歷每個小節,使用新值更新筆,然後使用turtle.stamp
將它加印到圖上,然後再轉到下一個小節。
爲什麼不增加線路的寬度,還是我讓你錯了嗎?
turtle.width(...)
請提供部分代碼或包含圖片,如果更改寬度不起作用。
這仍然給我一個圓潤的描邊 – HEATH3N 2014-12-02 15:03:24
它看起來像改變筆劃本身的形狀是不可能的。 turtle.shape('square')
只改變烏龜的形狀,而不是筆劃。我建議降低筆的大小,並創建一個繪製矩形的函數。你可以用這個來畫吧。
我對這個問題有兩種解決方案,我已經在各種程序中使用過。
第一個是你的郵票解決方案的變體。而不是使用screen.register_shape()
註冊自定義的多邊形的每一行,使用方海龜和每行turtle.turtlesize()
成矩形要杜絕:
from turtle import Turtle, Screen
STAMP_SIZE = 20 # size of the square turtle shape
WIDTH, LENGTH = 25, 125
yertle = Turtle(shape="square")
yertle.penup()
yertle.turtlesize(WIDTH/STAMP_SIZE, LENGTH/STAMP_SIZE)
yertle.goto(100 + LENGTH//2, 100) # stamps are centered, so adjust X
yertle.stamp()
screen = Screen()
screen.exitonclick()
我的其他解決辦法,當我需要畫代替郵票的,更是達到了進入龜的Tkinter的託底和修改龜的硬編碼行結束形狀本身:
from turtle import Turtle, Screen
import tkinter as _
_.ROUND = _.BUTT
WIDTH, LENGTH = 25, 125
yertle = Turtle()
yertle.width(WIDTH)
yertle.penup()
yertle.goto(100, 100)
yertle.pendown()
yertle.forward(LENGTH)
screen = Screen()
screen.exitonclick()
您是否嘗試過turtle.pensize(INT),其中的參數是PX的大小? – adanot 2014-12-02 15:01:00
是的,這只是一個更大的橢圓。 – HEATH3N 2014-12-02 15:01:51