日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

graphics库的使用

發布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 graphics库的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

graphics庫的基礎使用

      • 引用庫:
      • 創建畫布:
      • 關閉畫布:
      • 創建點的實例:
      • 申請繪制:
      • 點坐標的獲取:
      • 創建線的實例:
      • 創建圓的實例:
    • 文本
      • 在畫布中創建文本實例:
      • 修改文本內容:
      • 獲取文本內容:
      • 設置文本大小:
      • 設置文本顏色:
      • 設置文本類型:
    • 多邊形
      • 創建矩形實例:
      • 創建多邊形實例:
    • 申請繪制:
      • 繪制實例:
      • 設置線條顏色:
      • 設置線條粗細:
      • 設置填充色
    • 鼠標的獲取:
    • 文本輸入框
      • 代碼
      • 運行結果
    • 小練習
      • 目標:
      • 代碼:
      • 運行結果:

引用庫:

from graphics import *

創建畫布:

win = GraphWin(<畫布名稱>,<畫布長度>,<畫布寬度>) #(可以更簡潔的創建畫布)

關閉畫布:

win.close() #(必須代碼,切記)

在畫布上,左上角坐標為(0,0)

一個實例只能夠在畫布上繪制一次,多次在不同地方繪制,只能顯示最近一次的繪制結果(一一對應)

創建點的實例:

p = Point(x,y) #(x,y為坐標)

申請繪制:

p.draw(win)

點坐標的獲取:

x_local = p.getX()#獲取橫坐標 y_local = p.getY()#獲取縱坐標

創建線的實例:

l = Line(Point(x,y),Point(x,y)) #繪制兩點間的連線

創建圓的實例:

<實例名稱> = Circle(Point(x,y),R) #Point(x,y)為圓心坐標,R為圓的半徑

文本

在畫布中創建文本實例:

txt = Text(Point(x,y),<文本內容>) #Point()為文本中心點的坐標

修改文本內容:

<實例名稱>.setText(<文本內容>)

獲取文本內容:

mes = <實例名稱>.getText()

設置文本大小:

<實例名稱>.setSize(<size>)

設置文本顏色:

<實例名稱>.setTextColor(<color>)

設置文本類型:

<實例名稱>.setStyle(<style>)

多邊形

創建矩形實例:

rec = Rectangle(p1,p2) #p1為左上角頂點的坐標,p2為右下角頂點的坐標

創建多邊形實例:

polygon = Polygon(p1,p2,p3,.......) #在Polygon后的點可以使用單個的點坐標,也可以使用坐標的集合

申請繪制:

繪制實例:

<實例名稱>.draw(win)

設置線條顏色:

<實例名稱>.setOutline(<color>)

設置線條粗細:

<實例名稱>.setWidth(<width>)

設置填充色

<實例名稱>.setFill(<color>)

鼠標的獲取:

gm = win.getMouse() #窗口會將點擊的坐標值返回到gm中

文本輸入框

mes = Entry(Point(x,y),width) #Point為輸入框中心坐標,width為輸入框長度 mes.draw(win)

實例:

代碼

首先引用庫,創建畫布:

from graphics import * win = GraphWin('run',300,300)#創建一個長寬為300像素的畫布

然后建立一個輸入框的實例并在畫布中展示出來:

mes = Entry(Point(150,150),15)#創建輸入框實例 mes.draw(win)#在畫布中顯示輸入框 win.getMouse()#點擊畫布執行下一步

通過getText()方法來獲取輸入框內的文本,然后將文本的內容展示在畫布上:

txt = mes.getText()#獲取輸入框內的內容 mes2 = Text(Point(150,200),txt)#創建文本實例 mes2.draw(win)#在畫布上展示文本 win.getMouse()#點擊畫布執行下一步

在代碼的最后,要記得關閉畫布哦:

win.close()

如果忘記使用這條代碼,可以手動關閉畫布,或者使用調試系統,輸入win.close()同樣可以強制關閉畫布。

運行結果


在輸入框內隨便輸入內容,再點擊畫布其他位置繼續執行代碼:

再次點擊畫布,代碼結束,畫布關閉。

是不是很簡單?!

最后,再分享一個小代碼,可以自己嘗試寫一寫,練一練:

小練習

目標:

通過鼠標點擊獲取坐標,在鼠標點擊處繪制圖形:

代碼:

引用庫,創建畫布(別說我啰嗦,這是必備的!)

from graphics import * shape = [500,500]#設置屏幕的大小 win = GraphWin('點擊畫愛心',shape[0],shape[1])#創建畫布

設置退出按鈕的各個頂點坐標:

p_1 = Point(shape[0]/2-35,shape[1]-45) p_2 = Point(shape[0]/2+35,shape[1]-45) p_3 = Point(shape[0]/2+35,shape[1]-5) p_4 = Point(shape[0]/2-35,shape[1]-5) exit_bu = [p_1,p_2,p_3,p_4]

在畫布上繪制出退出按鈕,但是剛開始的按鈕并沒有任何功能。

#在畫布上繪制退出按鈕 rec = Polygon(*exit_bu)#創建多邊形,也可以使用矩形 txt = Text(Point(shape[0]/2,shape[1]-25),'退出') txt.setSize(15)#設置文本的大小 txt.draw(win) rec.draw(win)

然后,設置循環,通過win.getMouse()方法來獲取鼠標點擊時的坐標,win.getMouse()的返回值是一個點,Point()類型,可以使用getX(),getY()來獲取點的橫縱坐標。

while True:p = win.getMouse()#獲取鼠標點擊畫布時的坐標px = p.getX()#獲取X坐標py = p.getY()#獲取Y坐標draw_p = [Point(px,py),Point(px+10,py-10),Point(px+20,py),Point(px,py+20),Point(px-20,py),Point(px-10,py-10)]#將需要繪制圖形的點集合在一起,這里是一個簡陋的?po = Polygon(*draw_p)#使用多邊形的繪制方法來繪制我們所需圖形po.setFill('red')#設置圖形填充色po.setOutline('white')#設置圖形線條的顏色po.draw(win)

在我們程序可以得到鼠標點擊時的坐標后,我們就可以來實現退出按鈕的功能,接下來就開始設置按鈕的作用:結束程序。

#設置退出功能能if((shape[0]/2+35)>px>(shape[0]/2-35))and((shape[1]-5)>py>(shape[1]-45)):#當鼠標點擊在按鈕內部時,退出程序break

關閉畫布

#win.getMouse() win.close() print('感謝你的使用!')

運行結果:

代碼部分就那么多了,接下來展示代碼運行結果:


以上就是本次分享的全部內容,感謝各位的觀看!

總結

以上是生活随笔為你收集整理的graphics库的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。