導航:首頁 > 編程語言 > python畫布拖動圖形

python畫布拖動圖形

發布時間:2022-12-19 02:28:14

A. python tkinter 如何使canvas上的圖片隨著窗體變化而動態變化

canvas(或者任意控制項)可以變化,通常是某些控制項的屬性設置
self.c=Canvas(…)
self.c.pack(fill="both", expand=True)

B. python 如何實現N個小圖標隨機不重疊放置到一個大圖里

思路:

①畫布的大小已經確定,橫縱坐標位置最大值都是500

②以坐標左下角為零點,任選一個坐標作為圖片左上角的點,我們需要放進去的圖片縮放後的像素分別為(x,y)

③從上面的圖片可以看到,不管圖片怎麼旋轉,中間的區域都是隨便放,中間區域坐標范圍為[(x^2+y^2)^0.5,500-(x^2+y^2)^0.5],由於坐標默認正方形,那麼橫縱坐標的范圍都是這個,在這個區間,你的圖片可以任意旋轉放置都不會出界

④四條邊和四個角算的原理跟上面一樣,這是一張圖片放置

⑤第二張以上的圖片放置也是一樣的,不同的是要加一個重合的判定,如果隨機的值生成的圖形跟圖片區域中得任意圖形重合,則再選取一個隨機數重新生成大小和旋轉,直至放進去沒有重合為止,重合可以通過面積運算,沒有交叉的區域設為0,交叉的區域設為1即可判斷。

⑥重復以上操作,直至15張全部放置完成即可

C. Python繪圖之(1)Turtle庫詳解

Turtle庫是Python語言中一個很流行的繪制圖像的函數庫,想像一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據一組函數指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪制了圖形。

畫布就是turtle為我們展開用於繪圖區域,我們可以設置它的大小和初始位置。

設置畫布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None),參數分別為畫布的寬(單位像素), 高, 背景顏色。

如:turtle.screensize(800,600, "green")

turtle.screensize() #返回默認大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None),參數:width, height: 輸入寬和高為整數時, 表示像素; 為小數時, 表示占據電腦屏幕的比例,(startx, starty): 這一坐標表示矩形窗口左上角頂點的位置, 如果為空,則窗口位於屏幕中心。

如:turtle.setup(width=0.6,height=0.6)

turtle.setup(width=800,height=800, startx=100, starty=100)

2.1 畫筆的狀態

在畫布上,默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一隻面朝x軸正方向小烏龜。這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態。

2.2 畫筆的屬性

畫筆(畫筆的屬性,顏色、畫線的寬度等)

1) turtle.pensize():設置畫筆的寬度;

2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字元串如"green", "red",也可以是RGB 3元組。

3) turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。

2.3 繪圖命令

操縱海龜繪圖有著許多的命令,這些命令可以劃分為3種:一種為運動命令,一種為畫筆控制命令,還有一種是全局控制命令。

(1) 畫筆運動命令


(2) 畫筆控制命令


(3) 全局控制命令


(4) 其他命令


3. 命令詳解

3.1 turtle.circle(radius, extent=None, steps=None)

描述:以給定半徑畫圓

參數:

radius(半徑):半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓;

extent(弧度) (optional);

steps (optional) (做半徑為radius的圓的內切正多邊形,多邊形邊數為steps)。

舉例:

circle(50) # 整圓;

circle(50,steps=3) # 三角形;

circle(120, 180) # 半圓


實例:

1、太陽花

2、五角星

3、時鍾程序

D. python繪圖工具turtle庫的使用

#PythonDraw.py

import turtle                                  #導入turtle庫

turtle.setup(650, 350, 200, 200)   #設置畫布大小和位置

turtle.penup()                                #抬起畫筆

turtle.fd(-250)                                #畫筆在空中向前飛行-250個像素

turtle.pendown()                           #畫筆落下

turtle.pensize(25)                         #畫筆寬度25個像素

turtle.pencolor("purple")               #畫筆顏色為紫色

turtle.seth(-40)                             #海龜方向香油轉動45度,但是不行進

for i in range(4):                           #這里是一個循環

turtle.circle(40, 80)                      #繞著左邊40遠處的點向轉80度

turtle.circle(-40, 80)                     #繞著右邊40遠處的點向轉80度

turtle.circle(40, 80/2)                   #繞著左邊40遠處的點向轉80/2度

turtle.fd(40)                                  #向前40個像素

turtle.circle(16, 180)                     #繞著左邊16遠處的點向轉180度

turtle.fd(40 * 2/3)                          #向前40*2/3個像素

turtle.done()                                 #運行完不退出

1.turtle庫基本介紹

有一隻海龜,其在窗體正中心,在畫布上遊走,走過的軌跡形成了繪制的圖形, 海龜由程序控制,可以變換顏色、改變寬度等。

2.turtle庫繪圖窗體布局

不設置位置,默認在屏幕中心顯示

3.turtle庫空間坐標體系

絕對坐標,可以使用goto函數到達指定位置

例如:

4.turtle庫角度坐標體系

5.RGB色彩體系

E. 怎樣用python畫圖

思路:

1. 確定好需要畫的圖。

2. 創建一個畫布,用來畫你需要的圖。

(1)畫布大小,可以使用默認大小,也可以自定義畫布大小。

(2)畫布背景色bgcolor()。

(3)確定起點位置。

3. 畫筆的設置。

(1)畫筆的大小,顏色。

(2)畫筆運行屬性。

二、定義畫布參數

importturtleast
t.screensize(width=None,heigh=None,bg=None)#以像素為單位,參數分別為畫布的寬,高,背景色
t.screensize()#返回默認大小(400,300)
t.Screen()#也是表示默認畫布大小,注意S大寫
t.setup(w=0.5,h=0.75,startx=None,starty=None)#w,h為整數是表示像素,為小數時表示占據電腦屏幕的比例
#startx,starty坐標表示矩形窗口左上角頂點的位置,默認為屏幕中心位置

三、定義畫筆

1、畫筆的狀態

在畫布上默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一隻面朝x軸正方向小烏龜。這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向),turtle繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態。

2、畫筆的屬性

畫筆(畫筆的屬性,顏色、畫線的寬度)

(1)turtle.pensize():設置畫筆的寬度;

(2)turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字元串如"green","red",也可以是RGB 3元組;

>>>pencolor('brown')
>>>tup=(0.2,0.8,0.55)
>>>pencolor(tup)
>>>pencolor()
'#33cc8c'

(3)turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。

相關推薦:《Python入門教程》

3、繪圖命令

操縱海龜繪圖有著許多的命令,這些命令可以劃分為3種:一種為運動命令,一種為畫筆控制命令,還有一種是全局控制命令。

(1)畫筆運動命令:

(3)全局控制命令:

四、命令詳解

turtle.circle(radius,extent=None,steps=None)

描述:以給定半徑畫圓

參數:

radius(半徑);半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓;

extent(弧度) (optional);

steps (optional) (做半徑為radius的圓的內切正多邊形,多邊形邊數為steps);

舉例:

circle(50)#整圓;
circle(50,steps=3)#三角形;
circle(120,180)#半圓

五、繪圖舉例

(1)菱形太陽花

importturtleast#turtle庫是python的內部庫,直接import使用即可
defdraw_diamond(turt):
foriinrange(1,3):
turt.forward(100)#向前走100步

希望我的回答對你有幫助

F. Python中Turtle模塊的基本指令都有哪些

1、畫布(canvas)

turtle.screensize(700, 600, "green")

turtle.screensize() #返回默認大小(400, 300)

2、畫筆控制命令:

turtle.down() #移動時繪制圖形,預設時也為繪制

turtle.up() #移動時不繪制圖形

turtle.pensize(width) #繪制圖形時的寬度

turtle.color(colorstring) #繪制圖形時的顏色

turtle.fillcolor(colorstring) #繪制圖形的填充顏色

turtle.fill(Ture)

turtle.fill(false)

3、運動命令:

turtle.forward(degree) #向前移動距離degree代表距離

turtle.backward(degree) #向後移動距離degree代表距離

turtle.right(degree) #向右移動多少度,角度

turtle.left(degree) #向左移動多少度

turtle.goto(x,y) #將畫筆移動到坐標為x,y的位置

turtle.stamp() #復制當前圖形

turtle.speed(speed) #畫筆繪制的速度范圍[0,10]整數

turtle.clear() 清空turtle畫的筆跡

turtle.reset() 清空窗口,重置turtle狀態為起始狀態

turtle.undo() 撤銷上一個turtle動作

turtle.isvisible() 返回當前turtle是否可見

turtle.stamp() 復制當前圖形

turtle.write('vshmily') 寫字元串'vshmily'

(6)python畫布拖動圖形擴展閱讀:

在Python中,自定義模塊有兩個作用,一個是規范代碼,另一個是方便其他程序使用的已經編寫好的代碼,從而提高開發效率。自定義模塊主要分為兩部分,一部分是創建模塊,另一部分是導入模塊。

創建模塊可以將模塊中相關的代碼編寫在一個單獨的文件中,並且將該文件命名為「模塊名+.py」的形式。

創建模塊後,就可以在其他程序中使用該模塊了,當載入模塊時,可以使用import語句實現,語法格式為:import molename [as alias]

G. python 要怎麼移動和刪除畫布上的圖片我的代碼move和delete都沒用,求大神指點,謝謝

private static void handleException(Exception e)
{
String msg = null;
if (e instanceof InvocationTargetException)
{
Throwable targetEx = ((InvocationTargetException) e)
.getTargetException();
if (targetEx != null)
{

H. python matplotlib數據作圖

一、使用numpy生成長度為100的等差序列作為自變數,命名為x,並使用三角函數SiNx和cosx**2生成兩個因變數,命名為y和Z。

I. python 圖片移動

#-*-coding:gbk-*-
importImage
importImageDraw
importImageChops

im=Image.new('RGB',(800,600),'white')
im2=Image.open('test.png')

#測試圖放畫布左邊,畫布右邊底色塗黃
left=(im.size[0]/2-im2.size[0])/2
upper=(im.size[1]-im2.size[1])/2
im.paste(im2,(left,upper))
im.paste('yellow',(im.size[0]/2,0)+im.size)
im.show()

#因要旋轉得計算測試圖對角線,然後切出
d=int((im2.size[0]**2+im2.size[1]**2)**0.5)
left=(im.size[0]/2-d)/2
upper=(im.size[1]-d)/2
bbox=(left,upper,left+d,upper+d)
cp=im.crop(bbox)

#圖底不是黑先做mask再作旋轉,
#mask做法不一,按測試圖可選取g或b通道
r,g,b=cp.split()
mask=g.point(lambdai:i<250and255)
angle=30
mask=mask.rotate(angle)
cp=cp.rotate(angle)

#利用mask貼在畫布右邊黃底區內
im.paste(cp,(left+im.size[0]/2,upper),mask)
im.show()

J. Python Matplotlib畫圖

主要用於作圖、可視化問題

pip install matplotlib

導入模塊 pyplot 和 pylab ,可以參考下面鏈接觀察兩者區別:
https://www.cnblogs.com/Shoesy/p/6673947.html
(說白了就是pylay=pyplot+numpy)

輸入這三行解決

主要使用 plot() 來展示,裡面前兩個參數代表 x , y 坐標(注意x,y數量要一樣),第三個參數可以用來設置散點圖( 'o' )或者顏色、線條形式等各種樣式,並且第三個參數可以同時傳入多個,比如要紅色的散點圖就: Ɔr'
(1)顏色樣式:

(2)線條樣式:

(3)點的樣式:

(4)坐標區間:

或者分別設置x、y的區間:

註:
設置點的樣式時默認就是散點圖,以及同類樣式只能設置一個(比如不能設置兩種顏色),並且還可以把多個圖集合在一起展示,那就多 plot 幾個,plot就相當於一個畫布,每plot一個就相當於在上面畫一張圖,再弄就繼續在上面畫

主要用 hist() 來顯示,實現方式很簡單,把一組數據放入括弧里就行了,例如隨機生成一堆正態分布的數,然後直方圖顯示:

其中如果要設置直方圖格式(寬度、上下限、是否要輪廓)可以這樣:

註:
直方圖和折線圖這些不太一樣,折線圖是傳入兩個等長數據,然後每個x、y坐標一一對應展示出來。而直方圖是:第一個參數代表你傳入的所有數據,第二個參數代表你傳入的x軸范圍,然後直方圖會將第一個參數里傳入的數據一個個計算在某個范圍內含有的數據量,因此傳入的兩個參數數據不一定要等長,例如下面的例子:

結果如圖:

可以看出數據被自動分配到對應的范圍內上了

使用 subplot(row, col, area) :三個參數分別是行數、列數和區域,比如要將原圖分成2行2列(切成4份),然後要左下角那個圖就:

如果想4個圖都顯示就4個 subplot ,分別1、2、3、4就行了,然後在各圖的subplot之後寫的都是每個圖的內容,現在我們試試弄一個2行,第一行兩列的圖片(想像下滑鼠的樣子),而且分別是不同的內容:

註:
labels 、 sizes 、 colors 和 explode 的長度都要一樣

1.導入3D圖相關模塊:

2.將畫圖板加到3D模塊里,然後加入數據即可:

3D散點圖舉例:

通過 imread() 讀取,舉例:

https://blog.csdn.net/qq_34859482/article/details/80617391

閱讀全文

與python畫布拖動圖形相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163