Python 绘制圆锥体(3D图)

您所在的位置:网站首页 如何用ps画圆锥体图形 Python 绘制圆锥体(3D图)

Python 绘制圆锥体(3D图)

2024-07-04 01:35| 来源: 网络整理| 查看: 265

Python 绘制圆锥体(3D图)

圆锥体是几何中简单而漂亮的图形,Python具有强大的作图功能,但最近在试着用Python作图,发现很少文章介绍如何使用Python画圆锥体。 Python作图的大部分文档都是介绍2D作图,介绍3D作图,大部分是使用meshgrid函数生成方形范围的数据,然后调用Axes3D的函数就完成了,这种做法的确简单有效,但遇到圆锥体、圆柱体这类3D图形,则往往束手无策。 圆锥体几何图形很简单,用Matlab画圆锥体只要5行代码:

使用Matlab绘制圆锥的立体图(Cone’s graph)

那么Python是否具备这种功能?答案是肯定的。 关键是提供合适的数据给Axes3D的函数。以底面在上,顶点在原点,半径和高度均为1的圆锥体为例(这个例子相对简单易懂),圆锥体面上的每个点,其高度正好是该点在平面上到中心原点的距离,而平面上每个点则是圆形上的一个点。圆形当然不能用方形表示,但用极坐标表示则很简单,所以可以定义极坐标,为每个点的x,y生成相应数据,并根据x,y计算出z的值。 详细代码和结果图如下。

# -*- coding: utf-8 -*- #每天给自己一个希望,试着不为明天而烦恼,不为昨天而叹息,只为今天更美好! import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D # 简单方法画出漂亮的圆锥体(底面在上,顶点在原点) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 生成圆锥数据,底面半径为1,高度为1,其余的情形留待发挥 # 先根据极坐标方式生成数据 u = np.linspace(0, 2 * np.pi, 50) #linspace的功能用来创建等差数列 v = np.linspace(0, np.pi, 50) # 数据转化为平面坐标数据 x = np.outer(np.cos(u), np.sin(v)) # outer(a,b) 外积:a的每个元素乘以b的每个元素,二维数组 y = np.outer(np.sin(u), np.sin(v)) z = np.sqrt(x**2+y**2) #圆锥体的高 # Plot the surface ax.plot_surface(x, y, z, cmap=plt.get_cmap('rainbow')) plt.show()

结果图形如下所示,太漂亮了! 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3