code: def _interpolate_mouse_movement(
      start_windows_coordinates, end_windows_coordinates, steps=20
  ):
      x_coordinates = [
          start_windows_coordinates[0],
          end_windows_coordinates[0],
      ]
      y_coordinates = [
          start_windows_coordinates[1],
          end_windows_coordinates[1],
      ]
  
      if x_coordinates[0] == x_coordinates[1]:
          x_coordinates[1] += 1
  
      if y_coordinates[0] == y_coordinates[1]:
          y_coordinates[1] += 1
  
      interpolation_func = scipy.interpolate.interp1d(
          x_coordinates, y_coordinates
      )
  
      intermediate_x_coordinates = np.linspace(
          start_windows_coordinates[0],
          end_windows_coordinates[0],
          steps + 1,
      )[1:]
      coordinates = list(
          map(
              lambda x: (int(round(x)), int(interpolation_func(x))),
              intermediate_x_coordinates,
          )
      )
  
      return coordinates
  
imports: from serpent.input_controller import InputController, MouseButton, KeyboardKey, character_keyboard_key_mapping
  from serpent.sprite_locator import SpriteLocator
  import time
  import ctypes
  import win32api
  import scipy.interpolate
  import numpy
label_desc: Use image node_id 21 for calling the NativeWin32InputController obj's underlying member method code with example usage: obj._interpolate_mouse_movement(start_windows_coordinates, end_windows_coordinates, steps) and returns: coordinates