天天看点

VPython三维仿真(NO.7)label显示信息label对象状态提示信息跟随模型显示信息

本文介绍VPython在屏幕显示状态提示信息和跟随模型显示信息的方法。

label对象

实现信息显示使用label对象,详细内容如下链接:

https://www.glowscript.org/docs/VPythonDocs/label.html

label对象的参数定义如下图:

VPython三维仿真(NO.7)label显示信息label对象状态提示信息跟随模型显示信息

pixel_pos:True为屏幕坐标,False为世界坐标

pos:屏幕坐标或世界坐标

height:字高度,默认15像素

box:是否画环绕字的边框,True有边框,False无边框

border:字与边框距离,默认5像素

line:是否画pos到字的连线,True有连线,False无连线

space:环绕pos的球体半径,在该球体中不画字到pos的连线

color:字颜色

background:背景颜色

opacity:box透明度,0完全透明,1不透明,默认0.66

linecolor:连线颜色

linewidth:连线宽度,默认1像素

状态提示信息

状态提示信息在画面左上角显示,用于提示软件运行状态和部分数据,可以显示静态文本和动态数据。

label 对象创建如下:

tiptext='初始化'
tip=label(pixel_pos=True,pos=vec(15,470,0),text=tiptext,xoffset=0,
          yoffset=0,space=0,height=20,border=0,box=False,font='sans',
          align='left',opacity=0)
           

更新状态提示信息方法如下:

global tiptext #global使函数中可使用全局变量
#画坐标系
tiptext+='\n创建坐标轴'
tip.text=tiptext
#生成飞机
tiptext+='\n创建飞机模型'
tip.text=tiptext
#飞机飞行
tiptext+='\n启动动画'
tip.text=tiptext
           

状态提示信息显示如下图:

VPython三维仿真(NO.7)label显示信息label对象状态提示信息跟随模型显示信息

跟随模型显示信息

定义跟随模型的label和text全局变量,pixel_pos=False才能使label在世界坐标中跟随模型移动

ModelTipText=''
ModelTip=label(pixel_pos=False,text='123',xoffset=30,yoffset=40,
               line=True, background=vec(0.5,0.5,0),space=3,
               height=20,border=2,box=True,font='sans',
               align='center',opacity=0.5)
           

以下为更新飞机模型位置信息的代码。

#清空文本
ModelTipText=''
#组织飞机位置信息
ModelTipText='x:'+str(int(target.pos.x))
ModelTipText+='\ny:'+str(int(target.pos.y))
ModelTipText+='\nz:'+str(int(target.pos.z))
#label对象跟随模型移动
ModelTip.pos=target.pos
#更新label显示文本
ModelTip.text=ModelTipText
           

以上完成后的场景显示如以下视频,三维场景中关闭了画面跟随模型移动的代码。

label提示标签