1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
"""Use a flagpost object to visualize some property interactively"""
from vedo import ParametricShape, Plotter, precision
def func(evt): ### called every time mouse moves!
if not evt.object:
return # mouse hits nothing, return.
pt = evt.picked3d # 3d coords of point under mouse
txt = f"Position: {precision(pt[:2],2)}\n" \
f"Speed : {precision(evt.speed3d*100,2)} km/h"
flagpost.text(txt).pos(pt) # update text and position
plt.render()
hil = ParametricShape('RandomHills').cmap('terrain')
flagpost = hil.flagpost(offset=(0,0,0.25))
plt = Plotter(axes=1, bg2='yellow9', size=(1150, 750))
plt.add_callback('mouse move', func) # add the callback function
plt.show(hil, flagpost, __doc__, viewup='z', zoom=2)
plt.close()
|