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实现将n个点均匀地分布在球面上的方法
Mar 12 Python
python opencv之分水岭算法示例
Feb 24 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
详解Django中间件的5种自定义方法
Jul 26 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Python txt文件如何转换成字典
Nov 03 Python
pandas抽取行列数据的几种方法
Dec 13 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python实现FTP循环上传文件
2020/03/20 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
美国老牌主机服务商:iPage
2016/07/22 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
会议邀请书范文
2014/02/02 职场文书
勤俭节约倡议书
2014/04/14 职场文书
设计顾问服务计划书
2014/05/04 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
骨干教师事迹材料
2014/12/17 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js