1234567891011121314151617181920 |
- """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()
|