Switch to a 3d rotation trackball implementation with path independence by scottshambaugh · Pull Request #29244 · matplotlib/matplotlib · GitHub
Skip to content

Switch to a 3d rotation trackball implementation with path independence#29244

Closed
scottshambaugh wants to merge 1 commit into
matplotlib:mainfrom
scottshambaugh:trackball_no_precession
Closed

Switch to a 3d rotation trackball implementation with path independence#29244
scottshambaugh wants to merge 1 commit into
matplotlib:mainfrom
scottshambaugh:trackball_no_precession

Conversation

@scottshambaugh

@scottshambaugh scottshambaugh commented Dec 6, 2024

Copy link
Copy Markdown
Contributor

PR summary

Different 3D rotation methods were added in #28841, with different tradeoffs to each. In that PR I was adamant that the matplotlib default method should have the property of "path independence", which is valuable since it allows users to "undo" errant rotations by returning their mouse to the original point on the screen.

Since then, I did a deep dive and writeup on different virtual trackball control methods (https://theshamblog.com/virtual-trackballs-a-taxonomy-and-new-method/), and learned that it's possible to implement the "trackball" control method in a way that preserves the path independence property, and IMO is a strict improvement on the original implementation. This PR switches to that implementation, and cleans up a little bit of the docs.

@MischaMegens2 pinging you for review! During the original PR you favored "trackball" as the default method, which I pushed back on because of the lack of path independence. I'm open to switching it over to that now if you'd prefer it!

We might be able to squeeze a change to the default into 3.10 with a quick review, I think it would be harder to switch over in 3.10.1 since it's changing behavior. But to other devs, I don't want this to block a timely 3.10 release.

PR checklist

@scottshambaugh scottshambaugh added this to the v3.10.0 milestone Dec 6, 2024
@github-actions github-actions Bot added the Documentation: API files in lib/ and doc/api label Dec 6, 2024
@MischaMegens2

Copy link
Copy Markdown
Contributor

@scottshambaugh

scottshambaugh commented Dec 10, 2024

Copy link
Copy Markdown
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation: API files in lib/ and doc/api topic: mplot3d

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants