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

python3d旋转

python matplotlib 实现3d旋转.

img

img

img

img


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

  • 写回答

3条回答 默认 最新

  • Ko-walski 2022-11-03 04: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月3日
  • 创建了问题 11月3日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部