Как построить плоскость, параллельную как оси X, так и оси Z с Python? - PullRequest
1 голос
/ 14 октября 2019

Я пытаюсь построить плоскость, параллельную как оси x, так и оси z (плоскость xz).

Этот код

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

point  = np.array([1, 2, 3])
normal = np.array([1, 1, 2])

# a plane is a*x+b*y+c*z+d=0
# [a,b,c] is the normal. Thus, we have to calculate
# d and we're set
d = -point.dot(normal)

# create x,y
xx, yy = np.meshgrid(range(10), range(10))

# calculate corresponding z
z = (-normal[0] * xx - normal[1] * yy - d) * 1. /normal[2]

# plot the surface
plt3d = plt.figure().gca(projection='3d')
plt3d.plot_surface(xx, yy, z)
plt.show()

означает построение аналогичной плоскости.

, чтобы иметь плоскость, параллельную плоскости xz, параметры a и c в a*x+b*y+c*z+d=0 должны быть равны 0.

, когда я устанавливаю normal = np.array([0, 2, 0]), самолет исчез.

Как это исправить?

1 Ответ

0 голосов
/ 14 октября 2019

В вашем коде вы делите на 0 при расчете z. Вы можете попробовать это:

plt3d = plt.figure().gca(projection='3d')
xx, zz = np.meshgrid(range(10), range(10))
yy = 2 
plt3d.plot_surface(xx, yy, zz)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...