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 的描述符 descriptor详解
Feb 27 Python
Python打包可执行文件的方法详解
Sep 19 Python
Python列表切片用法示例
Apr 19 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
Python 如何调试程序崩溃错误
Aug 03 Python
python调用win32接口进行截图的示例
Nov 11 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 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伪静态的实现详细介绍
2013/04/28 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
利用json获取字符出现次数的代码
2012/03/22 Javascript
JS定时器实例
2013/04/17 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
JavaScript接口实现方法实例分析
2020/05/16 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
在Python中关于中文编码问题的处理建议
2015/04/08 Python
Python CSV模块使用实例
2015/04/09 Python
Python中pygame安装方法图文详解
2015/11/11 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
打印机墨盒:123Inkjets
2017/02/16 全球购物
什么是serialVersionUID
2016/03/04 面试题
英语专业毕业生自我鉴定
2013/11/09 职场文书
警示教育活动总结
2014/05/05 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
浅析Python OpenCV三种滤镜效果
2022/04/11 Python
在python中读取和写入CSV文件详情
2022/06/28 Python