绘制动图,金星木星月亮太阳绕圆

news/2024/7/21 5:50:12 标签: python, 自动化, 前端, 青少年编程, 图像处理

图💫

input绘制 行星 木星 太阳 地球 金星💫 地球 月亮各自旋转 1年 角度 360.gif

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import math
import os

# 设置中文字体
font_style = '宋体'
plt.rcParams['font.family'] = font_style
plt.rcParams['axes.unicode_minus'] = False

# 设置英文字体
english_fonts = []

font_directory = '/storage/emulated/0/文件/字体大全/'

for root, dirs, files in os.walk(font_directory):
    for file in files:
        if file.endswith('.ttf') or file.endswith('.otf'):
            font_path = os.path.join(root, file)
            try:
                with open(font_path, 'rb') as f:
                    font_data = f.read()
                    if b'english' in font_data.lower():
                        english_fonts.append(font_path)
            except Exception as e:
                pass

if len(english_fonts) > 0:
    # 使用第一个可用英语字体
    plt.rcParams['font.sans-serif'] = os.path.splitext(os.path.basename(english_fonts[0]))[0]
else:
    print('No English fonts available')

def update_points(num, data, line):
    line.set_data(data[..., :num])
    return line,


fig, ax = plt.subplots()

theta = np.linspace(0, 2*np.pi, 100)
a = 1
b = 2
x = a * np.cos(theta)
y = b * np.sin(theta)

data = np.array([x, y])

l, = plt.plot([], [], 'r--')
plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('行星运动轨迹')

line_ani = animation.FuncAnimation(fig, update_points, 100, fargs=(data, l),
                                   interval=50, blit=True)

# 保存为gif动画
filepath = '/storage/emulated/0/qpython/planet.gif'
line_ani.save(filepath, writer='imagemagick')

print(f'动画已保存至 {filepath}')


http://www.niftyadmin.cn/n/5062568.html

相关文章

【算法挨揍日记】day09——35. 搜索插入位置、69. x 的平方根

35. 搜索插入位置 35. 搜索插入位置 题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 解题思…

C++项目使用pytest自动化测试

C项目使用pytest自动化测试 pytest是python语言的自动化测试框架,在C项目中也可以使用其对模块或接口上进行测试,弥补googletest的不足之处。 1. pytest的主要优点 按照一定的顺序和规则去执行测试用例,并生成结果统计测试进度&#xff0c…

C++ 并发编程实战 第八章 设计并发代码 二

目录 8.3 设计数据结构以提升多线程程序的性能 8.3.1 针对复杂操作的数据划分 8.3.2 其他数据结构的访问模式 8.4 设计并发代码时要额外考虑的因素 8.4.1 并行算法代码中的异常安全 8.4.2 可扩展性和Amdahl定律 8.4.3 利用多线程隐藏等待行为 8.4.4 借并发特性改进响应…

asp.net core mvc区域路由

ASP.NET Core 区域路由(Area Routing)是一种将应用程序中的路由划分为多个区域的方式,类似于 MVC 的控制器和视图的区域划分。区域路由可以帮助开发人员更好地组织应用程序的代码和路由,并使其更易于维护。 要使用区域路由&#…

redis runtime error: invalid memory address or nil pointer dereference

var Conn redis.Connfunc RedisInit(){Conn, err redis.Dial("tcp", "127.0.0.1:6379")if err ! nil {fmt.Println("redis.Dial err", err)return}fmt.Println("conn suc.11..", Conn)//defer Conn.Close()看看这两段代码的区别 而且…

shell脚本之环境变量

文章目录 常见系统的环境变量用户定义的环境变量 常见系统的环境变量 常见的环境变量: 1)$HOME 当前用户的家目录路径。 2)$UID和$EUID 当前用户的用户ID和有效用户ID。 3)$PPID 当前进程的父进程的进程ID。 4)$P…

洛谷P5732 【深基5.习7】杨辉三角题解

目录 题目【深基5.习7】杨辉三角题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1传送门 代码解释亲测 题目 【深基5.习7】杨辉三角 题目描述 给出 n ( n ≤ 20 ) n(n\le20) n(n≤20),输出杨辉三角的前 n n n 行。 如果你不知道什么是杨辉三角&#xf…

【初识Linux】:背景介绍以及环境搭建

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux的基础知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…