проблемы с графикой 3D-объектов - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в программировании и пытаюсь научиться строить сложные трехмерные структуры. Я пытаюсь кодировать программу, которая принимает пользовательский ввод и отображает сферу. Оболочка выводит несколько предупреждений в моем коде, а затем отображает график со случайными кривыми. Предупреждения, которые я получаю:

1.sphere.py:23: RuntimeWarning: invalid value encountered in sqrt
  return -1*(np.sqrt((r*r) - ((x-a)*(x-a))- ((y-b)*(y-b)))) + c
2.sphere.py:39: UserWarning: Z contains NaN values. This may result in rendering artifacts.
  ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='ocean_r', edgecolor='black')

Есть ли обходной путь для предупреждений, которые я получаю, и как мне получить мои значения в графическом виде? Вот что у меня есть:

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

fig = plt.figure()
ax = plt.axes(projection="3d")

a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
r = float(input("r: "))
print ("center: %s,%s,%s " % (a,b,c))
print ("")
enter = input("press enter to graph")

def z(x, y):
    return np.sqrt((r*r) - ((x-a)*(x-a))- ((y-b)*(y-b))) + c

x = np.linspace(-50, 50,100 )
y = np.linspace(-50, 50,100)
X, Y = np.meshgrid(x, y)
Z = z(X, Y)

ax.plot_wireframe(X, Y, Z, color = "")
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='ocean_r', edgecolor='black')
ax.set_title('sphere');
plt.show()

А вот изображение примера графика со всеми 4 входами, установленными в 1: enter image description here

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