Python3使用turtle绘制超立方体图形示例

青禾
青禾
发布时间:2026-10-13| 3人浏览过
原创

本文介绍利用Python3的turtle库绘制超立方体图形的方法。通过计算边长为100的超立方体顶点坐标,将点分为上下两组,分别绘制六角形、竖直直线及斜线。文章提供完整代码片段及运行结果,并附带Eclipse+pyDev环境下的常见警告说明,供Python初学者参考。

本示例演示了如何在Python3中利用turtle模块绘制超立方体图形,旨在为读者提供实用的参考代码。

具体实现基于Python3内置的turtle库,用于生成超立方体的视觉图形。

绘图逻辑主要包含以下步骤:

首先,计算边长为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]]

随后,定义用于绘制直线的辅助函数;

最后,编写主程序逻辑:依次执行顶点绘制、六角形边框绘制、垂直连接线绘制以及斜向连接线绘制;

以下代码片段展示了具体实现,代码可能并非最优解,欢迎提出改进建议。

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

程序运行后的图形输出如下:

 

注意:若在Eclipse结合pyDev插件及Python3环境中开发,可能会遇到“Undefined variable from import: penup”或“Undefined variable from import: goto”等导入变量未定义的警告提示,这些提示不影响程序执行,直接运行即可正常绘制图形。

如需了解更多Python相关知识,可参考本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。

希望本文提供的代码与说明能对读者的Python编程实践有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。