Tkinter图形绘制——图形版发牌程序

开发工具:VS Codecanvas

1.程序功能介绍数组

机随机将52张牌(不含大王和小王)发给四位牌手,在屏幕上显示每位牌手的牌,程序的运行如图3所示。接下来,咱们以使用Canvas绘制Tkinter模块图形为例,介绍创建简单GUI(图形用户界面)游戏界面的方法。框架

2.程序设计思路函数

将要发的52张牌,按梅花0~12,方块13-  25,红桃26- 38,黑桃39-  51的顺序编号并存储在pocker列表c未洗牌以前l,列表元素存储的是某张牌c其实是牌的编号)。同时,按此编号将扑克牌图片顺序存储在imgs列表中。也就是说,imgs[0]存储梅花A的图片,imgs[1]存储梅花2的图片,imgs[14]存储方块2的图片,依次类推。工具

发牌后,根据每位牌手(pl,p2,p3,p4)各自牌的编号列表,从imgs获取对应牌的图片,并使用create- image《x坐标,y坐标),image=图像文件)将牌显示在指定位置。布局

3.Canvas图形绘制技术开发工具

Canvas为Tkinter提供了绘图功能,其提供的图形绘制函数可绘制线形、圆形、椭圆、多边形、图片等。设计

Canvas画布组件对象

Canvas(画布)是一个长方形的区域,用于图形绘制或复杂的图形界面布局。用户以在画布上绘制图形、文字,放置各类组件和框架。blog

可使用下面的方法建立一个Canvas对象。

Canvas对象嚣Canvas  (窗口对象+  选项+  …)

显示Canvas对象的方法以下。

Canvas对象。pack()

Canvas上的图形对象

1.绘制图形对象

在Canvas画布上能够绘制各类图形对象,经常使用绘制函数以下。

create_arc():绘制圆弧。

create_line():绘制直线。

create_bitmap():绘制位图。

create_image():绘制位图图像。

create_oval():绘制椭圆。

create_polyon():绘制多边形

create_window():绘制子窗口。

create_text():建立一个文字对象。

Canvas上的每一个绘制对象都有一个标识id(整数),使用绘制函数建立绘制对象时,返回绘制对象的id。

idl=cv.  create  line (10,10,100,80+width=2,dash^-7)月并绘制直线

idl能够获得绘制对象直线的id。

在建立图形对象时,可使用属性tags设置图形对象的标记(tag),例如:

rt  =  cv. create _rectangle (10, 10, 110, 110,tags =('r1','r2','r3'))

指定标记后,使用find withtag()方法能够获取指定tag的图形对象,而后设置图形对象的属性。find withtag()方法的语法以下:

Canvas对象.find withtag (tag名)

find withtag()方法返回一个图形对象数组,其中包含全部具备tag名的图形对象。

使用itemconfig()方法能够设置图形对象的属性,语法以下:

Canvas对象.  itemconfig  (图形对象,属性1=值1+属性2=值2,…)

绘制圆弧

使用create_arc()方法能够建立一个圆弧对象,圆弧对象能够是一个弓形、扇形或者一个简单的弧,具体语法以下:

Canvas对象.create_arc(弧外框矩形左上角的x坐标+弧外框矩形左上角的y坐标,弧外框矩形右下角的x坐标+弧外框矩形右下角的y坐标,选项,…)

建立圆弧对象时的经常使用选项: outline指定圆弧边框颜色,fill指定填充颜色,width指定圆弧边框的宽度,start表明 起始角度,extent表明指定角度偏移量而不是终止角度。

绘制线条

使用create_line()方法能够建立一个线条对象,具体语法以下:

line  薑 canvas.create一  line (x0,  y0,  xl,  yl,  ¨,+  xn,’  yn,  选项)

参数x0、y0、x一、y一、……、xn、yn是线段的端点。

建立线段对象时的经常使用选项:width指定线段宽度,arrow指定是否使用箭头t none表示没有箭头,first表示起点有箭头,last表示终点有箭头,both表示两端有箭头),fill指定线段颜色,dash指定线段为虚线(其整数值决定虚线的样式)。

绘制矩形

使用create_rectangle()方法能够建立矩形对象。具体语法以下:

Canvas对象.create_rectangle(矩形左上角的x坐标,矩形左上角的y坐标,矩形右下角的x坐标,矩形右下角的y坐标,选项,…)

建立矩形对象时的经常使用选项: outline指定边框颜色,fill指定填充颜色,width指定边框的宽度,dash指定边框为虚线,stipple使用指定自定义画刷填充矩形。

绘制多边形

使用create_polygon()方法能够建立一个多边形对象,多边形对象能够是一个三角形、矩形或者任意一个多边形,具体语法以下:

Canvas对象.create-polygon(顶点1的x坐标,顶点1的y坐标,顶点2的x坐标,顶点2的y坐标,  …,顶点n的x坐标,顶点n的y坐标,选项,…)

建立多边形对象时的经常使用选项: outline指定边框颜色,fill指定填充颜色,width指定边框的宽度,smooth指定多边形的平滑程度(o表示多边形的边是折线,1表示多边形的边是平滑曲线)。

绘制椭圓

使用create_oval()方法能够建立一个椭圆对象,具体语法以下:

Canvas对象.create oval(包裹椭圆的矩形左上角x坐标,包裹椭圆的矩形左上角y坐标。包裹椭圆的矩形右下角x坐标,包裹椭圆的矩形右下角y坐标,选项,…)

建立椭圆对象时的经常使用选项:outline指定边框颜色,fill指定填充颜色,width指定边框的宽度。若是包裹椭圆的矩形是正方形,则绘制的是一个圆形。

绘制文字

使用create_text()方法能够建立一个文字对象,具体语法以下:

文字对象= Canvas对象.create text((文本左上角的x坐标,文本左上角的y坐标),选项,…)

建立文字对象时的经常使用选项: text是文字对象的文本内容,fill指定文字颜色,anchor控制文字对象的位置(其中,'W'表示左对齐,’e,表示右对齐,’n’表示顶对齐,,s,表示底对齐,’nw,表示左上对齐,’sw’表示左下对齐,,se,表示右下对齐,,ne嚷示右上对齐,,center,表示居中对齐,anchor默认值为,center'),justify设置文字对象中文本的对齐方式(其中,’left'表示左对齐,’right’表示右对齐,’center’表示居中对齐,justify默认值为’center')。

select from()方法用于指定选中文本的起始位置,具体用法以下:

Canvas对象.select-from(文字对象,选中文本的起始位置)

select_to()方法用于指定选中文本的结束位置,具体用法以下:

Canvas对象.selectto(文字对象,选中文本的结束位置)

绘制位图和图像

绘制位图    使用create bitmap()方法能够绘制Python内置的位图,具体方法

Canvas对象。create_bitmap((x坐标,y坐标),bitmap=位图字符串,选项,  …)

其中:(x坐标,y坐标)是位图放置的中心坐标;经常使用选项有bitmap、activebitmap和出sabledbitmap,分别用于指定正常、活动和禁用状态显示的位图。

绘制图像

在游戏开发中须要使用大量图像,采用create bitmap()方法能够绘制图形、图像,具体方法以下:

Canvas对象.create image((x坐标,y坐标),  image=图像文件对象+  选项,  …)

其中:(x坐标,y坐标)是图像放置的中心坐标;经常使用选顶有unage、activeimage和disabled image,分别用于指定正常、活动和禁用状态下显示的图像。

注意:使用PhotoImage函数可获取图像文件对象。

img1=PhotoImage(file =图像文件)

修改图形对象的坐标

使用coords()方法能够修改图形对象的坐标,具体方法以下:

Canvas对象.coords(图形对象,  (图形左上角的x坐标,图形左上角的y坐标,图形右下角的x坐标,图形右下角的y坐标))

由于能够同时修改图形对象的左上角的坐标和右下角的坐标,因此能够缩放图形对象。

注意:若是图形对象是图像文件,则只能指定图像中心点坐标,而不能指定图像对象左上角的坐标和右下角的坐标,故不能缩放图像。

移动指定图形对象

使用move()方法能够修改图形对象的坐标,具体方法以下:Canvas对象.move  (图形对象,  x坐标偏移量,  y坐标偏移量)

删除图形对象

使用delete()方法能够删除图形对象,具体方法以下:

Canvas对象.delete  (图形对象)

缩放图形对象

使用scale()方法能够缩放图形对象,具体方法以下:

Canvas对象.scale(图形对象,  x轴偏移量,y轴偏移量,x轴缩放比例,y轴缩放比例)

4.参考代码

5.运行结果

相关文章
相关标签/搜索