bugGNU Octave - Bugs: bug #55931, Plot disappears after zooming out...

 
 

bug #55931: Plot disappears after zooming out once and then clicking "Autoscale"

Submitter:  Philip Nienhuis <philipnienhuis>
Submitted:  Fri 15 Mar 2019 09:33:13 PM UTC
   
 
Category:  Plotting with OpenGL Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Confirmed Assigned to:  None
Originator Name:  Philip Nienhuis Open/Closed:  * Open
Release:  * 5.1.0 Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sat 06 Aug 2022 09:55:06 AM UTC, comment #5: 

This is still present in 8.0.0, although much less pronounced.
 
What I now see is that from any zoom-in or zoom-out situation, when activating the zoom-out button and clicking twice quite rapidly in the plot, the second click behaves as "Automatic limits for current axis". Same for the zoom-in button.
After a few more random zoom-out clicks in the plot, the lines sometimes disappear completely while the axes show extreme zoomed-out limits. Clicking the "Automatic limits" doesn't help anymore then.
So careful and not-too-fast zooming helps to preserve the plot.

This makes me suspect that behind the scenes, the graphics system needs quite a bit of time catching up and getting ready for a next user action / mouse click ... could that be the underlying reason for the apparent improvement? - I have much faster HW these days so that "catching up" goes much faster as well.

Philip Nienhuis <philipnienhuis>
Group Member
Sat 16 Mar 2019 04:39:19 PM UTC, comment #4: 

Thanks gentlemen for the comments.

Octave-6.0.0 (crossbuilt today) behaves a little better. It zooms back after clicking Autoscale, after zooming out one step using the Zoom-out button.

What I see is that on a fresh plot clicking the zoom-out button once zooms out, clicking it again zooms back in, and then repeated clicking zooms out until the 9th click when the entire plot vanishes completely. Clicking Autoscale does not bring it back.

That also happens on 5.1.1.

Philip Nienhuis <philipnienhuis>
Group Member
Sat 16 Mar 2019 12:24:42 AM UTC, comment #3: 

I wish I could claim credit, but I already grafted the mega-fix on to stable, and I can reproduce the bug there.

@Philip: Maybe try hg bisect on the development branch to locate the changeset that fixes this.

Rik <rik5>
Group administrator
Sat 16 Mar 2019 12:17:52 AM UTC, comment #2: 

It's probably a7dfb00d5bf5, which was Rik's mega-fix for a dozen bugs about "axis equal".

If you take out the "axis equal" it works fine.

Mike Miller <mtmiller>
Group Member
Fri 15 Mar 2019 10:36:48 PM UTC, comment #1: 

Version 5.1.1 would only be available if you are building the stable branch yourself.  The released version is 5.1.0 so I changed the report to that version, rather than dev.

I think this issue has been fixed on the development branch.  At any rate, the code you mention works for me there.

On the stable branch, I can reproduce this, and even get weirder outcomes.  See the attached messed_up.png file which resulted from a series of zoom in/out and autoscale.

I think you could hunt through the Mercurial logs.  If you're lucky, there was a single changeset which fixed this on the dev branch.  If it was part of a larger overhaul of the graphics system then it probably has to just wait for 6.1.0 to come out.


Rik <rik5>
Group administrator
Fri 15 Mar 2019 09:33:13 PM UTC, original submission:  

(Release is actually 5.1.1 but that is not in the bug tracker's  drop-down list)

Steps to reproduce:

>> poly = [95000 482000; 98000 485000; NaN NaN; 95000 485000; 98000 482000];
>> plot (poly(:, 1), poly(:, 2))
>> box on; grid on; axis equal; axis tight


A cross ('X') is shown.
Then, select the "Zoom out" button, and click in middle of plot
==> plot is zoomed out, fine.

Next, click "Autoscale" button
==> cross disappears completely and cannot be redrawn. Nothing seems to help.
This is the bug.

Just a hunch: is this another manifestation of single precision in OpenGL?
Because if after zooming out, again zooming in a little by selecting a zoom area, Autoscale seems to work in Qt and the plot is again filled with the cross.
Using fltk it is a bit easier to recover the plot, just "axis tight" does the job.

Philip Nienhuis <philipnienhuis>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #46549:  messed_up.png added by rik5 (26KiB - image/png)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rik5 (Updated the item)
  • -email is unavailable- added by philipnienhuis (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-03-15 rik5 Attached File- Added messed_up.png, #46549
        Item GroupUnexpected Error or Warning Incorrect Result
        StatusNone Confirmed
        Releasedev 5.1.0
        Operating SystemMicrosoft Windows Any
        SummaryPlot diisappers after zooming out once and then clicking &quot;Autoscale&quot; Plot disappears after zooming out once and then clicking "Autoscale"

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code