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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python基于二分查找实现求整数平方根的方法
May 12 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
python random从集合中随机选择元素的方法
Jan 23 Python
python对验证码降噪的实现示例代码
Nov 12 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Jupyter加载文件的实现方法
Apr 14 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
python 逐步回归算法
Apr 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
通过源码解析Laravel的依赖注入
2018/01/22 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Django实现表单验证
2018/09/08 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python基础教程之while循环
2019/08/14 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
python内打印变量之%和f的实例
2020/02/19 Python
用 Python 制作地球仪的方法
2020/04/24 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python如何将字符串转换为日期
2020/07/31 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
小学六年级学生评语
2014/04/22 职场文书
城管大队整治方案
2014/05/06 职场文书
学校搬迁方案
2014/06/15 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
公司人事管理制度
2015/08/05 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python