Python3使用turtle绘制超立方体图形示例


Posted in Python onJune 19, 2018

本文实例讲述了Python3使用turtle绘制超立方体图形。分享给大家供大家参考,具体如下:

利用Python3中turtle的绘制超立方体。

Python3使用turtle绘制超立方体图形示例

绘图思路:

1)求出边长100的超立方体的点坐标;

以竖直线为依据,将点分为上下两组:

a为上边点列表,b为下边点列表:

a = [[120.71, 50], [50, 120.71], [-50, 120.71], [-120.71, 50], [-50, -20.71], [50, -20.71], [20.71, 50],[-20.71, 50]]
b = [[120.71, -50], [50, 20.71], [-50, 20.71], [-120.71, -50], [-50, -120.71], [50, -120.71], [20.71, -50],[-20.71, -50]]

2)编写绘制直线函数;

3)编写主程序:绘制点,绘制六角形直线,绘制竖直直线,绘制斜线

代码片段如下,可能不是最简洁的,如有好的建议,请不吝指正。

import turtle
# 创建绘制直线函数
def drawLine(p1, p2, size=3, color="black"):
 turtle.penup()
 turtle.goto(p1)
 turtle.pensize(size)
 turtle.pencolor(color)
 turtle.pendown()
 turtle.goto(p2)
def main():
 # 求取点后,将超立方体点分为上下两个部分,两个列表
 a = [[120.71, 50], [50, 120.71], [-50, 120.71], [-120.71, 50], [-50, -20.71], [50, -20.71], [20.71, 50],
   [-20.71, 50]]
 b = [[120.71, -50], [50, 20.71], [-50, 20.71], [-120.71, -50], [-50, -120.71], [50, -120.71], [20.71, -50],
   [-20.71, -50]]
 # 绘制点
 turtle.pencolor("red")
 turtle.penup()
 for i in range(len(a)):
  turtle.goto(a[i])
  turtle.down()
  turtle.dot(10, "red")
  turtle.penup()
 for i in range(len(b)):
  turtle.goto(b[i])
  turtle.down()
  turtle.dot(10, "red")
  turtle.penup()
 # 绘制六边形直线
 for i in range(6):
  if i <= 4:
   drawLine(a[i], a[i + 1])
   drawLine(b[i], b[i + 1])
  else:
   drawLine(a[i], a[0])
   drawLine(b[i], b[0])
 # 绘制竖直线
 for i in range(len(a)):
  drawLine(a[i], b[i])
 # 绘制斜线
 drawLine(a[6], a[0])
 drawLine(a[6], a[2])
 drawLine(a[6], a[4])
 drawLine(a[7], a[1])
 drawLine(a[7], a[3])
 drawLine(a[7], a[5])
 drawLine(b[6], b[0])
 drawLine(b[6], b[2])
 drawLine(b[6], b[4])
 drawLine(b[7], b[1])
 drawLine(b[7], b[3])
 drawLine(b[7], b[5])
 turtle.done()
if __name__ == '__main__':
 main()
 pass

运行结果:

 Python3使用turtle绘制超立方体图形示例

注:使用eclipse+pyDev结合Python3环境开发时,会提示:Undefined variable from import: penupUndefined variable from import: goto等错误,无需理会直接运行仍可绘制出该图形。

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python单元测试框架unittest简明使用实例
Apr 13 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
Python常用编译器原理及特点解析
Mar 23 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
python热力图实现简单方法
Jan 29 Python
python反扒机制的5种解决方法
Feb 06 Python
python3使用SMTP发送HTML格式邮件
Jun 19 #Python
python3.X 抓取火车票信息【修正版】
Jun 19 #Python
python3使用SMTP发送简单文本邮件
Jun 19 #Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 #Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 #Python
python爬虫实例详解
Jun 19 #Python
Python实现的NN神经网络算法完整示例
Jun 19 #Python
You might like
Ajax PHP分页演示
2007/01/02 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
php实现算术验证码功能
2018/12/05 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
django做form表单的数据验证过程详解
2019/07/26 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Python之字典添加元素的几种方法
2020/09/30 Python
python logging模块的使用详解
2020/10/23 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
干部现实表现材料
2014/02/13 职场文书
座谈会主持词
2014/03/20 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL