在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python GUI开发 → 3D旋转彩球

3D旋转彩球

Python GUI开发

下载此实例
  • 开发语言:Python
  • 实例大小:31.34M
  • 下载次数:2
  • 浏览次数:11
  • 发布时间:2025-08-19
  • 实例类别:Python GUI开发
  • 发 布 人:NewIdeas
  • 文件格式:.zip
  • 所需积分:10
 相关标签: 彩球 旋转 3d

实例介绍

【实例简介】使用python库,开发的一个自动旋转3D彩球
【实例截图】from clipboard
【核心代码】
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.animation import FuncAnimation
import matplotlib.cm as cm

# 创建图形和3D坐标轴
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, projection='3d')

# 设置坐标轴范围
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
ax.set_zlim(-1.5, 1.5)
ax.set_box_aspect([1, 1, 1])  # 保持球体比例
ax.set_title("3D 球体 - 自动旋转 变色", fontsize=16)

# 生成球体参数
u = np.linspace(0, 2 * np.pi, 30)  # 经度
v = np.linspace(0, np.pi, 30)      # 纬度
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones(np.size(u)), np.cos(v))

# 初始颜色(使用极角 v 作为颜色映射)
color_values = np.outer(np.ones(np.size(u)), v)  # 按纬度着色

# 绘制球面
surf = ax.plot_surface(x, y, z, facecolors=cm.viridis(color_values), rstride=1, cstride=1, alpha=0.9)

# 移除坐标轴标签
ax.set_axis_off()

# 动画更新函数
angle = [0]  # 使用列表以便在闭包中修改

def update(frame):
    global angle
    ax.clear()
    ax.set_xlim(-1.5, 1.5)
    ax.set_ylim(-1.5, 1.5)
    ax.set_zlim(-1.5, 1.5)
    ax.set_box_aspect([1, 1, 1])
    ax.set_title("3D 球体 - 自动旋转 变色", fontsize=16)
    ax.set_axis_off()

    # 旋转:绕 z 轴旋转
    theta = np.radians(angle[0])
    x_rot = x * np.cos(theta) - y * np.sin(theta)
    y_rot = x * np.sin(theta) y * np.cos(theta)
    z_rot = z

    # 动态颜色:随帧数变化(使用 colormap)
    color_shift = (color_values frame * 0.1) % 2
    surf = ax.plot_surface(x_rot, y_rot, z_rot, facecolors=cm.plasma(color_shift),
                           rstride=1, cstride=1, alpha=0.9, shade=True)
    angle[0] = 2  # 每帧旋转2度
    return surf,

# 创建动画
ani = FuncAnimation(fig, update, frames=200, interval=50, blit=False, repeat=True)

plt.tight_layout()
plt.show()

标签: 彩球 旋转 3d

实例下载地址

3D旋转彩球

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警