weixin_51573847 2022-11-03 11:15 采纳率: 77.3%
浏览 72
已结题

python3d旋转

python matplotlib 实现3d旋转.

img

img

img

img


总共四步,第一步目前是对的,但是不知道如何实现之后的步骤,代码的需求在注释中.

  • 写回答

3条回答 默认 最新

  • Ko-walski 2022-11-03 12:35
    关注
    import numpy as np
    from matplotlib import pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    from math import sin, cos, pi
    import matplotlib.cm as cm
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    
    #creating grid
    y = np.linspace(-1,1,200)
    x = np.linspace(-1,1,200)
    x,y = np.meshgrid(x,y)
    
    #set z values
    z0 = x**2+y**2
    
    # rotate the samples by pi / 4 radians around y
    a = pi / 4
    t = np.transpose(np.array([x,y,z0]), (1,2,0))
    m = [[cos(a), 0, sin(a)],[0,1,0],[-sin(a), 0, cos(a)]]
    x,y,z = np.transpose(np.dot(t, m), (2,0,1))
    # or `np.dot(t, m)` instead `t @ m`
    
    
    #label axes
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.set_zlabel('z')
    
    #plot figure
    ax.plot_surface(x,y,z,linewidth=0, antialiased=False, shade = True, alpha = 0.5, facecolors=cm.viridis(z0))
    
    plt.show()
    
    

    参考一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月4日
  • 创建了问题 11月3日