文章目录

  • 案例介绍
  • 准备工作
  • 细节设计
  • 代码汇总
  • 运行结果
  • 后记

案例介绍

今天我们用 Python 来绘制一个薯片。类似下图样式:


说是一个薯片,在数学上,这种曲面其实称作双曲抛物面,形状类似于马鞍。

在XOZ坐标平面上构造一条开口向上的抛物线,然后在YOZ坐标平面上构造一条开口向下的抛物线(两条抛物线的顶端是重合于一点上);然后让第一条抛物线顺着另一条抛物线上滑动,便形成了马鞍面。坐标原点为马鞍面的鞍点。

准备工作

  • matplotlib 库
  • numpy 库
  • mpl_toolkits 库。

细节设计

代码设计的关键是如何构造马鞍面的函数解析式:z=x2/a2-y2/b2

代码汇总

# coding: utf-8
# !/usr/bin/python
"""
@File       :   画一个薯片.py
@Author     :   jiaming
@Modify Time:   2020/5/10 13:52
@Contact    :   https://jiaming.blog.csdn.net/
@微信公众号答疑:  codenough
@Desciption :   None
"""
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()
ax = fig.gca(projection='3d')n_radii = 100 # 平滑度
n_angles = 20 # 鞍部半径radii = np.linspace(0.125, 1.0, n_radii) # np.linspace 在指定的间隔内返回均匀间隔的数字。
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1) # 扩充数组x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
z = (np.power(y, 2) / 6) - (np.power(x, 2) / 4) # 构造函数解析式ax.plot_trisurf(x, y, z, linewidth=0.2, cmap=cm.jet, antialiased=True)plt.show()

运行结果

后记

数学真是一个奇妙的工具,生活中常吃的薯片竟然也有对应的数学表达式。

【案例】绘制一个薯片?相关推荐

  1. python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...

    使用 turtle 模块,常规的结束语句 ==> turtle.done()/turtle.mainloop() 示例代码如下: # -*- coding: UTF-8 -*- "&q ...

  2. 30行Python代码来绘制一个微信图标

    有一句至理名言说得好"Python除了不会生孩子,什么都能干"(当然这句话还有很多版本,比如MATLAB.Excel......),而今天小编就再次证明一下这个观点--用Pytho ...

  3. android canvas 画按钮,Android 用Canvas轻松绘制一个时钟

    接下来这篇文章主要是结束如何轻松自定义一个View并使用Canvas绘制一个时钟的案例,话不多说先上图瞅瞅,一共实现了两种效果,一种是秒动(秒针一秒走一针).另一种是连动式的,秒针不会停会一直走动,话 ...

  4. css3绘制环形_利用CSS简单地绘制一个操场

    前言 伴随着 CSS3(CSS Module 3)的发布,我们设计网页时有了更多的选择.对于一些比较简单的小图标和图片,我们可以利用 CSS3 很方便的进行绘制,从而减少页面的图片数量和HTTP请求次 ...

  5. css绘制一个Pinia小菠萝

    效果如下: pinia小菠萝分为头部和身体,头部三片叶子,菠萝为身体 头部 先绘制头部的盒子,将三片叶子至于头部盒子中 先绘制中间的叶子,利用border-radius实现叶子的效果,可以借助工具来快 ...

  6. python绘制一个时间的七段数码管实例基本的七段数码管绘制

    基本的七段数码管绘制 绘制一个时间的七段数码管 基本思路 步骤一:绘制单个数字对应的数码管 步骤二:获得一串数字,绘制对应的数码管 步骤三:获得当前系统时间,绘制对应的数码管 数码管的基本构造 七段数 ...

  7. 使用canvas绘制一个动态的表盘

    使用canvas绘制一个动态的表盘 技术要求 需要一点点数学基础 需要对 canvas 的常见的方法熟悉 一点点数学基础 角度转弧度的计算公式 canvas 常见的方法 菜鸟教程 扬帆起航 首先创建一 ...

  8. c语言+easyX 使用easyx 绘制一个哆啦A梦的头像

    C语言easyx库绘图 使用easyx 绘制一个哆啦A梦的头像 第一步:分析 第二步骤: 创建画布 第三步骤:绘制头部 第四步:绘制眼睛 第五步:绘制眼珠子 第六步:绘制 高光 第七步:鼻子 第八步: ...

  9. python微信图标制作_30行Python代码来绘制一个微信图标

    有一句至理名言说得好"Python除了不会生孩子,什么都能干"(当然这句话还有很多版本,比如MATLAB.Excel......),而今天小编就再次证明一下这个观点--用Pytho ...

最新文章

  1. Android平台利用OpenCL框架实现并行开发初试
  2. zw版【转发·台湾nvp系列Delphi例程】HALCON RegionToBin1
  3. java map赋值给model_Map,Model,ModelMap使用方法
  4. 简历的正确发音和习惯用法
  5. boost::function模块实现contains的测试程序
  6. 不裁员也好意思叫互联网公司?
  7. 中断linux命令快捷键_实用!快速操作Linux终端命令行的快捷键
  8. ES6新语法--解构赋值
  9. 【超强、超详细Redis入门教程】
  10. excel wind插件使用_这些超实用的Excel插件,你要是都知道,确定老司机无疑了
  11. android刷机教程 华为,华为Mate20X 刷机教程 华为Mate20X 强刷升级教程
  12. 深度学习之facenet人脸识别网络介绍
  13. 计算机组成原理指令存储器,《计算机组成原理》实验报告——指令存储、数据存储器...
  14. CodeForces 417D Cunning Gena 状压dp
  15. 俄亥俄州立大学计算机专业排名,俄亥俄州立大学CS专业排名2020年
  16. Oracle---查询
  17. 承德医学院计算机信息,研究生院 信息发布
  18. Linux常见命令 24 - RPM命名管理-包命名与依赖性
  19. uniapp 提供的手指事件
  20. 计算机在化学化工中的应用ppt绪论,化工原理_01概述全解课件.ppt

热门文章

  1. 用了超融合,数据安全这事就放心吧!
  2. 洛谷题单【数据结构1-4】图的基本应用
  3. 【MATLAB】基于MATLAB实现灯光定位
  4. 孙鑫VC++LESSON1:Windows程序内部运行原理
  5. 操作系统实验--进程的创建撤销和控制
  6. 基于计算机视觉原理的自主足球机器人位置计算
  7. 西门子精智和精简面板区别_西门子精智面板6AV2124-0QC02-0AX1详细概述
  8. flask写接口文件打包成exe
  9. VW 80000-2021版,最新发行,(3.5 吨以下汽车电气和电子部件试验项目标,试验条件和试验要求),大众标准
  10. A Survey on Deep Learning for Neuroimaging-based Brain Disorder Analysis阅读笔记