【问题标题】:How to create and connect functions to vpython button?如何创建函数并将其连接到 vpython 按钮?
【发布时间】:2021-10-30 06:35:55
【问题描述】:

我将创建一个 GUI 界面,通过将质量 (m) 和刚度 (k) 作为用户的输入值来计算时间段。我曾尝试在 Glowscript 中创建界面,但在绑定函数以计算按钮时,会创建错误说:t is not defined。我没有进一步计算时间段并在屏幕上打印的方法。请帮我解决这个问题。

scene.width = 750
scene.height = 530
scene.range = 1.1
#scene.title = "SpringMass System\n\n"
scene.background = vector(0.9,0.9,0.9)
scene.align = "right"

    
scene.caption = "<b>Effect of Stiffness on Time Period  </b>\n\n\n"
#button(text="Pause", pos=scene.title_anchor,color=color.white,background=vec(0,0,0.6), bind=Run)
Mass=box(pos=vector(0,-1,0),velocity=vector(0,0,0),size=vector(1.27,1,1.2),color=vec(0,0,0.4),mass=1.0)
pivot=vector(0,4,0)
spring=helix(pos=pivot, axis=Mass.pos-pivot, radius=0.4, constant=1, thickness=0.1, coils=15, color=color.red)
wall=box(pos=pivot,size=vector(3,0.2,3),color=color.green)

以下是我遇到错误的部分

   # mass input
def m(x):
 print (x.number)
m=winput(bind=m,width=130, prompt=" Enter mass(m):       ",type="numeric")
wtext(text=" kg")
scene.append_to_caption('\n\n\n')

#Stiffness input
def k(y):
 print (y.number)
k=winput(bind=k,width=130,prompt=" Enter Stiffness(k):   ",type="numeric")
wtext(text=" N/m")
scene.append_to_caption('\n\n')


#Calculate TimePeriod   
def calculate(t):
 T=2*3.14/(sqrt(y/x))
 return T
scene.append_to_caption('\nTime Period = '+t.number+'\n')  


button(bind=calculate ,text ="<b>  Calculate  </b>",color=color.white,background=color.blue)

【问题讨论】:

    标签: python spring function button vpython


    【解决方案1】:

    您的函数“calculate(t)”对局部变量 t 没有任何作用,在您执行 scene.append_to_caption('\nTime Period = '+t.number+'\ n'),所以在执行这条语句时确实没有定义 t。

    我们鼓励人们在 VPython 或 GlowScript 用户论坛而不是 Stackoverflow 上发帖,因为 VPython 论坛中有更多知识渊博的用户,您会得到更快的响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      相关资源
      最近更新 更多