1. 程式人生 > 實用技巧 >Python graphics庫詳解

Python graphics庫詳解

內容引自:https://blog.csdn.net/winycg/article/details/78066044?fps=1&locationNum=2

GraphWin物件常用方法

方法名稱 方法含義
plot(x, y, color) 在視窗中(x,y)位置繪製畫素。 顏色引數可選, 預設值為黑色。
plotPixel(x, y, Color) 在 “原 始 ” 位 置(x,y)處 繪 制 像 素 , 忽 略setCoords()方法設定的座標變換。
setBackground(color) 將視窗背景顏色設為指定顏色, 預設值為灰色。
close() 關閉螢幕上的視窗。
getMouse() 程式等待使用者在視窗內點選滑鼠, 返回值為點選處的位置, 並以Point物件返回。
setCoords(xll, yll, xur,yur) 設定視窗的座標系。 左下是(xll,yll), 右上角是(xur,yur)。 所有後面的繪製都以這個座標系做參照(plotPexil除外)



圖形物件通用方法

方法名稱 方法含義
setFill(color) 設定物件內部填充顏色。
setOutline(color) 設定物件邊框顏色。
setWidth(pixels)
設定物件的寬度(Point類不起用)
draw(aGraphWin) 在指定的視窗中繪製物件。
undraw() 從視窗中刪除該物件。如該物件沒有在視窗中畫出將會報錯。
move(dx,dy) 將物件沿x軸和y軸分別移動dxdy單位長度。
clone() 返回該物件的副本。



Point物件方法

方法名稱 方法含義
Point(x,y) 以指定座標的值(x, y)構造一點
getX() 返回該點的x座標值
getY() 返回該點的y



Line物件方法

方法名稱 方法含義
Line(point1, point2) 構造一個從點point1到點point2的線段
setArrow(string) 設定線段的箭頭樣式。箭頭可以繪製在左端,右端,或者兩端都有string
數值為’first’, ’last’, ’both’,’none’
認值為’none’
getCenter() 返回線段中點的座標值。
getP1(), getP2() 返回線段相應端點的座標值。



Circle物件方法:

方法名稱 方法含義
Circle(centerPoint,radius) 根據給定圓心和半徑構建圓
getCenter() 返回圓心的值
getRadius() 返回圓的半徑長度
getP1(), getP2() 返回值為該圓邊框對應點, 對應點指的是該圓外接正方形的對角點。



Rectangle物件方法

方法名稱 方法含義
Rectangle(point1, point2) point1point2為對角點建立一個矩形。
getCenter() 返回矩形的中心點的克隆值。
getP1(), getP2() 返回構造矩形的對角點的克隆



Oval物件方法

方法名稱 方法含義
Oval(point1, point2) 在點point1point2指定的邊界框中建立一個橢圓。
getCenter() 返回橢圓的中心點的座標值
getP1(), getP2() 返回構造橢圓的對角點的座標值



Polygon 物件方法

方法名稱 方法含義
Polygon(point1, point2,point3, ...) 根據給定的頂點構造一個多邊形。 也可以只用一個頂點列表作為引數
getPoints() 返回構造多邊形的頂點值的列表



Text 物件方法

GraphWin物件常用方法

方法名稱 方法含義
plot(x, y, color) 在視窗中(x,y)位置繪製畫素。 顏色引數可選, 預設值為黑色。
plotPixel(x, y, Color) 在 “原 始 ” 位 置(x,y)處 繪 制 像 素 , 忽 略setCoords()方法設定的座標變換。
setBackground(color) 將視窗背景顏色設為指定顏色, 預設值為灰色。
close() 關閉螢幕上的視窗。
getMouse() 程式等待使用者在視窗內點選滑鼠, 返回值為點選處的位置, 並以Point物件返回。
setCoords(xll, yll, xur,yur) 設定視窗的座標系。 左下是(xll,yll), 右上角是(xur,yur)。 所有後面的繪製都以這個座標系做參照(plotPexil除外)


圖形物件通用方法
方法名稱 方法含義
setFill(color) 設定物件內部填充顏色。
setOutline(color) 設定物件邊框顏色。
setWidth(pixels) 設定物件的寬度(Point類不起用)
draw(aGraphWin) 在指定的視窗中繪製物件。
undraw() 從視窗中刪除該物件。如該物件沒有在視窗中畫出將會報錯。
move(dx,dy) 將物件沿x軸和y軸分別移動dxdy單位長度。
clone() 返回該物件的副本。


Point物件方法
方法名稱 方法含義
Point(x,y) 以指定座標的值(x, y)構造一點
getX() 返回該點的x座標值
getY() 返回該點的y


Line物件方法
方法名稱 方法含義
Line(point1, point2) 構造一個從點point1到點point2的線段
setArrow(string) 設定線段的箭頭樣式。箭頭可以繪製在左端,右端,或者兩端都有string
數值為’first’, ’last’, ’both’,’none’
認值為’none’
getCenter() 返回線段中點的座標值。
getP1(), getP2() 返回線段相應端點的座標值。


Circle物件方法:
方法名稱 方法含義
Circle(centerPoint,radius) 根據給定圓心和半徑構建圓
getCenter() 返回圓心的值
getRadius() 返回圓的半徑長度
getP1(), getP2() 返回值為該圓邊框對應點, 對應點指的是該圓外接正方形的對角點。


Rectangle物件方法
方法名稱 方法含義
Rectangle(point1, point2) point1point2為對角點建立一個矩形。
getCenter() 返回矩形的中心點的克隆值。
getP1(), getP2() 返回構造矩形的對角點的克隆


Oval物件方法
方法名稱 方法含義
Oval(point1, point2) 在點point1point2指定的邊界框中建立一個橢圓。
getCenter() 返回橢圓的中心點的座標值
getP1(), getP2() 返回構造橢圓的對角點的座標值


Polygon 物件方法
方法名稱 方法含義
Polygon(point1, point2,point3, ...) 根據給定的頂點構造一個多邊形。 也可以只用一個頂點列表作為引數
getPoints() 返回構造多邊形的頂點值的列表


Text 物件方法
方法名稱 方法含義
Text(anchorPoint, string) anchorPoint點的位置為中心, 構建了一個內容為string的文字物件。
setText(string) 設定文字物件的內容
getText() 返回當前文字內容。
getAnchor() 返回文字顯示中間位置點anchor的座標值。
setFace(family) 設定文字字型。family可選值為:’helvetica’,’courier’, ’times
roman’,以及’arial’.
setSize(point) 設定字型大小為給定點point的大小。 合法數值為5-36
setStyle(style) 設定字型的風格。 可選值為’normal’, ’bold’, ’italic’,以及’bolditalic’
setTextColor(color)

設定文字顏色。 與setFill效果相同。

color_rgb(red,green,blue)函式
設定顏色數值獲得顏色
三個引數為0-255範圍內的整數
返回一個字串
color_rgb(255,0,0) 亮紅色,
color_rgb(130,0,130) 中度洋紅色。
graphics庫使用 例項1:
 1 #Graphics庫應用
 2 
 3 from graphics import *
 4  
 5 def main():
 6     #建立視窗物件,預設為200*200px,(0,0)表示螢幕左上角
 7     win=GraphWin("Graphics庫應用",700,200)
 8  
 9  
10     #畫點
11     p1=Point(100,100)
12     p1.draw(win)
13  
14     #畫圓,以p1為圓心,半徑為100
15     circ=Circle(p1,90)
16     circ.draw(win)
17     circ.setOutline("red")#外圍輪廓顏色
18     circ.setFill("yellow")#填充顏色
19  
20     #畫線
21     line=Line(Point(650,100),Point(250,100))
22     line.draw(win)
23  
24     #在p1點上顯示文字
25     message=Text(p1,"圓心")
26     message.draw(win)
27 
28     
29 if __name__=="__main__":
30     main()

執行結果:

用Entry求和
例項2:
 1 #用Entry求和例項
 2 from math import *
 3 from graphics import *
 4  
 5 def main():
 6     win=GraphWin("求和",300,300)
 7     
 8     Text(Point(100,50),"數1:").draw(win)
 9     input1=Entry(Point(150,50),5)
10     input1.setText(0.0)
11     input1.draw(win)
12     Text(Point(100, 100), "數2:").draw(win)
13     input2=Entry(Point(150,100),5)
14     input2.setText(0.0)
15     input2.draw(win)
16     Text(Point(80, 150), "兩數之和:").draw(win)
17     input3 = Entry(Point(150, 150), 5)
18     input3.draw(win)
19     
20     #點選螢幕求和,求和運算必須是點選滑鼠之後,否則參加計算的是預設值
21   
22     win.getMouse()
23     sum=eval(input1.getText())+eval(input2.getText())
24     input3.setText(sum)
25     win.getMouse()
26     win.close()
27  
28 if __name__=='__main__':
29     main()

執行結果: