用 Python 一个参数画出完整的圆锥曲线可视化

发布时间:2026/11/12 22:34:29

用 Python 一个参数画出完整的圆锥曲线可视化 用 Python 一个参数画出完整的圆锥曲线可视化【免费下载链接】Book3_Elements-of-MathematicsBook_3_《数学要素》 | 鸢尾花书从加减乘除到机器学习上架欢迎继续纠错纠错多的同学还会有赠书项目地址: https://gitcode.com/GitHub_Trending/bo/Book3_Elements-of-Mathematics改一个数字屏幕上的椭圆瞬间变扁、开口、裂成双曲线——这是开源项目 Book3_Elements-of-Mathematics《数学要素》第 3 册鸢尾花书里你能直接体验到的圆锥曲线可视化。哪怕你从没用 Python 画过图、没碰过 Streamlit半小时也能亲手画出并操控椭圆、抛物线、双曲线前提是你会跑pip install。一个参数定三种曲线这一节解决记不住三种曲线公式的问题只需盯住一个数就能说出曲线长什么样。这个数叫离心率 eEccentricity。大白话讲它是曲线的变形仪表盘0 是最圆的状态越接近 1 越扁跨过 1 之后闭合的曲线直接炸开成两条腿张开的形状。e 0圆椭圆最圆的特例0 e 1椭圆e 1抛物线e 1双曲线课本里通常先讲平面斜着切圆锥的几何定义一句话带过即可真正干活的是代数式。椭圆有一个标准方程长这样$$x^2/a^2 y^2/b^2 1$$其中 a 是横向半径b 是纵向半径b 相对 a 缩得越狠椭圆越扁对应的离心率 $e \sqrt{1 - b^2/a^2}$ 就越接近 1。项目的 《圆锥曲线》章节Ch08 讲透了每种曲线的几何性质想深入推导的话《深入圆锥曲线》章节Ch09 有完整的推导过程。三行核心代码画出圆锥曲线族这一节解决从哪敲起的问题一段最小可运行代码跑完屏幕上就铺满 31 条曲线从圆到双曲线排成一队。第一次运行前装好两个库pip install numpy matplotlib。完整代码在仓库的Book3_Ch09_Python_Codes/目录可直接打开 Bk3_Ch09_01.ipynb 对照。下面这段是它的精简版逻辑完全一致先搭好网格、列好离心率清单再循环画线一共就三步import numpy as np import matplotlib.pyplot as plt # 网格x、y 各取 201 个点覆盖 -4 到 4 x np.linspace(-4, 4, num201) y np.linspace(-4, 4, num201) xx, yy np.meshgrid(x, y) # 31 个离心率从 0 到 3正好覆盖圆、椭圆、抛物线、双曲线 e_array np.linspace(0, 3, num31) fig, ax plt.subplots(figsize(8, 8)) colors plt.cm.RdYlBu(np.linspace(0, 1, len(e_array))) # 每条曲线配一个渐变色 for i, e in enumerate(e_array): # 同一个隐函数只改 e曲线就变了 f yy**2 - (e**2 - 1) * xx**2 - 2 * xx # f 0 的点集就是曲线让 contour 把零点连成线 ax.contour(xx, yy, f, levels[0], colors[colors[i]]) ax.axhline(0, colork, linewidth0.5) # 两条坐标轴 ax.axvline(0, colork, linewidth0.5) ax.set_aspect(equal) # 横纵同比例椭圆不会被压扁 plt.show()跑完你会看到左半屏挤着一族套娃般的椭圆e1 附近出现一条向右开口的抛物线e 继续变大曲线分叉成对称的双曲线颜色由红渐蓝标记 e 的走向。注意方程里没有任何 if 分支——三种曲线共用同一个式子区别只在 e。滑块实时控制曲线形变这一节解决图是死的没法把玩的问题给页面加一个滑块鼠标一拖曲线跟着变。一个最小的 Streamlit 应用骨架就四步用st.set_page_config设置页面标题放一个控制离心率 e 的滑块按当前滑块值算出网格上的隐函数画等高线并用st.pyplot显示页面自动重跑刷新import streamlit as st import numpy as np import matplotlib.pyplot as plt st.set_page_config(page_title圆锥曲线交互可视化, layoutwide) # 核心只有一个滑块控制离心率 e st.slider(离心率 e, min_value0.0, max_value3.0, value0.5, step0.1) x np.linspace(-4, 4, num201) y np.linspace(-4, 4, num201) xx, yy np.meshgrid(x, y) f yy**2 - (e**2 - 1) * xx**2 - 2 * xx fig, ax plt.subplots(figsize(8, 8)) ax.contour(xx, yy, f, levels[0], colors[b]) ax.set_aspect(equal) ax.axhline(0, colork, linewidth0.5) ax.axvline(0, colork, linewidth0.5) st.pyplot(fig) # 滑块一动整页重跑图形立刻刷新 if e 1: st.write(f当前 e {e:.2f}这是一条椭圆) elif e 1: st.write(当前 e 1正好是抛物线) else: st.write(f当前 e {e:.2f}这是一条双曲线)用streamlit run 上面这个文件.py启动后体感是e 从 0 往上拖椭圆一圈比一圈扁拖到 1 时曲线噗地开口变成抛物线再往下拖就劈成两条分支下方的文字判断和数值同步刷新。想参考更完整的成品项目里的 Streamlit_Bk3_Ch09_03.py 用了 m、n、rho 三个滑块能同时画出椭圆、它的外接矩形和四个顶点。为什么能这样画不做推导三段话看懂原理。第一段等高线为什么就是曲线。我们不把方程解成 y f(x)而是写成一个隐函数 f(x, y)曲线就是让 f 恰好等于 0的所有点。电脑在网格上每个点都算一遍 fcontour的工作只是把 f0 的点连成线——就像地形图把海拔相同的点连成等高线这里连的是函数值恰好为零的点。第二段还有一派画法叫参数方程描点。椭圆可以写成 x a·cos t、y b·sin t让角度 t 从 0 转到 2π吐出一串 (x, y) 坐标按顺序连线即可类似儿童画本里的连点成画。第三段为什么交互起来这么容易。曲线完全由少数几个参数决定滑块改的只是 e 这一个数参数变了 → 隐函数重算 → 等高线重画。三步全是几行代码的事所以拖动即变形的体验不需要任何黑科技。圆锥曲线出现在哪里画会了顺便看看它在工作里露面的地方 SVM 决策边界核函数把数据映射到高维后分界平面投影回原空间形状常常是圆锥曲线马氏距离异常检测马氏距离一种考虑了数据拉伸方向的距离的等值线天然是椭圆画几圈同心椭圆就是正常区域的围栏二维高斯分布概率密度等高线是一族同心椭圆鸢尾花书里的热力图里随处可见收获与下一步最后清点一下这半小时你带走了什么三种圆锥曲线不用分三门记离心率 e 一个数小于 1、等于 1、大于 1 分别对应椭圆、抛物线、双曲线隐函数 ax.contour这套等高线画曲线的套路可以原样搬到其他曲线族上Streamlit 滑块让任何静态图变成演示工具核心代码不超过五行仓库Book3_Ch09_Python_Codes/目录里有更多示例README.md 能帮你定位整本书的脉络想继续动手的话两个现成的方向 把圆锥曲线换成极坐标方程再画一遍对比两种坐标系下同一个形状的差别在图上标出焦点、画一条准线验证到焦点的距离 e × 到准线的距离这个定义在屏幕上是怎么成立的【免费下载链接】Book3_Elements-of-MathematicsBook_3_《数学要素》 | 鸢尾花书从加减乘除到机器学习上架欢迎继续纠错纠错多的同学还会有赠书项目地址: https://gitcode.com/GitHub_Trending/bo/Book3_Elements-of-Mathematics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/12 22:34:26

DXGI_SWAP_CHAIN_DESC完全解析:从交换链原理到D3D11实践

1. 交换链到底在解决什么问题1.1 从一帧画面到屏幕的旅程很多刚开始学DirectX的朋友,第一次被一堆结构体砸晕的时候,往往不是Shader编译报错,而是连窗口上都画不出一个三角形。等你去查代码,发现十有八九卡在交换链这一关。DXGI_S…

2026/11/8 19:37:47

优启通PE启动盘制作与故障修复全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/9 18:53:53

Spring Boot养老护理小程序开发实践与优化

1. 项目背景与需求分析养老护理小程序作为智慧养老领域的重要载体,正在改变传统养老服务模式。这个JAVA框架开发的项目聚焦老人服务模块,旨在通过移动互联网技术解决老年群体日常生活中的核心痛点。我去年参与过某社区养老平台的开发,深刻体会…

2026/11/12 22:30:39

延边电工证怎么考多久拿证实操考试心里没底怕挂科

延边电工证怎么考多久拿证实操考试心里没底怕挂科 实操考试心里没底怕挂科,这几乎是每个准备考电工证的学员的真实写照。尤其是在延边地区,电工证作为进入建筑、电力、维修等相关行业的重要门槛,很多人在报名前都会担心, 多久拿证…

2026/11/12 22:30:39

低庒电工证怎么查询 证书含金量高吗

低庒电工证怎么查询 证书含金量高吗 你是不是也担心自己学历不高,怕报不了电工证?别急,今天我就来告诉你, 低庒电工证怎么查询 ,以及这本证到底有没有 含金量…

2026/11/12 22:30:39

电工证要报培训学校吗?工地太忙根本没时间复习考试

电工证要报培训学校吗?工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你是不是也正为电工证的事情发愁?尤其是现在, 电子证书 的推行让很多人对报考流程和培训机构有了更多疑问。你可能想知道, 电工证要报培训学校吗…

2026/11/12 22:30:39

初级电工证报考流程官方回应来了,别再被中介骗了

初级电工证报考流程官方回应来了,别再被中介骗了 不知道去哪报名怕被中介坑?最近我收到好几个信阳应届工程类毕业生的咨询,都是问初级电工证报考流程,还担心被培训机构坑了钱拿不到证。其实这事一点都不难,关键是要找到靠谱的官方信息。比如…

2026/11/12 22:25:38

林芝市电工证培训机构考前押题怎么选才靠谱

林芝市电工证培训机构考前押题怎么选才靠谱 怕考不过白交培训费?选对林芝市电工证培训机构和考前押题资料,直接决定你能不能一次拿证。现在市面上培训机构良莠不齐,不少人花了钱却连考试都过不了,白白浪费时间、精力和钱。本文从三门峡初次报考人员的视角…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑