质量为10kg的物体,在F=60N的水平向右的拉力作用下,由静止开始运动,设物体与水平面之间的摩擦因数为0.4,取g=10m/s^2
我的想法:想设计一个动画是一个木块在坐标上运动,然后输入相关数据,就可以在坐标图上看到木块的运动

质量为10kg的物体,在F=60N的水平向右的拉力作用下,由静止开始运动,设物体与水平面之间的摩擦因数为0.4,取g=10m/s^2
我的想法:想设计一个动画是一个木块在坐标上运动,然后输入相关数据,就可以在坐标图上看到木块的运动

关注wxgl似乎最适合此类需求了。我随手画了一个桌面和一个六面体,再写一个滑动函数,点击播放,就可以仿真这个试验了。
十分钟玩转3D绘图:WxGL完全手册(第二版)
WxGL是一个基于PyOpenGL的三维数据绘图工具包,以wx为显示后端,提供Matplotlib风格的应用方式。WxGL也可以和wxPython无缝结合,在wx的窗体上绘制三维模型。WxGL提供了一套简洁易用、对用户友好的API,将OpenGL的复杂概念全部封装起来,使得用户可以更加专注于数据的处理,而无需在3D显示方面分散精力。WxGL还提供了着色器语言接口,允许用户定制着色器,以应对特殊的应用需求。
https://xufive.blog.csdn.net/article/details/122905101?spm=1001.2014.3001.5502


import wxgl.glplot as glt
import wxgl
def move(t):
"""六面体移动函数,t为以毫秒为单位的时间"""
t %= 2000
a = (60 - 10*10*0.4)/10 # 移动加速度
s = 0.5 * a * pow((t/1000),2)
return ((s,0,0),)
vs_table = [[-2,0,-1],[-2,0,1],[2,0,1],[2,0,-1]] # 桌面四角的坐标
glt.quad(vs_table, color=(0.8,0.6,0.2), light=wxgl.BaseLight()) # 绘制桌面
glt.cube((-1.8,0.1,0), 0.2, color=(0,1,1), transform=move) # 绘制六面体
glt.yrange((-0.2,1)) # 设置高度轴范围
glt.show() #显示