Geometer»Blog

v0.7.1 Release - Animation and icons

No longer shall you be disoriented by rapid changes in the movement or rotation of the canvas. Be smoothly transported from one place to another as if guided by well-oiled bearings. Furthermore, do so under the 'G' banners proudly emblazoned on the taskbar and corner of your window.

Download directly or from the Geometer Github repo.
Simon Anciaux,
The animation helps. But I think it would be better to be able to rotate in real time: while the alt key is pressed the view would rotate following the mouse. And having a x and y axis (or grid) show/hide toggle would help.

The zoom could also be real time and not increments: while pressing alt + shift (or another key) the view would zoom in or out. In this case it is important to me to be able to configure the zoom direction (in/out).

Another zoom type that I find useful is to draw a rectangle selection around what you want to see better and let the application computes the zoom and pan to view just that.

Also I got a crash after drawing a lot of random line and circles.
Andrew Reece, Edited by Andrew Reece on
Thanks for the feedback Simon.

mrmixer
The animation helps. But I think it would be better to be able to rotate in real time: while the alt key is pressed the view would rotate following the mouse.
Agreed. I'd briefly considered it before but hadn't really thought of a good way of representing it at the time such that the axis you're drawing makes sense as a line. Your exhortation has encouraged me to think again - while I'm not sure the whole view should rotate, it might make sense to overlay a rotated copy of the world similar to the grey circle/line shown when drawing.

mrmixer
having a x and y axis (or grid) show/hide toggle would help.
I'm reluctant to have these as central elements because they somewhat contradict the freeform nature of traditional compass/straightedge drawing. I might consider adding them later, but I want the system to be solid without them first.

mrmixer
The zoom could also be real time and not in increments
Smooth (high-resolution) zooming would definitely be preferable (is this what you mean?). I first need to work out how to do it! It looks a fair bit more complicated than just taking in the simple WM_SCROLLING message as I'm currently doing. If you can point me to any useful resources I would be very grateful.

mrmixer
while pressing alt + shift (or another key) the view would zoom in or out.
Do you mean as in holding a button to have a quick temporary overview/detail view?

mrmixer
Another zoom type that I find useful is to draw a rectangle selection around what you want to see better and let the application computes the zoom and pan to view just that.
Good idea, that shouldn't be too difficult if there's a key/mouse combination for that available. I'll have a think.

mrmixer
I got a crash after drawing a lot of random line and circles.
That sounds about right: I've been using fixed-size arrays while I program the main features because I've wanted to change the main data structures about. That's the thing I'll be doing next.
Simon Anciaux,
For the zoom, look at how it works in 3d packages (in Blender, holding control down + middle click and drag zooms in/out. You can go to a 2d top view by pressing 7 on the numpad, and toggle perspective with 5). I don't have code example but it's a matter of scaling your x and y basis axis (like you do now) each frame with a value based on the mouse delta on x or y.

For the rotation I feel that having the view (or object depending on how you see things) rotate as you move the mouse is better then the overlay solution because if you have a lot of things on the screen it can quickly become unreadable. Once again you can test in blender: select an object with right click, then press R an see how the object move with the mouse movement.

I probably don't have the same vision of the project as you and since it's your baby, you should go in the direction that realize your idea. I find this program interesting but I don't have a need for it, it's more like a toy so don't compromise your vision for me!
Andrew Reece,
mrmixer
For the zoom, look at how it works in 3d packages (in Blender, holding control down + middle click and drag zooms in/out.
Ahh I see what you're getting at now - using the cursor position (with appropriate modifiers) to zoom, not just better use of the scroll wheel. I'll add it to the list ;)


For the rotation I feel that having the view (or object depending on how you see things) rotate as you move the mouse is better then the overlay solution because if you have a lot of things on the screen it can quickly become unreadable. Once again you can test in blender: select an object with right click, then press R an see how the object move with the mouse movement.
You may have a point re: clutter, but I'm hoping it should be ok with separate colours (needs testing). I foresee it primarily being an issue for beginners - once 'expert' users are familiar with how rotation works, they probably won't be spending too much time previewing it - and beginners will probably have less content on-screen. I may be wrong!

The import difference from Blender for me is that there the rotations are arbitrary compared to viewport orientation, whereas for Geometer, it's important that e.g. the line between 2 points is exactly horizontal.

I might have an additional 'no-snapping' rotation that would work similarly to how you describe, that makes sense for my mental model of the thing.


Thanks a lot for your feedback, it's very helpful for making sure I don't stay trapped in my own little bubble. You've also provided or stimulated a lot of potentially very good ideas.