Создание сферы в Python
Такой вопрос: как смоделировать сферу в Python с указанными пользователем центром и радиусом?
Сейчас есть что-то вроде этого:
import matplotlib as mtl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, projection = '3d')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 5 * np.outer(np.cos(u), np.sin(v))
y = 5 * np.outer(np.sin(u), np.sin(v))
z = 5 * np.outer(np.ones(np.size(u)), np.cos(v))
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
plt.show()
Ответы (1 шт):
Автор решения: Павел Золотарев
→ Ссылка
Для изменения радиуса изменяйте число перед np.outer(), а для изменения центра добавьте нужные координаты центра после np.outer().
x = 1 * np.outer(np.cos(u), np.sin(v)) + 1
y = 1 * np.outer(np.sin(u), np.sin(v)) + 1
z = 1 * np.outer(np.ones(np.size(u)), np.cos(v)) + 2
Таким образом у вас получится сфера с радиусом 1, и центром с координатами x = 1 , y = 1, z = 2.