随笔 - 373  文章 - 1  评论 - 771  阅读 - 137万

数学图形之椭圆抛物面

上一节讲的是双曲抛物面,这节讲与之类似的椭圆抛物面.

抛物面是二次曲面的一种。抛物面有两种:椭圆抛物面双曲抛物面

椭圆抛物面在笛卡儿坐标系中的方程为:


z = \frac{x^2}{a^2} + \frac{y^2}{b^2}.

双曲抛物面在笛卡儿坐标系中的方程为:


z = \frac{x^2}{a^2} - \frac{y^2}{b^2}.

本文将展示几种生成椭圆抛物面算法和切图.使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815

(1)参数方程

复制代码
#http://www.mathcurve.com/surfaces/alysseid/alysseid.shtml

vertices = D1:100 D2:100

v = from 0 to (PI*2) D1
u = from 0 to 5 D2

a = 2.0

x = u*cos(v)
y = 10 - pow(u, a)
z = u*sin(v)
复制代码

(2)普通方程

vertices = dimension1:101 dimension2:101
x = from (-100) to (100) dimension1
z = from (-100) to (100) dimension2
y = (20000 - x^2 - z^2)*0.005

u = x/10
v = z/10

(3)椭圆

复制代码
vertices = D1:100 D2:100
u = from 0 to (2*PI) D1
v = from 0 to 5 D2
a = rand2(1, 10)
b = rand2(1, 10)

x = v*a*cos(u)
y = v*v/2
z = v*b*sin(u)
复制代码

(4)将抛物线绕中轴旋转生成的椭圆抛物面

复制代码
vertices = D1:512 D2:100
u = from 0 to 5 D1
v = from 0 to (2*PI) D2

a = rand2(-1, 1)

x = u*cos(v)
y = a*(u*u - 25)
z = u*sin(v)

v = v*2
复制代码

 

posted on   叶飞影  阅读(12629)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示