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通过poll实现异步IO的方法
Jun 04 Python
详解Python的Lambda函数与排序
Oct 25 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
Pandas 同元素多列去重的实例
Jul 03 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
python使用rpc框架gRPC的方法
Aug 24 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
Python爬取12306车次信息代码详解
Aug 12 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 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
php minixml详解
2008/07/19 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
Ajax的工作原理
2015/12/04 面试题
管理站站长岗位职责
2013/11/27 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
体育运动口号
2014/06/09 职场文书
教师节倡议书
2014/08/30 职场文书
超市开店计划书
2014/09/15 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers