【问题标题】:Projecting a Curve in 3D Space在 3D 空间中投影曲线
【发布时间】:2017-04-10 12:16:55
【问题描述】:

我正在使用三个向量 X、Y 和 Z 在 3D 空间中绘制曲线。

如何将曲线投影到平面 XOY、XOZ、YOZ 上?

import matplotlib.pylab as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = [4, 2, 7, 4]
Y = [7, 4, 9, 6]
Z = [9, 6, 10, 3]
ax.plot(X, Y, Z, 'b-', linewidth=4, label='parametric curve')
plt.show()

【问题讨论】:

    标签: python matplotlib 3d projection


    【解决方案1】:

    由于您只是在 3D 空间中绘制点(这意味着即使您将其称为参数,但您的曲线不是参数),您只需将相应的维度设置为零即可获得“投影”。

    例如,要在 XoY 平面上绘图,您可以忽略 Z 组件并使用

    zeros = [0,0,0,0]
    plt.plot(X,Y,zeros)
    

    总的来说,这看起来像

    import matplotlib.pylab as plt
    from mpl_toolkits.mplot3d.axes3d import Axes3D
    fig = plt.figure()
    ax = Axes3D(fig)
    X = [4, 2, 7, 4]
    Y = [7, 4, 9, 6]
    Z = [9, 6, 10, 3]
    ax.plot(X, Y, Z, 'b-', linewidth=4, label='curve')
    
    null = [0]*len(Z)
    ax.plot(null, Y, Z)
    ax.plot(X,null, Z)
    ax.plot(X, Y, null)
    
    plt.show()
    

    【讨论】:

    • 非常感谢!!
    猜你喜欢
    • 2021-01-15
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2013-11-09
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多