diff --git a/posts/ideal-forms.post b/posts/ideal-forms.post index 212f73ec71c15d9e9cea0d6bd2dee6280ea1b5cc..2c05fb155541c73ab8e54fb33bf01c7e72f3cca5 100644 --- a/posts/ideal-forms.post +++ b/posts/ideal-forms.post @@ -126,7 +126,7 @@ rectangle coordinates are `[25,10], [30,15]`. * MDPI display device units are dip and they match native units of our choosing. No transformation is required. - ![Graft drawing](https://common-lisp.net/project/mcclim/static/media/ideal-forms/mdpi.png) + ![Graft drawing](https://common-lisp.net/project/mcclim/static/media/ideal-forms/mdpi.png) * Some old displays have density 72PPI. Not all coordinates map exactly to pixels - we need to round them[^3]. Notice that border is thicker and that @@ -138,26 +138,26 @@ rectangle coordinates are `[25,10], [30,15]`. desktops. Almost all coordinates map perfectly on this screen. Notice the approximation of the right side of the violet rectangle. - ![Lower DPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/72dpi-96dpi-sbs.png) + ![Lower DPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/72dpi-96dpi-sbs.png) * Fact that the screen has higher density doesn't mean that coordinates mapping perfectly on a lower density screen will map well to a higher density one. Take this HDPI screen. Almost all coordinates are floats while on the MDPI display they had all integer values. - ![HDPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/hdpi.png) + ![HDPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/hdpi.png) * Higher resolution makes rectangles look better (borderline is thinner and distortions are less visible to the eye). Here is XXXHDPI: - ![XXXHDPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/xxxhdpi.png) + ![XXXHDPI](https://common-lisp.net/project/mcclim/static/media/ideal-forms/xxxhdpi.png) * Some printers have a really high DPI, here is imaginary 2560 DPI printer. Funnily enough its accuracy exceeds our screen density so the red border which is meant to show the "ideal" rectangle is a little off (it's fine if we scale the image though). - ![HQ Printer](https://common-lisp.net/project/mcclim/static/media/ideal-forms/printer.png) + ![HQ Printer](https://common-lisp.net/project/mcclim/static/media/ideal-forms/printer.png) * Until now we've seen some screens with square pixels (or dots). Let's take a look at something with a really low density - a character terminal. To make @@ -165,7 +165,7 @@ rectangle coordinates are `[25,10], [30,15]`. character (too small to be seen by a human eye). Notice that the real size of the rectangles is still similar. - ![Character terminal](https://common-lisp.net/project/mcclim/static/media/ideal-forms/console.png) + ![Character terminal](https://common-lisp.net/project/mcclim/static/media/ideal-forms/console.png) It is time to deal with `graphics` orientation (Y-axis grows towards the top). An imaginary plotter with 80DPI resolution will be used to illustrate two @@ -178,13 +178,13 @@ important to know where we start the drawing. print on. We do preserve the real size but we don't preserve the image orientation – cyan rectangle should be higher on the plot. - ![Plotter (bad transformation)](https://common-lisp.net/project/mcclim/static/media/ideal-forms/plotter-wrong-sbs.png) + ![Plotter (bad transformation)](https://common-lisp.net/project/mcclim/static/media/ideal-forms/plotter-wrong-sbs.png) * Correct transformation involves reverting Y axis and translating objects by the screen height. See the correct transformation (on 80DPI and on MDPI plotter). - ![80DPI and MDPI plotters](https://common-lisp.net/project/mcclim/static/media/ideal-forms/plotters.png) + ![80DPI and MDPI plotters](https://common-lisp.net/project/mcclim/static/media/ideal-forms/plotters.png) [^7]: the Ideal border is composed of lines which are 1-dimensional objects which doesn't occupy any space. Red border in drawings marks "ideal" object