
Why is the mouse cursor slightly tilted and not straight? - attheodo
http://ux.stackexchange.com/questions/52336/why-is-the-mouse-cursor-slightly-tilted-and-not-straight
======
eterm
I remember windows 3.1 had a utility for drawing custom cursors. I had great
fun making cursors (I was around 10 at the time I guess) and had completed
forgotten about it until now!

I think that utility was a 16x16 grid, and indeed the easiest to see arrows
utilsed the vertical, although actually a cursor which uses the horizontal and
diagonal isn't bad either.

~~~
oneeyedpigeon
The Commodore Amiga had something similar along with an early 'double 90
degree' cursor [1] and a 1/2 pixel ratio cursor in later versions if the OS
[2]. Both are pretty delightful :)

[1]
[http://toastytech.com/guis/amiga1cplpointer.png](http://toastytech.com/guis/amiga1cplpointer.png)
[2] [http://geekometry.com/wp-
content/uploads/2013/11/amigaos204-...](http://geekometry.com/wp-
content/uploads/2013/11/amigaos204-2-1.png)

~~~
rurounijones
Welp, you just gave me a heap'o'nostalgia

~~~
draven
Same here, when I was a kid I used to spend hours drawing custom cursors or
custom icons.

------
darkmighty
Nobody seems to mention a pretty good reason also: standard western text (and
content in general) is oriented right-to-left; therefore covering only one
side seems to me intuitively less obstructing (we can read perfectly up to the
click spot, instead of being confused by what's underneath it)

~~~
ds9
Some of the Linux GUIs used to have a feature that, if you set the mouse to
left-handed, the cursor would tilt the other way. It was very ergonomic and
seemed natural (and I would like it back :)

~~~
pbhjpbhj
FWIW on KDE there are several cursor sets available via the "download new
content" system with left-handed primary cursors; but yes it seems you have to
select them yourself rather than them being automatically applied.

------
ebbv
I always assumed because the point of the diagonal arrow cursor is located at
0,0 in the image, making the origin location of the mouse cursor image and the
click point of the arrow the same. Whereas with any vertical arrow cursor, the
click point would no longer line up with 0,0.

~~~
blueskin_
This is true for _most_ default cursors, but custom cursor file formats let
you change the coordinates of the active pixel (see: 'left-handed' mirrored
arrow cursors, or crosshair-type ones.). The link 'finger' cursor on most OSes
is a default example where the active pixel isn't the top-left one.

~~~
Zecc
For resize arrows it's pretty much a must.

------
agumonkey
It's funny how as a kid in the 80s, this was something you'd notice, think and
feel about. I have no idea what were the computer system I was using[1] but I
vividly remember staring at the cursor with interest.

[1] at my father's office, govt agency, something like an early x window
system... can't recall

ps: actually, both physical interface mesmerized me, keyboards were curious
creatures for me, here's a similar model of what was used
[http://goo.gl/gyD7R6](http://goo.gl/gyD7R6) ( I love the non flat keys and
the 0, 00, 000 series )

------
Stratoscope
It's interesting to see how misinformation propagates.

The second-highest-rated answer on Stack Exchange (46 votes and climbing)
claims that another reason for the left arrow cursor in early GUIs was to put
the hotspot at (0,0) to save time in the mouse position calculations:

[http://ux.stackexchange.com/a/52349/43259](http://ux.stackexchange.com/a/52349/43259)

The answer cites this Reddit comment as its source:

[http://www.reddit.com/r/explainlikeimfive/comments/1qhzym/wh...](http://www.reddit.com/r/explainlikeimfive/comments/1qhzym/why_is_the_computer_arrow_slightly_tilted/cdcz731)

That comment is a direct copy of this Yahoo! Answers comment from 2009, which
says that the Xerox Alto worked this way, but cites no source for the claim:

[http://answers.yahoo.com/question/index?qid=20090520113724AA...](http://answers.yahoo.com/question/index?qid=20090520113724AAgApFi)

In fact, the Alto did have multiple cursor shapes, and the hotspot wasn't
always at (0,0). For example there was this cross in a circle:

[http://www.guidebookgallery.org/articles/thexeroxaltocompute...](http://www.guidebookgallery.org/articles/thexeroxaltocomputer/pics/photo5d)

and a right-pointing arrow:

[http://toastytech.com/guis/saltobravo.png](http://toastytech.com/guis/saltobravo.png)

Let's ballpark the CPU overhead. According to this article, the Alto executed
about 400,000 instructions per second, with an instruction set modeled after
the Data General Nova 1220:

[http://www.guidebookgallery.org/articles/thexeroxaltocompute...](http://www.guidebookgallery.org/articles/thexeroxaltocomputer)

Here's a brief description of the Nova instruction set:

[http://users.rcn.com/crfriend/museum/doco/DG/Nova/base-
instr...](http://users.rcn.com/crfriend/museum/doco/DG/Nova/base-instr.html)

There are four accumulators, with an ADD instruction that adds one accumulator
to another (and a similar SUB). There are LDA and STA instructions that load
and store memory, addressed with a displacement and an optional accumulator
(e.g. to access into a structure using a pointer).

It seems reasonable to assume that at some point in the mouse refresh code, we
will have the mouse's X value in one accumulator, and a pointer to the cursor
structure (containing the cursor bitmap, hotspot, etc.) in another.

So to adjust our X value using the hotspot X from our cursor structure, we
simply need an LDA to load the hotspot X into another accumulator, and an ADD
or SUB to do the calculation. Repeat that for Y, and we've added a total of
four instructions.

At 400,000 instructions per second, these calculations would add a 1/100,000
second overhead to the mouse calculation.

A worst case might be that we don't have a free accumulator when we need it.
So that would be another STA and LDA to spill one temporarily.

If we have to do that for both X and Y, it would put us at eight instructions
total, or 1/50,000 second.

Still probably worth doing it to get the flexibility of custom cursor
hotspots. :-)

~~~
asveikau
Nice digging.

This hit the BS detector for me too, mainly because it goes against some of
the rules of thumb I have found useful for optimization. For example, the need
for smooth and stutter-free ui notwithstanding, if something only happens in
response to user input you are less likely to see important gains from this
sort of CPU microoptimization. Even on a very old machine, it should be
obvious that the computer adds integers much faster than you can move your
finger (otherwise there would be no point of having the computer, am I right?)
On the other hand, if you had to compute more on every frame or for a
substantial amount of onscreen objects, that's where the real gains are going
to live, because the numbers add up much more easily.

------
ii
When an average right-handed person points at something his hand has a very
similar shape. Imaging a large screen with some kind of a presentation and you
are explaining something to the public and _pointing_ at some object on the
screen. The shape of your hand in this moment is the most natural thing for a
pointer, immediately understandable by anyone.

------
memracom
Júlio Turolla Ribeiro's answer is far better. I guess that young people have
lost the ability to think outside the computer. Some of us still remember
school classes, and business presentations in which presenters pointed at the
board with their finger, or with a two meter long stick called a "pointer".
The pointing was almost always in the same angle as the photo that Julio
included, either from the left or the right. Of course, from the right is more
natural for the right-handed majority.

The fact that some engineer tinkered with the computer representation of the
pointer for code efficiency reasons, does not change the fact of hundreds of
years of history in which teachers pointed at an angle from the right. I'm
sure that if you hunt up old movies (black and white ones) where there is a
school/university lesson being portrayed, you will see a pointer in use in
this pose.

~~~
gertef
1\. On my computer, the pointer arrow is asymmetric, and the left side of the
arrow-head _is_ vertical.

2\. Forget pre-computers... If you draw an imaginary line from my mouse/hand
to the cursor, it is approximately parallel/overlapping with the line of the
arrow pointing.

------
oneeyedpigeon
<pedantry>pointer</pedantry>

~~~
oneeyedpigeon
Actually, I'm wrong. Turns out pointer and caret are subclasses of cursor, and
"mouse cursor" is perfectly acceptable to refer to the former. You learn
something by being a petty smartass :)

~~~
qwerty_asdf
...besides, when I hear the word pointer mentioned within the context of
computing, I'm more inclined to think of things like stack pointers and
instruction pointers.

~~~
oneeyedpigeon
just wait for the DBAs to come back on this :)

------
Aoyagi
I tried a straight upwards cursor once. It felt terrible. The tilt gives the
cursor "extended hand" feel.

~~~
igravious
To a right-handed person it does ...I imagine to a left-handed person it must
feel like the cursor/pointer is pointing the "wrong" way. I am wrong on this
lefto weirdies? Bonus upvotes for casual slur surely.

~~~
csixty4
You get used to it, just like you do with doors and all the other things
designed with righty's in mind.

~~~
Dylan16807
I don't understand, I'm used to doors with handles on random sides, how are
they biased?

~~~
arjie
My door handle is a knob that turns both ways to open, but turning my right
hand (I'm right handed) clockwise is far more comfortable than doing so
counterclockwise.

~~~
Dylan16807
I don't understand how the door is biased here. Turn it one way with your
right hand, and the other way with your left, if that is your preference.

~~~
arjie
Ha ha ha! Thanks for your advice. I shall now be able to enter my bedroom
again.

Seriously, though, I felt it obvious but I'll spell it out. Some doors open
only one way. That way is likely more comfortable for right-handers. Having a
doorknob which moves both ways, I have been able to observe that there is a
difference in the 'feel' of the way it opens depending on the direction. I
offered this as information so you could answer your question yourself.

Good luck! And have a nice day.

~~~
csixty4
And if there's a security system or intercom next to the door, it's probably
going to be on the right side.

------
GoofballJones
I remember drawing my own mouse pointer on my Amiga. Made it really small,
could barely see it, but didn't take up as much space as the default.

Actually, quite easy to put anything you wanted as a mouse pointer on the
Amiga.

------
ck2
We owe so much to xerox, did they ever make money off all that R&D ?

~~~
GoofballJones
They did from Apple. Despite the lore of Steve Jobs "stealing" everything from
PARC, there was a deal in place before Xerox ever showed anyone.

~~~
jackgavigan
SRI, not Xerox, were the assignee on the original patent for the mouse:
[http://www.google.com/patents/US3541541](http://www.google.com/patents/US3541541)

PS: "SRI licensed the computer mouse technology to Apple, Xerox, and other
companies. The mouse became commercially viable in 1984, three years before
the patent's expiration." \- [http://www.sri.com/work/timeline-
innovation/timeline.php?tim...](http://www.sri.com/work/timeline-
innovation/timeline.php?timeline=business-entertainment#!&innovation=computer-
mouse-interactive-computing)

------
ZoF
I always assumed it was tilted slightly in order to have one of the sides of
the default cursors triangle be parallel to the side of the screen.

------
coley
I don't know if this went into the decision making process, but with the
cursor at an angle the OS can use the x,y coordinates of the cursor to find
it's target, instead of having to offset the coordinates to compensate for a
straight cursor.

I'm not sure if that's how cursors work.. just a thought.

edit: grammar is hard

~~~
marssaxman
Macintosh cursors were configurable right back to the beginning; the hot spot
could be anywhere in the cursor's 16x16 rectangle. The text insertion point
cursor had the hot spot centered and on the baseline, the crosshairs had it in
the center, and so on. I have heard that it was the same in Windows, from the
beginning. So the location of the arrow cursor's hotspot in the top left is a
result of that being the arrow's tip and not a cause of the arrow tip being
located there.

------
gchokov
There are so many little stuff left for ages due to technical limitations back
them. It's fascinating.

------
jere
It's not really a "historical" reason though. A cursor is still a very small
icon. It's pixel art. Choosing angles that look crisp is a foundation of
making pixel art and I don't think screen densities are high enough to ignore
that.

------
cl8ton
I was told a long time ago by someone who should know.

The tilt had a symbolic hidden meaning... It is pointing to the North-West to
MS headquarters in Redmond.

~~~
Someone
Yeah, that must have been the reason Xerox chose that pointing direction and
that Apple copied it: Redmond is exactly North-West from Palo Alto and
Cupertino (clearly, Apple didn't do maps yet in 1984)

------
sidcool
A very interesting fact! I never even thought about it. Now I cannot stop
thinking about all such small things. Great post.

------
dudus
Have we run out of questions for SE?

------
jokoon
still no way to change the cursors under mac os x ?

~~~
g_glitch
I've changed my cursors under OS X for a long time now. Check out
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HiServices.framework/Versions/A/Resources/cursors
for the special ones. (People make replacement packs that are drop-in
replacements for the cursor image files.)

For the main cursor, use a combination of Cursorcerer and HotMouse.

~~~
oneeyedpigeon
> Check out
> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HiServices.framework/Versions/A/Resources/cursors

Wow. Of all the good that OSX inherited from UNIX, _why_ did it have to wreck
any notion of a reasonable directory structure?

------
acex
or why is tilted from bottom-right to top-left. ;)

------
indubitably
NOTUSEFULSHUTDOWN

------
kimonos
Great question!

------
rckrd
I've always been confused as to the success of the computer mouse. It doesn't
seem like the ideal solution. Then again, neither do trackpads.

~~~
JadeNB
> I've always been confused as to the success of the computer mouse. It
> doesn't seem like the ideal solution. Then again, neither do trackpads.

Without meaning to be argumentative, what _would_ be ideal? In the absence of
an actual better solution, one can explain the success of an obviously sub-
optimal but _existing_ solution by "worse is better"
([https://en.wikipedia.org/wiki/Worse_is_better](https://en.wikipedia.org/wiki/Worse_is_better)).

~~~
simcop2387
Things that would appear ideal would be something like either a Light Pen or a
Touch screen. Mainly because they'd appear ideal since that's how we
interacted with things before computers, so it should enable us to work with
computers the same way that we interact with things of the past 5k years or
so. that said it's just appearances.

~~~
x0054
Touch screens where tried and rejected by the military early on because people
hands would get tired after a very short time interacting with a vertically
mounted touch screen. Horizontal touch screens have other usability
challenges.

~~~
smsm42
Plus, they get dirty, and resolution is much worse - try to make pixel-
resolution actions with touch, it's practically impossible. With the mouse,
much easier. And, replacing a cheap mouse is much better than replacing an
expensive high-resolution screen.

------
lallysingh
For HN, I expected a much deeper explanation than "it looked better on low res
displays.". This isn't worth our time.

~~~
valarauca1
Not all engineering decisions are based on large complex analysis, they don't
always have storied back room drama, not all design decisions are made with
hundreds of people sitting around analyzing user feed back polls.

Really often times it just comes to do one guy/gal trying something new flying
by the seat of his/her pants. And a few people like it so they keep it, and it
propagates.

