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()

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章