Click here to Skip to main content
15,913,941 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: How they decide... Pin
the goat in your machine29-Jan-19 21:51
the goat in your machine29-Jan-19 21:51 
GeneralRe: How they decide... Pin
Kornfeld Eliyahu Peter29-Jan-19 22:01
professionalKornfeld Eliyahu Peter29-Jan-19 22:01 
GeneralRe: How they decide... Pin
the goat in your machine29-Jan-19 22:19
the goat in your machine29-Jan-19 22:19 
GeneralRe: How they decide... Pin
CodeWraith29-Jan-19 22:52
CodeWraith29-Jan-19 22:52 
GeneralRe: How they decide... Pin
Kornfeld Eliyahu Peter29-Jan-19 22:58
professionalKornfeld Eliyahu Peter29-Jan-19 22:58 
GeneralRe: How they decide... Pin
CodeWraith30-Jan-19 6:18
CodeWraith30-Jan-19 6:18 
GeneralRe: How they decide... Pin
kalberts30-Jan-19 0:38
kalberts30-Jan-19 0:38 
GeneralUser Experience question (edit 2D curve) Pin
Super Lloyd29-Jan-19 18:12
Super Lloyd29-Jan-19 18:12 
This is an app question
But no programming is involved, I am wondering about best behavior... and tentatively put my question in the lounge. Please let me know if another forum that is more appropriate

I am working at home on a personal app (that I hope to publish) which is sort of, but not quite, a vector drawing program.

I just reached the part where I got curves and shapes and I want to provide some selection / node editing functionality.
I want to implement a bunch of operations (below) that I hope to have one 1 tool (many tools might also be confusing, I think), here they are:
- split a segment in the middle (1 segment becomes 2)
- add a point in the middle (a segment become a spline, a spline become a quadratic bezier... name might be wrong but, basically going up in the 2,3,4 number of control points of bezier segment)
- move selected (control?) points
- delete point (control point or endpoint, i.e. merging 2 bezier)

now the user experience part (the tricky part)
- moving is easy: click on point / handle, move all that is selected
- split point vs increase order: I was think to use normal vs CTRL click in the middle
- CTRL delete on segment (outside middle) delete
- toggle point selection: CTRL click
- delete point: CTRL click

(Remark: I am edging toward ALT for point to curve increase order, and delete.. all sounds very different but there is UI feedback)

see.. CTRL does too much, particularly when clicking on a point it does selection toggle and delete.
so I thought maybe I use CTRL and ALT (or SHIFT).. but that become rather complicated... doesn't it?

also if deleting a point between 2 bezier segment (4 and 4 control point), what to do? Bezier segment have a maximum of 4 control point (all my home made math tool stops 4 control points, and UI primitive do as well)?

Anyway if anyone has any idea about smooth user editing experience, let me know! Big Grin | :-D

EDIT:
I think I got it, what do you think?

operations grouped by target:
empty area:
- normal click + drag: selection rect
- SHFT + click + drag => union selection rect
- CTRL + click + drag => toggle selection rect
- ALT + click + drag => un-selection rect

unselected control point:
- click: select and move selection on drag
- CTRL/SHIFT + click: select (and move selection on drag?)
- ALT + click: delete

selected control point:
- click: drag/move
- CTRL: unselect
- ALT + click: delete (only on inside control point, not on start/end)(on /start/end merge 2 consecutive bezier curve into 1 segment)

curve:
- click: select all control points
- ALT + click: delete segment
- CTRL + SHIFT click: add control points if possible (i.e. increase order: 2,3,4 control points)
- CTRL + click: split in 2 in the middle (i.e. add point)
A new .NET Serializer
All in one Menu-Ribbon Bar
Taking over the world since 1371!


modified 30-Jan-19 1:18am.

GeneralRe: User Experience question (edit 2D curve) Pin
Mark_Wallace29-Jan-19 19:41
Mark_Wallace29-Jan-19 19:41 
GeneralRe: User Experience question (edit 2D curve) Pin
Super Lloyd29-Jan-19 20:34
Super Lloyd29-Jan-19 20:34 
GeneralRe: User Experience question (edit 2D curve) Pin
Mark_Wallace29-Jan-19 22:16
Mark_Wallace29-Jan-19 22:16 
GeneralRe: User Experience question (edit 2D curve) Pin
Nelek29-Jan-19 22:29
protectorNelek29-Jan-19 22:29 
GeneralRe: User Experience question (edit 2D curve) Pin
Super Lloyd29-Jan-19 22:33
Super Lloyd29-Jan-19 22:33 
GeneralRe: User Experience question (edit 2D curve) Pin
Steve Owen30-Jan-19 6:33
Steve Owen30-Jan-19 6:33 
GeneralRe: User Experience question (edit 2D curve) Pin
Fueled By Decaff29-Jan-19 22:11
Fueled By Decaff29-Jan-19 22:11 
GeneralRe: User Experience question (edit 2D curve) Pin
Super Lloyd29-Jan-19 22:29
Super Lloyd29-Jan-19 22:29 
GeneralE-Mail Is Bouncing Pin
C-P-User-329-Jan-19 17:06
C-P-User-329-Jan-19 17:06 
AnswerRe: E-Mail Is Bouncing Pin
the goat in your machine29-Jan-19 21:57
the goat in your machine29-Jan-19 21:57 
GeneralRe: E-Mail Is Bouncing Pin
Fueled By Decaff29-Jan-19 22:14
Fueled By Decaff29-Jan-19 22:14 
GeneralRe: E-Mail Is Bouncing Pin
C-P-User-330-Jan-19 16:39
C-P-User-330-Jan-19 16:39 
GeneralRe: E-Mail Is Bouncing Pin
kalberts30-Jan-19 0:54
kalberts30-Jan-19 0:54 
GeneralWinter is Winter Pin
kalberts29-Jan-19 10:30
kalberts29-Jan-19 10:30 
GeneralRe: Winter is Winter Pin
Super Lloyd29-Jan-19 16:33
Super Lloyd29-Jan-19 16:33 
GeneralRe: Winter is Winter Pin
OriginalGriff29-Jan-19 20:19
mveOriginalGriff29-Jan-19 20:19 
GeneralRe: Winter is Winter Pin
Super Lloyd29-Jan-19 20:23
Super Lloyd29-Jan-19 20:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.