本文介绍VPython在屏幕显示状态提示信息和跟随模型显示信息的方法。
label对象
实现信息显示使用label对象,详细内容如下链接:
https://www.glowscript.org/docs/VPythonDocs/label.html
label对象的参数定义如下图:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnL1I2MkNTOlZmZwMDM4QDO4QTO4QzY2YTNkRTMkV2M5Y2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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
状态提示信息显示如下图:
跟随模型显示信息
定义跟随模型的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提示标签