[Bf-committers] Bug #816 (180 deg rotation limit for trackball in 3D window) with Possible Patch
Sat, 27 Dec 2003 12:44:04 +0100
I can't load any of these interesting images! :)
Further it is unclear to me why so much code changes for a single line
> phi = asin(si) to phi = si * M_PI / 2.0.
I'm busy now with other stuff... don't mind to try the patch itself
later, but I find it usually very hard to *read* patches. If you
propose to discuss some code/implementation, it might be more handy to
just provide the entire code section you changed.
On Thursday, Dec 25, 2003, at 17:23 Europe/Amsterdam, Nathanael Law
> Hello all,
> I would like to discuss a possible solution to bug #816. To summarize
> the bug report, in the 3D window, you cannot rotate beyond 180 degrees
> in trackball mode.
> 1. Is this the behavior that is desired?
> 2. If not, does the included patch correctly address the issue?
> 3. If you think it does address the issue, but is not well-coded, what
> can I do to improve it?
> The included patch allows unlimited rotation in the 3D window in
> trackball mode; however, it changes the relationship between the mouse
> movement and the angle rotation.
> The unpatched angle of rotation is proportional to the arcsin of the
> relative distance that the mouse has moved. This works quite will if
> rotation is restricted to the [-180,180] degree interval. The
> response graph is shown at
> http://www.xyrodian.com/bf-committers/UTRR.png For the majority of
> the range of operation, the response is approximately linear.
> If the interval of rotation is extended without changing the
> relationship between the mouse distance and the angle of rotation, the
> non-linear part of the relationship becomes very obvious. I
> noticed this when I was testing the extension of rotation. The
> graph is shown at http://www.xyrodian.com/bf-committers/ETRR.png and a
> zoomed in view of the non-linear region is at
> http://www.xyrodian.com/bf-committers/ETRRZ.png. The result of this is
> the user feels a lack of control around the +/- 180 range. A small
> movement of the mouse rotates the view by a large number of degrees.
> To eradicate the non-linear response for the extended range of
> rotation, I changed the conversion of mouse distance to angle from
> phi = asin(si) to phi = si * M_PI / 2.0. As can be seen in the patched
> response, http://www.xyrodian.com/bf-committers/PTRR.png, this results
> in completely linear response that very closely resembles the current
> behavior for most angles and eliminates the rapid change of angles
> around +/- 180 degrees.
> I appreciate any feedback: comments, criticisms, suggestions, etc.
> - http://www.xyrodian.com/bf-committers/UTRR.png
> - http://www.xyrodian.com/bf-committers/ETRR.png
> - http://www.xyrodian.com/bf-committers/ETRRZ.png
> - http://www.xyrodian.com/bf-committers/PTRR.png
> - Nathanael Law <email@example.com>
Ton Roosendaal Blender Foundation firstname.lastname@example.org