Consider these tidbits:
- An inch, as a result of however these things are decided in history, contains 72 points.
- Usually people are running Windows at a logical resolution of 96 dots per inch.
- Hmm, OK, we've got points, inches, and dots--three units to deal with here.
- GDI wants to know how many dots to draw, and the user is selecting points.
- Finally, the ratio of 72 points per inch / 96 dots per inch = 0.75 points per dot.
That 0.75 is unfortunate! It means that if we allow the user to choose points straight up, then the ideal rendering would draw on just part of a logical dot. It'd be nice if we could snap the entire rendering up or down to the nearest whole logical dot.
Ready? Here we go!
- 11:
- 11 points / 72 points per inch = 0.153 inches * 96 dots per inch = 14.667 dots, BARF!
- Let's round up to 15 dots,
- SO then 15 dots / 96 dots per inch * 72 points per inch = 11.25 points.
- 12:
- 12 / 72 * 96 = 16 dots.
- I can live with that, no fudging necessary.
- 16:
- 16 / 72 * 96 = 21.3333, BARF!
- Let's round down to 21 dots / 96 * 72 = 15.75, much nicer.
You get the idea.
Remember that these numbers will change if the user changes their logical resolution (96 dpi, 120 dpi, etc.)