多路徑點滑鼠手勢

humanize.humanized_pathtween_drag 只在*單一*起點 → 終點之間插值。真實手勢——簽名、框選 (marquee / rubber-band)、拖曳經過多個放置目標、形狀手勢——需要任意的路徑點鏈,且可在整段路徑中持續按住按鍵。

plan_path() 為純點運算(重用 tween_drag 的具名緩動),本身即可單元測試;:func:move_along_pathdrag_path() 透過可注入的 sink 派發,因此手勢可在無真實輸入下測試。不匯入 PySide6

無頭 API

from je_auto_control import (
    plan_path, move_along_path, drag_path, path_easings,
)

# 經過每個路徑點的緩動點列(交接點不重複)
plan_path([(100, 100), (400, 150), (400, 500)], per_segment_steps=20)

move_along_path([(100, 100), (400, 150), (400, 500)])      # 沿折線移動
drag_path([(50, 50), (300, 50), (300, 300)], button="mouse_left")  # L 形拖曳

plan_pathper_segment_steps 個緩動步驟對每個相鄰點對插值(easingpath_easings() 中任一 名稱——linear / ease_in_out_quad / ease_out_cubic / ease_in_cubic),且不重複共用的交接點。 move_along_path 沿路徑發出移動事件;``drag_path`` 在第一個路徑點按下、移動經過整段路徑、在最後一點放開—— 用於多停靠點拖曳。兩者皆可傳入 sink 以供無頭測試。

執行器命令

AC_move_along_pathAC_drag_path 接受 waypoints``(JSON ``[[x, y], ...] 列表)以及 easing / per_segment_steps``(拖曳另含 ``button)。兩者皆以 MCP 工具(ac_move_along_path / ac_drag_path) 以及 Script Builder 中 Mouse 分類下的命令提供。