天天看點

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提示标簽