from Hacker News

Why is the mouse cursor slightly tilted and not straight?

by attheodo on 2/17/14, 1:36 PM with 103 comments

  • by eterm on 2/17/14, 2:04 PM

    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.

  • by darkmighty on 2/17/14, 2:58 PM

    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)
  • by ebbv on 2/17/14, 2:14 PM

    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.
  • by agumonkey on 2/17/14, 2:42 PM

    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 ( I love the non flat keys and the 0, 00, 000 series )

  • by Stratoscope on 2/17/14, 7:18 PM

    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

    The answer cites this Reddit comment as its source:

    http://www.reddit.com/r/explainlikeimfive/comments/1qhzym/wh...

    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...

    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...

    and a right-pointing arrow:

    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...

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

    http://users.rcn.com/crfriend/museum/doco/DG/Nova/base-instr...

    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. :-)

  • by ii on 2/17/14, 5:49 PM

    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.
  • by memracom on 2/17/14, 9:05 PM

    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.

  • by oneeyedpigeon on 2/17/14, 2:14 PM

    <pedantry>pointer</pedantry>
  • by Aoyagi on 2/17/14, 2:58 PM

    I tried a straight upwards cursor once. It felt terrible. The tilt gives the cursor "extended hand" feel.
  • by GoofballJones on 2/17/14, 2:40 PM

    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.

  • by ck2 on 2/17/14, 2:36 PM

    We owe so much to xerox, did they ever make money off all that R&D ?
  • by ZoF on 2/17/14, 10:40 PM

    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.
  • by coley on 2/17/14, 5:38 PM

    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

  • by gchokov on 2/17/14, 3:19 PM

    There are so many little stuff left for ages due to technical limitations back them. It's fascinating.
  • by jere on 2/17/14, 9:12 PM

    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.
  • by cl8ton on 2/17/14, 7:24 PM

    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.

  • by sidcool on 2/17/14, 3:38 PM

    A very interesting fact! I never even thought about it. Now I cannot stop thinking about all such small things. Great post.
  • by dudus on 2/17/14, 5:09 PM

    Have we run out of questions for SE?
  • by jokoon on 2/17/14, 4:41 PM

    still no way to change the cursors under mac os x ?
  • by acex on 2/17/14, 9:41 PM

    or why is tilted from bottom-right to top-left. ;)
  • by indubitably on 2/18/14, 12:59 AM

    NOTUSEFULSHUTDOWN
  • by kimonos on 2/18/14, 12:51 AM

    Great question!
  • by rckrd on 2/17/14, 5:29 PM

    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.
  • by lallysingh on 2/17/14, 2:41 PM

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