Python 绘制圆柱体(3D图)

Python 绘制圆柱体(3D图)

不知道为何,介绍用Python画3D图形,很少提到圆锥体、圆柱体。或者是有些工具可以直接画出吧。
在上一篇文章中解决了圆锥体的问题(见下链接),现在把圆柱体问题也一并解决下,这个问题困扰了好几天,因为圆柱体本身看上去不像是一个曲面问题。

Python 绘制圆锥体(3D图)

其实,明白几何作图原理的话,圆柱体并不很难。圆柱体其实是一个圆,或者说是N多个圆,每个圆对应的高度不同。这句话可能不是很好理解,但仔细想想也不是很难。
画圆是一件很简单的事情,x是角度的sin值,y是角度的cos值,高度划分为多少份,就要把圆重复多少次。代码也不多,只有五行,代码和结果图如下。

# -*- coding: utf-8 -*-
#哪有什么可以直接登顶的人生,只有根据反馈不断迭代的过程! 

import matplotlib.pyplot as plt 
import numpy as np 
from mpl_toolkits.mplot3d import Axes3D

# 简单方法画出漂亮的圆柱体(半径和高度均为1)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
 
# 生成圆柱数据,底面半径为r,高度为h。
# 先根据极坐标方式生成数据
u = np.linspace(0,2*np.pi,50)  # 把圆分按角度为50等分
h = np.linspace(0,1,20)        # 把高度1均分为20份
x = np.outer(np.sin(u),np.ones(len(h)))  # x值重复20次
y = np.outer(np.cos(u),np.ones(len(h)))  # y值重复20次
z = np.outer(np.ones(len(u)),h)   # x,y 对应的高度

# Plot the surface
ax.plot_surface(x, y, z, cmap=plt.get_cmap('rainbow'))
 
plt.show()

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

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二粒米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值