Построение сплошной революции в Python 3 (возможно, matplotlib)

Приветствую проблему:

R – область в плоскости xy, ограниченная параболой y = x ^ 2 + 1 и линией y = x + 3. Твердое тело вращения образуется путем вращения R вокруг оси x. Мне нужно построить параболу и линию в 2D и сплошной революции 3D, как это сделать? Я установил anaconda.

One Solution collect form web for “Построение сплошной революции в Python 3 (возможно, matplotlib)”

Вы можете использовать plot_surface :

 import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.mplot3d.axes3d as axes3d fig = plt.figure() ax = fig.add_subplot(1, 1, 1, projection='3d') u = np.linspace(-1, 2, 60) v = np.linspace(0, 2*np.pi, 60) U, V = np.meshgrid(u, v) X = U Y1 = (U**2 + 1)*np.cos(V) Z1 = (U**2 + 1)*np.sin(V) Y2 = (U + 3)*np.cos(V) Z2 = (U + 3)*np.sin(V) ax.plot_surface(X, Y1, Z1, alpha=0.3, color='red', rstride=6, cstride=12) ax.plot_surface(X, Y2, Z2, alpha=0.3, color='blue', rstride=6, cstride=12) plt.show() 

введите описание изображения здесь

Для построения поверхности с использованием plot_surface вы начинаете с определения двух одномерных параметров u и v :

 u = np.linspace(-1, 2, 60) v = np.linspace(0, 2*np.pi, 60) 

такие, что x , y , z являются функциями параметров u и v :

 x = x(u, v) y = y(u, v) z = z(u, v) 

То, что следует заметить в ax.plot_surface состоит в том, что его первые три аргумента должны быть двумерными массивами. Поэтому мы используем np.meshgrid для создания координатных матриц ( U и V ) из векторов координат ( u и v ) и определяем двумерные массивы X , Y , Z как функции U и V :

 X = U Y1 = (U**2 + 1)*np.cos(V) Z1 = (U**2 + 1)*np.sin(V) 

Для каждого места на координатных матрицах U и V имеется соответствующее значение для X и Y и Z Это создает карту из двумерного uv пространства в трехмерное xyz пространство. Для каждого прямоугольника в uv пространстве на нашей поверхности есть грань в xyz пространстве. Изогнутая поверхность, нарисованная поверхностью plot_surface , состоит из этих плоских граней.

Python - лучший язык программирования в мире.