Построение Гиперболоида - PullRequest
2 голосов
/ 09 ноября 2011

Учитель в классе дал эту формулу

w = x**2 + y**2 - z**2

и показал свою трехмерную графику в классе, показанном ниже. Как мне построить это, используя Matplotlib (минус пересекающуюся плоскость)? Я предполагаю, что сначала нужно выбрать конкретное значение для w, например, 10, в противном случае трехмерное построение было бы невозможно. Тогда я должен преобразовать в полярные координаты из-за z ** 2 в формуле? Я попробовал это и потерпел неудачу. Любая помощь будет оценена. Кроме того, у этой формы есть имя?

enter image description here

1 Ответ

1 голос
/ 09 ноября 2011

Понял. Нашел здесь хорошие вещи, и, следуя представленным формулам, у меня есть код Python ниже.

http://msenux.redwoods.edu/Math4Textbook/Plotting/ParametricSurfaces.pdf

from __future__ import division

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

fig = plt.figure(figsize=plt.figaspect(1))  # Square figure
ax = fig.add_subplot(111, projection='3d')

r=1;
u=np.linspace(-2,2,200);
v=np.linspace(0,2*np.pi,60);
[u,v]=np.meshgrid(u,v);

a = 1
b = 1
c = 1

x = a*np.cosh(u)*np.cos(v)
y = b*np.cosh(u)*np.sin(v)
z = c*np.sinh(u)

ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='b')

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...