octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fltk backend fix & mouse wheel scroll factor


From: Shai Ayal
Subject: Re: fltk backend fix & mouse wheel scroll factor
Date: Mon, 28 Sep 2009 08:57:22 +0200

On Mon, Sep 28, 2009 at 1:05 AM, John Swensen <address@hidden> wrote:
>
> On Sep 27, 2009, at 4:16 AM, Søren Hauberg wrote:
>
>> søn, 27 09 2009 kl. 09:12 +0300, skrev Shai Ayal:
>>>
>>> The attached changset fixes a bug which did not show the zoom box.
>>> Also added a function to enable the user to control the zoom factor
>>> when using mouse wheel zoom.
>>>
>>> I think that with this changeset, the fltk_backend is quite usable as
>>> a viewer to the gl-renderer.
>>
>> I think this is really nice. With this changeset, the FLTK backend is
>> very nice to use for 2D plots (much better than both gnuplot and
>> matlab).
>>
>>> I am open to feature requests.
>>
>> Well, then I'm gonna file a request :-) It would be great to have better
>> support for navigating in 3D. Basically, I think dragging the mouse
>> should make 3D plots rotate around some point (center of mass?), while
>> scrolling should change the distance between the camera and said point.
>
> I have always been a big fan of how the 3D solid modeling programs (e.g.
> ProE and SolidWorks) do their 3D navigation.  The way I see it working with
> Octave is as follows.  There would be 4 different "views" available from the
> plotting window.  Views 1-3 would be associated with looking at the plot
> along each of the cardinal axes.  The four would be the "working view".  The
> user has 2 options regarding how the object rotations (or the camera rotates
> about the object).  The first is based on a center of mass idea as you
> indicated.  This works great for solid modeling, since objects have a clear
> center of mass, but for plotting it is more difficult since it becomes not
> obvious how to weight things like lines.  A cloud of points would be easiest
> to implement this behavior.  The second way that solid modeling programs
> work is to allow you to set the center of rotation by switching to the 3
> orthogonal views to set the point of rotation.  Then, you can return to the
> "working view" and rotate and pan as would be expected.  This would be
> harder to implement, and I'm not exactly sure how this meshes with how the
> property tree manages camera position, but I think it would help keep from
> grumbling and muttering unspeakable things every time I try to rotate and
> pan in both Matlab and Octave.

These are both good suggestions.
1. for the center of mass rotation -- I am not sure but I think this
should be implemented in octave-core level, rather than in the
backend. This would also add some computational burden. I could
implement the degenerate case of rotating about the center of view
(i.e. the middle of the axes)
2. the solid model way - this is purely backend stuff, and actually
might be easier to implement. Do you have more details -- how exactly
do you select the point in the orthogonal views?

Shai



reply via email to

[Prev in Thread] Current Thread [Next in Thread]