python绘制月亮

news2024/11/24 18:40:24

在这里插入图片描述

import matplotlib
import matplotlib.pyplot as plt
import moviepy.editor as mpy

matplotlib.rcParams['font.family'] = 'SimHei'


# 坐标列表
positions = [
    (0, 0), (1 / 4, 1 / 4), (1 / 3, 1 / 4), (1 / 2, 1 / 4), (2 / 3, 1 / 4),
    (3 / 4, 1 / 4), (1, 1 / 4), (5 / 4, 1 / 4), (4 / 3, 1 / 4), (3 / 2, 1 / 4), (2, 0)
]

# 设置圆的半径
radius = 1

# 要添加的文本
text = "人有悲欢离合\n月有阴晴圆缺\n此事古难全\n但愿人长久\n千里共婵娟"

# 生成每一帧并保存为图像
for index, position in enumerate(positions):
    fig, ax = plt.subplots()

    # 画第二个圆(中心在(2, 0))
    circle2 = plt.Circle((2 * radius, 0), radius, color='#E1E19A', fill=True)
    ax.add_artist(circle2)

    # 画第一个圆(根据位置变化)
    circle1 = plt.Circle(position, radius, color='white', fill=True)
    ax.add_artist(circle1)

    # 设置图形的范围
    ax.set_xlim(-1, 3)
    ax.set_ylim(-1, 1)
    ax.set_aspect('equal')  # 保持圆形比例
    ax.axis('off')  # 隐藏坐标轴

    # 添加文本
    ax.text(-0.8, 0.5, text, fontsize=12, ha='left', va='center', color='black', wrap=True)

    # 保存当前帧为 PNG 文件
    plt.savefig(f'frame_{index:03d}.png', bbox_inches='tight', pad_inches=0)
    plt.close(fig)  # 关闭图形以释放内存

# 将生成的帧制作成视频
clips = []
for i in range(len(positions)):
    clip = mpy.ImageClip(f'frame_{i:03d}.png').set_duration(0.1)  # 每帧持续0.1秒
    clips.append(clip)

# 合并所有帧
video = mpy.concatenate_videoclips(clips, method='compose')
video.write_gif("circle_animation1.gif", fps=10)
video.write_videofile("circle_animation_with_text1.mp4", fps=10)  # 保存为 MP4 文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++中的容器——vector

1. vector的介绍 vector:vector的底层实际上就是一个数组(也称为顺序表),数据是连续存储在数组中的,因此vector是可以使用下标来进行访问的,但是它的大小并不是像数组一样是固定的,而是可以动态…

漳州自闭症寄宿学校,孩子的快乐学习乐园

在温暖而包容的南方都市——广州,藏着一所特别的学校,它以爱为名,为自闭症儿童编织了一个充满希望的未来,这就是星贝育园自闭症儿童寄宿制学校。这里,不仅是知识的殿堂,更是孩子们心灵得以自由飞翔、快乐学…

削峰+限流:秒杀场景下的高并发写请求解决方案

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽,大家好!我是小米,一个29岁、活泼积极、热衷分享技术的码农。今天和大家聊一聊应对高并发的写请求这个主题,尤其是在大促、秒杀这种场景下,系统…

【Docker Nexus3】maven 私库

1.部署环境 window 11 x64Docker Desktop 4.34.1 (166053) Docker Engine v27.2.0 1.1.Docker 镜像源 1.1.1.Docker Engine 配置 {"builder": {"features": {"buildkit": true},"gc": {"defaultKeepStorage": "32…

微服务_入门2

文章目录 一、Feign二、Gateway服务网关 一、Feign 来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一(url需要自己在代码中拼写出来)参数复杂URL难以维护&#xff0…

Weapons Armor PBR Pack 1 - Fantasy RPG 武器护甲游戏模型

武器和护甲包#1有30个武器和护甲,每个对象都有默认外观,大多数都有网格变形和Substance Painter源文件,用于自定义纹理。 无限PBR&我的哲学 Infinity PBR是十几位艺术家的作品,他们都在做自己最擅长的事情。我想为独立游戏开发者制作最通用、最优质的资产,按照我希望的…

鸿蒙开发之ArkUI 界面篇 四

文字溢出处理、省略号、文字太长的处理用textOverflow,语法格式是: Text.textOverflow({ overflow: TextOverflow; }) 尤其注意,单独的这个设置没有效果,需要和maxLines一起使用才有效果 Text("男频男频男频男频男频男频男…

好代码网同款wordpress主题,完全开源无加密可二开

这个其实就是好代码网站的早期整站打包代码,当时售价198的,现在里面的部分数据已经过期了,只能展示效果,没法下载。所以就只当做主题分享给大家使用。 资源下载类网站目前还是红利期,搞个特价主机和域名,再…

代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 题目题目一:647. 回文子串解题思路:暴力解法动态规划 题目二: 516.最长回文子序列解题思路: 动态规划总结动规五部曲基础概念常见问题类型 动态规划…

算法设计与分析(循环赛日程表

目录 循环赛日程表算法介绍代码实现注意事项 小结: 循环赛日程表 在组织和安排体育赛事时,循环赛日程表的编制是一项重要且复杂的任务。循环赛,即每个参赛队伍都要与其他所有队伍进行一场比赛,确保比赛的公平性和所有队伍之间的平…

Linux下的CAN通讯

CAN总线 CAN总线简介 CAN&#xff08;Controller Area Network&#xff09;总线是一种多主从式 <font color red>异步半双工串行 </font> 通信总线&#xff0c;它最早由Bosch公司开发&#xff0c;用于汽车电子系统。CAN总线具有以下特点&#xff1a; 多主从式&a…

JAVA基础面试题总结(十五)——设计模式

面试专题-设计模式 前言 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff0c;第一个是我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;&#xff0c;第二个是我们自己开发业务使用的设计模式。 面试官一般比较关心的是你在开发过程中&#…

面向对象程序设计(C++)———多态

1.认识多态 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)主要就是我们…

一分钟掌握 Excel VBA 技巧,轻松批量生成工资条,提高工作效率!

可能大家忽视了一点&#xff0c;Excel是我们日常办公中使用最多的工具&#xff0c;所以&#xff0c;学好Excel并加以运用&#xff0c;一定能提升你的工作效率&#xff0c;比如Excel VBA可以用代码实现自动化办公&#xff0c;下面举一个Excel VBA批量生成工资条的办公小案例。 …

swagger新玩法 - 让你API接口开发原地起飞

作为Java后台接口开发人员&#xff0c;无论对对接方是前端还是第三方&#xff0c;很多时候我们在文档和代码两头都需要费心&#xff0c;而做到自动的同步将会非常省心。本教程将带你领略下如何借助swagger官方提供的新玩法&#xff0c;让你的API接口开发原地起飞&#xff0c;甚…

34.贪心算法1

0.贪心算法 1.柠檬水找零&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0;for (int x : bills) {if (x 5) // 5 元&#xff1a;直接收下…

4. Python之运算符

一. Python运算符 常用的运算符有&#xff1a;算述运算符&#xff0c;赋值运算符&#xff0c;比较运算述&#xff0c;逻辑运算符&#xff0c;位运算符等等。 1. 算述运算符 用于处理四则运算的符号&#xff0c;主要有&#xff1a; 运算符描述加法-减法*乘法/除法//整除%取余…

嵌入式DCMI摄像头功能调试方法

STM32F407芯片带有DCMI接口,在我们的核心板上已经将接口用18PIN的FPC座子引出。 这个接口可以接我们的OV2640接口。 本节我们开始调试摄像头。 16.1. DCMI DCMI接口是ST自己定义的接口。 Digital camera interface (DCMI),是意法半导体公司产品STM32F4xx系列芯片的快速摄像头…

【JavaEE初阶】多线程(5 单例模式 \ 阻塞队列)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 实例1: 单例模式 饿汉模式 懒汉模式 实例2:阻塞队列 生产者消费者模型 优点 ​编辑 代价 简单实现一个生产者消费者模型 Java标准库中的阻塞队列 ​编辑 模拟实现一…

面试官问:你如何看待加班?

面试官问&#xff1a;你如何看待加班&#xff1f; 面试官问&#xff1a;你如何看待加班&#xff1f;这类问题是比较常见的&#xff0c;出现频率相当高。有些同学看到这样的问题&#xff0c;就会断定这家公司估计是经常加班的&#xff0c;绝对的不能去&#xff01;&#xff01;…