Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change default action from warp to resize #183

Closed
annhchen opened this issue Jun 22, 2015 · 17 comments
Closed

Change default action from warp to resize #183

annhchen opened this issue Jun 22, 2015 · 17 comments

Comments

@annhchen
Copy link

This is a user flow recommendation rather than a bug report

The current default setting for a photo after it is placed on the map is set to warp (the grey button). In my experience using MapKnitter, almost 100% of the time, I resize and rotate the image before warping. As a result, I sometimes accidentally warp the image when I mean to resize it.

Suggestion:
Switch the default setting from warp to the resize/rotate (red).

Public username: ann
Browser: Chrome V. 43

@Fastie
Copy link

Fastie commented Jun 22, 2015

Very excellent idea.

@ebarry
Copy link
Member

ebarry commented Jun 22, 2015

+100000000000000

txt only: +1 336-269-1539
@lizbarry http://twitter.com/lizbarry

On Mon, Jun 22, 2015 at 1:12 PM, Fastie notifications@github.com wrote:

Very excellent idea.


Reply to this email directly or view it on GitHub
#183 (comment)
.

@jywarren
Copy link
Member

We discussed this originally when developing the Leaflet.DistortableImage plugin, but worried that people would think the plugin could only do rotation/scaling. There's also been a request yesterday for this on the plugin itself (publiclab/Leaflet.DistortableImage#51) suggesting that this would be helpful not just in the MapKnitter instance but in general.

But how to reconcile this? Ann and I were brainstorming a bit, and I thought we could indicate rotation vs. distortion with some kind of icon indicator, like this:

image

But it's a bit crude, and it does obscure part of the image, though not near the edges where it's most important. @wmaiouiru, any thoughts on this solution?

@wmaiouiru
Copy link

@jywarren I think the icon indication would be a nice touch, but would it be hard to let the developer define default behavior on startup? I foresee the possibility that some users might want to use the distort behavior as default.

@ebarry
Copy link
Member

ebarry commented Jun 23, 2015

interesting! Regarding the worry that "people would think the plugin could
only do rotation/scaling", in fact, while teaching mapknitter, i find
myself reassuring people (and have heard other teachers do the same) that
mapknitter doesn't "only do distortion". It would be easier to start
teaching with rotation/scale and then show distortion.

Can the dual concepts of rotation/scale and distortion be somehow
communicated more clearly in the menu bar of the program, like, to convey
that these are the main actions happening in mapknitter? i think the icon
on the image being stitched is overkill.

txt only: +1 336-269-1539
@lizbarry http://twitter.com/lizbarry

On Tue, Jun 23, 2015 at 1:02 PM, William Maio notifications@github.com
wrote:

@jywarren https://github.com/jywarren I think the icon indication would
be a nice touch, but would it be hard to let the developer define default
behavior on startup? I foresee the possibility that some users might want
to use the distort behavior as default.


Reply to this email directly or view it on GitHub
#183 (comment)
.

@jywarren
Copy link
Member

Oh interesting. Rotation/scaling is, when you think about it in code, a subset of distortion -- like, it's easier. So my take on it as an author has been that people would assume we'd just done the easier thing. But from a user perspective the two are kind of on a level.

I agree, the icon is heavy-handed, but we don't have a lot of latitude in design in the toolbar. Can you think of a way to visually communicate what we're getting at in the toolbar? We could try to color rotate/distort red, or place it to the left, or something? These don't seem very strong indicators to me.

@Fastie
Copy link

Fastie commented Jun 23, 2015

I agree that the icon on the image is not needed. New MapKnitter users should always start by rotating and scaling. If they are not capable of finding the button for distort, they will not be able to do anything else in MapKnitter either, so that's another issue. Advanced MapKnitter users should almost always start with rotate/scale as well, and advanced users who want to distort will quickly find how easy it is to switch.

Users of Leaflet.DistortableImage in applications other than MapKnitter may have other considerations.

@jywarren
Copy link
Member

I'm just worried about our original doubt -- that users would show up and
see rotate/scale, and assume "this doesn't do what I need; it's only
capable of rotation and scaling". I'm def. not debating that rotate/scale
is the first activity a user would do. So perhaps it's enough that the LDI
demo has distort by default, but MapKnitter's use does not? But the above
worry could apply equally to MapKnitter first-time users.

It'd be a bit odd, but we could do distortion-first only the first time a
user interacts with a map, or something like that.

I'm going to leave this for tomorrow when my vacation is over, but thanks
for the input and I'll respond further then.

On Tue, Jun 23, 2015 at 1:42 PM, Fastie notifications@github.com wrote:

I agree that the icon on the image is not needed. New MapKnitter users
should always start by rotating and scaling. If they are not capable of
finding the button for distort, they will not be able to do anything else
in MapKnitter either, so that's another issue. Advanced MapKnitter users
should almost always start with rotate/scale as well, and advanced users
who want to distort will quickly find how easy it is to switch.

Users of Leaflet.DistortableImage in applications other than MapKnitter
may have other considerations.


Reply to this email directly or view it on GitHub
#183 (comment)
.

@jywarren
Copy link
Member

jywarren commented Jul 6, 2015

Further input?

@jywarren
Copy link
Member

jywarren commented Jul 6, 2015

Another solution, although a bit crude, could be using a separate rotation handle, as is done in some drawing tools:

image

@annhchen
Copy link
Author

I'm late to this thread.

I wonder why with warp set first, people would think there is a
rotate/resize function second, and with rotate/resize set first, they would
assume there isn't a second function.

Jeff, did you already test this out on users to come to that conclusion?

The icon on top is a bit heavyhanded, I agree with Liz.

What if the warp icon and rotate/resize icons sat side by side in the
toolbar and you could toggle between the two?

On Mon, Jul 6, 2015 at 8:07 AM, Jeffrey Warren notifications@github.com
wrote:

Another solution, although a bit crude, could be using a separate rotation
handle, as is done in some drawing tools:

[image: image]
https://cloud.githubusercontent.com/assets/24359/8525503/3e9ef8e6-23cf-11e5-8696-df164ad81c0d.png


Reply to this email directly or view it on GitHub
#183 (comment)
.

@jywarren
Copy link
Member

Well, many interfaces offer rotation/scale - any drawing program, most GIS programs, etc. But warping is a more advanced feature to implement and is pretty rare to see in a graphics environment of any kind. For example, in Photoshop and Gimp, there isn't even a tool on the tool bar for it, where there is for rotate/scale. Many GIS applications (like Google Earth, for example) offer rotate/scale/shear, but not warp.

We could definitely make two separate buttons, but I think we still have the question of how to introduce warping to people, and which to have as a default. Do people like the idea of a separate rotation handle, which is a strong and familiar convention? This eliminates the "which first" debate.

@jywarren
Copy link
Member

I haven't done a user test, no -- but we could set one up at an upcoming event, perhaps?

@sashadev-sky
Copy link
Member

Hi! I am late this game but looks like this issue is still relevant. My thoughts are these:

  • Distort is a much more rarely seen editing tool compared to RotateScale, which is pretty standard. So personally, I think staying on distort makes sense.

  • Swapping them is also not a real solution to the question of making it clear to a user which editing tools they have at their disposal. It is trading in one problem for another. This issue will need to be addressed in a more comprehensive way...

Comprehensive Plan so far (feel free to add on anything here, @jywarren, @ebarry @annhchen, @everyonelse)

  1. Our first step is introducing (see PR here) a new optional option, mode into our API. It allows a user to specify their preferred initial editing tool during L.distortableImageOverlay initialization

    • There have been a few request for rotate specifically, but the user can any of our available editing modes, the world is their oyster.
    • If a mode option is not set at all, initial editing mode defaults to "distort"
    • Check out the Mode section in our README for someone additional information on using this option and a code block example.
  2. UP in the air
    I think the next task here is to create a UI that shows the user off the bat, all the different types 0f things they can do. This means compartmentalized categories of tools. Separating "styling" editing actions, such as opacity and brightness into a separate section from Transform related actions (rotate, scale, distort).

@jywarren
Copy link
Member

jywarren commented May 17, 2019 via email

@sashadev-sky
Copy link
Member

@jywarren Ok closing this out and moving relating comments from here into a new issue :)

@sashadev-sky
Copy link
Member

Another aspect of this is that distort can leave an image accidentally distorted incorrectly for a first time user. There may be other ways to address this too, though, like: 1. An easy undo action 2. An easy "revert to original" action Thanks!

@jywarren Can you please go into the implications of this in the context of this discussion? I am not grasping what you mean

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants