关于椭圆的方程(有Python画的动图)

关于椭圆的方程(有Python画的动图)

flyfish
在这里插入图片描述

几何定义

椭圆是平面上所有到两个固定点(焦点)的距离之和为常数的点的集合。这两个固定点叫做焦点。

解析几何描述

设椭圆的两个焦点为 F 1 F_1 F1 F 2 F_2 F2,焦距(两焦点之间的距离的一半)为 c c c,长轴的半长轴为 a a a,短轴的半短轴为 b b b,椭圆上任意一点到这两个焦点的距离之和是一个常数 2 a 2a 2a。如果椭圆的中心在原点,长轴平行于 x x x 轴,则椭圆的标准方程为: x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1如果长轴平行于 y y y 轴,只需交换 a a a b b b 的位置: x 2 b 2 + y 2 a 2 = 1 \frac{x^2}{b^2} + \frac{y^2}{a^2} = 1 b2x2+a2y2=1

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation, PillowWriterdef plot_ellipse_with_moving_point(a, b, num_frames=100, interval=50):# 椭圆方程参数theta = np.linspace(0, 2 * np.pi, num_frames)x = a * np.cos(theta)y = b * np.sin(theta)# 焦点位置c = np.sqrt(a**2 - b**2)F1 = (-c, 0)F2 = (c, 0)# 创建图形fig, ax = plt.subplots(figsize=(8, 6))ax.plot(x, y, label=f'Ellipse: $\\frac{{x^2}}{{{a}^2}} + \\frac{{y^2}}{{{b}^2}} = 1$')ax.scatter(*F1, color='red')ax.scatter(*F2, color='red')ax.text(F1[0], F1[1], 'F1', fontsize=12, ha='right')ax.text(F2[0], F2[1], 'F2', fontsize=12, ha='left')ax.axhline(0, color='black', linewidth=0.5)ax.axvline(0, color='black', linewidth=0.5)ax.grid(color='gray', linestyle='--', linewidth=0.5)ax.set_aspect('equal', adjustable='box')ax.set_title('Ellipse with Moving Point')ax.set_xlabel('x')ax.set_ylabel('y')ax.legend()# 初始化点 P 和连接线point, = ax.plot([], [], 'bo')line1, = ax.plot([], [], 'gray', linestyle='dotted')line2, = ax.plot([], [], 'gray', linestyle='dotted')# 初始化函数def init():point.set_data([], [])line1.set_data([], [])line2.set_data([], [])return point, line1, line2# 更新函数def update(frame):P = (a * np.cos(theta[frame]), b * np.sin(theta[frame]))point.set_data([P[0]], [P[1]])line1.set_data([F1[0], P[0]], [F1[1], P[1]])line2.set_data([F2[0], P[0]], [F2[1], P[1]])return point, line1, line2# 创建动画ani = FuncAnimation(fig, update, frames=num_frames, init_func=init, interval=interval, blit=True)# 保存动画ani.save('ellipse_with_moving_point.gif', writer=PillowWriter(fps=20))plt.show()# 参数
a = 5
b = 3
plot_ellipse_with_moving_point(a, b)

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

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

相关文章

【高等数学】傅里叶级数

最近刷了会抖音,看到一个非常有趣的现象:傅里叶级数,今天挑了几个视频来供大家学习。 1.傅里叶级数概念 【小崔说数】傅里叶级数专题https://www.bilibili.com/video/BV1Uq4y1q7xk?t117.4 2.傅里叶级数动画 【谜之舒适】12分钟的傅立叶级…

【docker】Dockerfile制作基础镜像 python 底层镜像制作 | 打包所有的requirement依赖

一、Dockerfile思想 我们正常的对一个项目进行打包 docker image 通常是在CI工具编译时进行对依赖的安装,比如golang的go get、python的pip install、node的npm install 等等 好处:我们更新了依赖可以动态的再编译时进行一个对依赖的更新 坏处&#xf…

转速传感器频率信号整形方波输出隔离变送器 地线干扰抑制 200mV~10V/0-12V/0-24V转0-5v/0-12v/0-24v/集电极输出

特点 转速传感器信号直接输入,方波信号输出正弦波、锯齿波信号输入,方波信号输出200mV峰值微弱信号的放大与整形不改变原波形频率,响应速度快电源、信号:输入/输出 3000VDC三隔离辅助电源:5V、12V、15V或24V直流单电源…

在4面体空间内2点结构占比

有一个4面体状空间,由3层甲烷状分子堆积而成,单个甲烷4面体边长10. 内有30个点,在30个点中取2点,有30*29/2435种取法。这里要求两个点的距离必须为6.123 在435个结构中只有40个符合要求 序数 结构 序数 结构 3 1 282 3 7…

如何进行海外网络加速?告别卡顿与访问慢的方法

你是否经常在打开海外网站浏览网页时遇到响应缓慢的问题?或者在进行国际网络会议时,由于网络延迟影响与客户的交流?亦或是由于网络问题,导致OA、ERP、云储存等应用频繁因为数据包丢失而中断下载?如果你经常遇到这些问题…

centos7 离线安装zip和unzip

解压的时候发现不能解压,报-bash: unzip: command not found 1、访问https://www.rpmfind.net/linux/rpm2html/search.php?queryzip&submitSearch…&systemcentos&arch#/ 2、输入zip和centos搜索,选择el7下载 3、输入unzip和centos搜索&am…

显卡nvidia的CUDA和cuDNN的安装

显卡版本,和nvidia下载的 CUDA版本和CUDNN的关系 1. 显卡版本 nvidia-smi 硬件环境:显卡版本 4090 NVIDIA-SMI-555.85 我的驱动是510.85.02,驱动附带cuda12.5 2. nvidia下载的cuda版本 nvcc -V 我下载的是cuda12.5 cuda在安装版本过程…

互联网技术基础-计算机人必看

目录 1.Internet的工作原理 1、Internet是一个分组交换系统 2、路由器是Internet实现互连的“标准件” 3、TCP/IP是Internet的核心协议 4、客户机/服务器的工作模式 2. IP地址 2.1 IP地址分类 2.2特殊IP地址 2.3路由器和IP编制原则 2.4子网的划分 2.5 IPV6 3.域名系…

【因果推断python】46_估计量2

目录 连续型干预变量案例 非线性处理效果 关键思想 连续型干预变量案例 目标转换方法的另一个明显缺点是它仅适用于离散或二元处理。这是你在因果推理文献中经常看到的东西。大多数研究都是针对二元干预案例进行的,但您找不到很多关于连续干预的研究。这让我很困…

Bytebase 对接本地部署的 llama3 开启ChatSQL功能

Bytebase 是为开发人员、测试、DBA和运维工程师构建的数据库 DevOps 领域的,类 GitLab/GitHub 平台。 这篇文章主要关注 Bytebase SQL 编辑器中的 AI 增强功能。使用此功能您可以使用自然语言在 Bytebase SQL 编辑器中查询数据库。同时还能给出针对查询的索引建议&…

RK3568技术笔记十四 Ubuntu创建共享文件夹

单击“虚拟机”,单击“设置”,如图所示: 单击“选项”,选择“总是启用(E)”,单击“添加”,如图所示: 单击“下一步”,如图所示: 单击“浏览”添加…

Ranger配置图片及json文件预览

文章目录 前言下载apt下载pip下载 配置使用json文件预览方法一 修改scope用cat预览方法二 安装jq预览配置ranger 图片文件预览方法一 使用img2txt预览方法二 使用fim预览配置ranger 总结 前言 本文主要讲解Ranger12如何配置json及图片的预览设置,如下是ranger的介绍…

Spring AI 整合openAI的chatGpt

Spring AI支持ChatGPT,这是OpenAI的AI语言模型。ChatGPT在激发人们对人工智能驱动文本生成的兴趣方面发挥了重要作用。 SpringAi与Spring Boot 的整合详见上一篇文章: Spring AI 介绍以及与 Spring Boot 项目整合 下面分四个部分来分别说明和演示&#…

简单分享github

一、官网 GitHub: Let’s build from here GitHub 二、注册 通过简单的注册步骤,你就可以拥有一个属于自己的GitHub账号。再简单注册完成之后会需要验证你所输入的邮箱才能正常使用你的GitHub。 三、设置自己的库 在注册完成之后,完成一些简单的设置之…

简单且高效的水域物探轨迹坐标转换程序

简单且高效的水域物探轨迹坐标转换程序 前言 水上测线的高精度定位是水域物探的难题,水域磁法、水域地震实施时常采用船舶拖拽传感器进行走航式观测,GPS仪器放在船舶上测量,造成船舶位置与传感器位置存在偏差,后期资料整理需要校…

互联网应用主流框架整合之Spring Boot基本概念

Spring Boot是用来简化Spring应用程序的搭建、开发、测试和部署过程的,该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置,SpringBoot致力于快速应用开发(Rapid Application Development)领域的发展,它通过…

RTSP/Onvif安防监控平台EasyNVR抓包命令tcpdump使用不了的解决方法

安防视频监控汇聚EasyNVR智能安防视频监控平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。平台可提供的视频能力包括:…

vscode插件开发之 - TestController

TesController概要介绍 TestController 组件是用于实现自定义测试框架和集成测试结果的。它允许开发者定义自己的测试运行器,以支持在VSCode中运行和展示测试。以下是一些使用 TestController 组件的主要场景: 自定义测试框架:如果你正在开发…

C++语法19 循环嵌套结构(for/while循环)

语法阶段已经更新到第18章了,前面的知识你都学会了吗?如果还没有学习前面的知识,请点击👉语法专栏进行学习哦! 目录 循环嵌套 训练:数字矩形 解析 参考代码 训练:星号三角形 解析 参考代码 …

Scikit-Learn梯度提升决策树(GBDT)

Scikit-Learn梯度提升决策树 1、梯度提升决策树(GBDT)1.1、Boosting方法1.2、GBDT的原理1.3、GBDT回归的损失函数1.4、梯度下降与梯度提升1.5、随机森林与GBDT1.6、GBDT的优缺点2、Scikit-Learn梯度提升决策树(GBDT)2.1、Scikit-Learn GBDT回归2.1.1、Scikit-Learn GBDT回归…