我正在尝试绘制一个与x轴和z轴(xz平面)都平行的平面。

这个code

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*x+b*y+c*z+d=0中的参数a和c必须为0。

当我设置normal = np.array([0, 2, 0])时,飞机消失了。

如何解决?

最佳答案

在您的代码中,计算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()

关于python - 如何使用python绘制平行于x轴和z轴的平面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58370985/

10-11 19:29