"""画太极图教学辅助程序。本程序采用Screen(3)把窗口整体分为两个大区。上面的是root.topframe,下面的是root.bottomframe。在root.bottomframe框架中,又分为左右两个框架,名称分别是lframe和rframe。其中lframe又分为frameup和framedown两个框架。而rframe又分为rframeleft和rframeright两个框架。为更好的理解,请查看'程序的窗口分区示意图.png'图形。
"""
from sprites import *def draw_filled_circle():"""画填充颜色的圆形"""x = int(xvar.get())y = int(yvar.get())radius = int(radiusvar.get())color = colorvar.get()angle = int(anglevar.get())pdstatus = turtle.isdown()    # 保存是否落笔状态    turtle.penup()turtle.goto(x,y)turtle.pendown()turtle.pencolor(color)screen.tracer(0,0)for x in range(angle*10):turtle.fd(radius)turtle.bk(radius)turtle.rt(0.1)                if pdstatus:turtle.pendown()else:turtle.penup()screen.tracer(1,0)screen = Screen(3)              # 上下框架结构topframe和bottomframe
screen.bgcolor('#a0aea2')
screen.title('画太极图教学辅助程序')turtle = Sprite(shape='turtle') # 新建一只海龟
turtle.penup()
turtle.pensize(2)
turtle.shapesize(2,2,2)
turtle.setheading(90)
turtle.color('black','yellow')
turtle.say('你好,请单击按钮',10,False)root = screen._root
root.topframe.pack(expand=1,fill='both')
root.bottomframe.pack(expand=0,fill='both',padx=10)lframe = TK.Frame(root.bottomframe,bg='yellow')
lframe.pack(side=TK.LEFT)
rframe = TK.Frame(root.bottomframe,bg='pink')
rframe.pack(side=TK.LEFT,expand=1,fill='both')frameup = TK.Frame(lframe,bg='blue')
frameup.pack(side=TK.TOP,expand=0,fill='both',padx=10)
framedown = TK.Frame(lframe,bg='cyan')
framedown.pack(side=TK.BOTTOM,expand=0,fill='both',padx=10,pady=10)drawcircle = TK.Button(frameup,text='画圆形',font=('黑体',13,'normal'),command=draw_filled_circle)
drawcircle.pack(side=TK.LEFT)xvar = TK.StringVar(value='0')
x_lable = TK.Label(frameup,text='x:')
x_lable.pack(side=TK.LEFT)
x_cor = TK.Entry(frameup,width=5,textvariable=xvar)
x_cor.pack(side=TK.LEFT)yvar = TK.StringVar(value='0')
y_lable = TK.Label(frameup,text='y:')
y_lable.pack(side=TK.LEFT)
y_cor = TK.Entry(frameup,width=5,textvariable=yvar)
y_cor.pack(side=TK.LEFT)colorvar = TK.StringVar(value='black')
color_lable = TK.Label(frameup,text='颜色:')
color_lable.pack(side=TK.LEFT)
color = TK.Entry(frameup,width=8,textvariable=colorvar)
color.pack(side=TK.LEFT)radiusvar = TK.StringVar(value='100')
radius_lable = TK.Label(frameup,text='半径:')
radius_lable.pack(side=TK.LEFT)
radius = TK.Entry(frameup,width=8,textvariable=radiusvar)
radius.pack(side=TK.LEFT)anglevar= TK.StringVar(value='180')
angle_lable = TK.Label(frameup,text='角度:')
angle_lable.pack(side=TK.LEFT)
angle = TK.Entry(frameup,width=8,textvariable=anglevar)
angle.pack(side=TK.LEFT)def cmd1():xvar.set('0')yvar.set('0')colorvar.set('black')radiusvar.set('100')anglevar.set('180')draw_filled_circle()def cmd2():xvar.set('0')yvar.set('0')colorvar.set('white')radiusvar.set('100')anglevar.set('180')draw_filled_circle()def cmd3():xvar.set('0')yvar.set('50')colorvar.set('white')radiusvar.set('50')anglevar.set('360')draw_filled_circle()def cmd4():xvar.set('0')yvar.set('-50')colorvar.set('black')radiusvar.set('50')anglevar.set('360')draw_filled_circle()def cmd5():pdstatus = turtle.isdown()    # 保存是否落笔状态turtle.penup()turtle.goto(0,-50)turtle.dot(20,'white')    if pdstatus:turtle.pendown()else:turtle.penup()
def cmd6():pdstatus = turtle.isdown()    # 保存是否落笔状态turtle.penup()turtle.goto(0,50)turtle.dot(20,'black')    if pdstatus:turtle.pendown()else:turtle.penup()step1 = TK.Button(framedown,text='第一步:在(0,0)坐标向右画一个半径为100的黑色半圆',font=('黑体',13,'normal'),command=cmd1)
step1.pack(side=TK.TOP)
step2 = TK.Button(framedown,text='第二步:在(0,0)坐标向右画一个半径为100的白色半圆',font=('黑体',13,'normal'),command=cmd2)
step2.pack(side=TK.TOP)
step3 = TK.Button(framedown,text='第三步:在(0,50)坐标向右画一个半径为50的白色半圆',font=('黑体',13,'normal'),command=cmd3)
step3.pack(side=TK.TOP)
step4 = TK.Button(framedown,text='第四步:在(0,-50)坐标向右画一个半径为50的黑色半圆',font=('黑体',13,'normal'),command=cmd4)
step4.pack(side=TK.TOP)
step5 = TK.Button(framedown,text='第五步:在(0,-50)坐标打一个白色的小圆点',font=('黑体',13,'normal'),command=cmd5)
step5.pack(side=TK.TOP)
step6 = TK.Button(framedown,text='第六步:在(0,50)坐标打一个黑色的小圆点',font=('黑体',13,'normal'),command=cmd6)
step6.pack(side=TK.TOP)# 在bottomframe的右边放几个常用操作按钮
rframeleft = TK.Frame(rframe,bg='dodger blue')
rframeleft.pack(side=TK.LEFT,expand=1,fill='both')
rframeright = TK.Frame(rframe,bg='green')
rframeright.pack(side=TK.LEFT,expand=1,fill='both')clearb = TK.Button(rframeleft,text='清除',font=('黑体',13,'normal'),command=lambda:turtle.clear())
clearb.pack(side=TK.TOP)
fd10b = TK.Button(rframeleft,text='前进10',font=('黑体',13,'normal'),command=lambda:turtle.fd(10))
fd10b.pack(side=TK.TOP)
bk10b = TK.Button(rframeleft,text='倒退10',font=('黑体',13,'normal'),command=lambda:turtle.bk(10))
bk10b.pack(side=TK.TOP)
right10b = TK.Button(rframeleft,text='右转10度',font=('黑体',13,'normal'),command=lambda:turtle.right(10))
right10b.pack(side=TK.TOP)
left10b = TK.Button(rframeleft,text='左转10度',font=('黑体',13,'normal'),command=lambda:turtle.left(10))
left10b.pack(side=TK.TOP)
pendownb = TK.Button(rframeleft,text='落笔',font=('黑体',13,'normal'),command=lambda:turtle.pendown())
pendownb.pack(side=TK.TOP)
penupb = TK.Button(rframeleft,text='抬笔',font=('黑体',13,'normal'),command=lambda:turtle.penup())
penupb.pack(side=TK.TOP)def gohome():turtle.home()turtle.setheading(90)homeb = TK.Button(rframeright,text='回家',font=('黑体',13,'normal'),command=gohome)
homeb.pack(side=TK.TOP)
randomb = TK.Button(rframeright,text='随机位置',font=('黑体',13,'normal'),command=lambda:turtle.randompos())
randomb.pack(side=TK.TOP)def callaskcolor():c = askcolor()turtle.color(c[1])
colorb = TK.Button(rframeright,text='颜色',font=('黑体',13,'normal'),command=callaskcolor)
colorb.pack(side=TK.TOP)def runcommand():c = screen.textinput('运行','海龟名称为turtle,屏幕名称为screen,请自行输入命令:')if c=='' or c == None:returntry:exec(c)except Exception as e :showinfo('错误',str(e))runb = TK.Button(rframeright,text='运行',font=('黑体',13,'normal'),command=runcommand)
runb.pack(side=TK.TOP)screen.mainloop()

画太极图辅助程序_Python精灵模块应用实例相关推荐

  1. Python音乐跳舞毯(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)

    出色的配音是本作品的一大亮点哦! 相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块制作的!所以本作品仍属于Python海龟画图作品 " ...

  2. python动画精灵_Python精灵模块简介

    一.简介: 本模块命令名为精灵模块,或叫角色模块.本模块已经上传到了pypi网站,通过在cmd窗口下输入pip install sprites即可安装使用. 精灵模块主要提供继承自Turtle的Spr ...

  3. python模块是一个可共享的程序_python基础-模块

    一 模块介绍 #一个python文件有两种用途#1.被当成程序运行#2.被当做模块导入 在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好 ...

  4. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  5. python画星空的程序_python画画梵高

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 众多的第三方库: 解释执行,不需要编译: 跨平台,方便移植:..... 两个词总 ...

  6. python matplotlib画多个图_python matplotlib模块 如何画两张图出来

    展开全部 python matplotlib模块 如何画两张图出2113来的方法:5261 代码如下所示: import numpy as np import matplotlib.pyplot as ...

  7. Python奥特曼打怪兽射击游戏(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)

    相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...

  8. python画星空的程序_Python画好看的星空图

    有许多关于星空的美丽的句子.\u201C一切都像生活,悄然转变,就像今天晚上一样,失去了光明,但获得的美丽星空\u201D\u201D他写道在伦敦星空:你是我唯一的明星.她在星空的小镇.写下:\u20 ...

  9. 用python画小猪佩奇代码_Python turtle模块实例:绘制小猪佩奇(上)

    在上一节教程中,我们已经对小猪佩奇进行了分析,现在我们就来进行绘制. 设置画布和画笔 首先,我们定义一个 setting() 函数,用它来设置画布和画笔.setting() 函数的代码如下所示. de ...

最新文章

  1. 数学建模学习笔记——相关性分析
  2. 非标自动化企业前十名_非标设备的现状
  3. java:LocalDate计算两个日期之间的天数
  4. pythonalert弹窗_python+selenium八:Alert弹窗
  5. SAP Spartacus默认的货币列表currency是从源代码什么地方读取的
  6. JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
  7. 怎么能避免浏览器请求超时_浏览器请求服务器超时
  8. 关于WEB前端开发的工具
  9. Spring配置redis(自定义方法)
  10. scala中的协变和逆变
  11. 编程基本功:一个任务的难度是不是适合自己,有没有产出,心里要有数
  12. 高中计算机技术教材,广西科学技术出版高中信息技术教材第一册《计算机硬件组成》...
  13. Android 吸顶布局的写法
  14. 无心剑英译秦观《鹊桥仙》
  15. PMbok 全书串讲
  16. Photoshop学习(十六):使用矢量蒙版
  17. 伙伴系统之避免碎片--Linux内存管理(十六)
  18. Python 金融量化 RSI相对强弱指标
  19. 400分理科学计算机,400分左右的理科大学 高考400分能上什么学校
  20. scilab和matlab的区别,matlab PK scilab

热门文章

  1. 一篇文章教你如何写数学建模的论文
  2. 那一抹夕阳好耀眼,却遮不住你的柔情(极品小青蛙)
  3. 雨林木风GhostXPSP3 YN20.0[NTFS]
  4. 异步插件协议的MIME过滤器
  5. STM8L的EEPROM读写原理及例程
  6. 毕设-基于SpringBoot房屋租赁系统
  7. 阿里云盘小白羊版:一款支持满速上传下载的阿里云盘
  8. 联想E430不能从u盘启动【解决办法】
  9. 旺店通·企业奇门与金蝶云星空对接集成查询盘点单打通其他入库新增
  10. 80C51常用头文件