本文介紹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提示标簽