Elliptical Boundary for Camera Panning (Right Click)

Continuing the discussion from How to limit pan in OrbitControls for OrthographicCamera?:

The solution explained here works as expected but I would like to take it a step further the boundary to be elliptical.

I figured it out. Here’s the general idea for anyone interested:

document.addEventListener("mousemove", (event) => {

      var dx = (whereverYourXIs - event.clientX)
      var dy = (whereverYourYIs  - event.clientY)
      var alpha = (Math.atan2(dy, -dx) * 180 / Math.PI + 360) % 360
      var maxX = Math.abs(yourXRadius * (Math.cos(alpha / 180 * Math.PI)))
      var maxY = Math.abs(yourYRadius  * (Math.sin(alpha / 180 * Math.PI)))

      dx = Math.min(Math.max(-maxX, dx), maxX)
      dy = Math.min(Math.max(-maxY, dy), maxY)

      camera.position.x = -dx + whereverYourXIs
      camera.position.y = dy + whereverYourYIs
}