File: mousehover0.py

package info (click to toggle)
vedo 2025.5.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,404 kB
  • sloc: python: 64,792; javascript: 1,932; xml: 437; sh: 139; makefile: 6
file content (20 lines) | stat: -rw-r--r-- 767 bytes parent folder | download
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()