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实现带验证码网站的自动登陆实现代码
Jan 12 Python
python中argparse模块用法实例详解
Jun 03 Python
Python3实现Web网页图片下载
Jan 28 Python
分分钟入门python语言
Mar 20 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
python正则表达式之对号入座篇
Jul 24 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
Python数据分析之绘图和可视化详解
Jun 02 Python
详解python的异常捕获
Mar 03 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python中字符串对齐方法介绍
2015/05/21 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
学校消防安全制度
2014/01/30 职场文书
校运会入场式解说词
2014/02/10 职场文书
三万活动总结
2014/04/28 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS