mousehover0.py 767 B

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