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匹配中文的正则表达式
May 11 Python
python实现kmp算法的实例代码
Apr 03 Python
python 设置输出图像的像素大小方法
Jul 04 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
关于python中remove的一些坑小结
Jan 04 Python
用Python爬虫破解滑动验证码的案例解析
May 06 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python中requests库的用法详解
Jun 05 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中的一个中文字符串截取函数
2007/02/14 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP 微信支付类 demo
2015/11/30 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
jquery 问答知识整理
2010/02/11 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python flask框架post接口调用示例
2019/07/03 Python
dpn网络的pytorch实现方式
2020/01/14 Python
深入理解Python 多线程
2020/06/16 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
8种常用的Python工具
2020/08/05 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
顶撞领导检讨书
2014/01/29 职场文书
高中军训感言800字
2014/03/05 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
单位同意报考证明
2015/06/17 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
php实现自动生成验证码的实例讲解
2021/11/17 PHP
各种货币符号快捷输入
2022/02/17 杂记
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang