# Glimmr Canvas-Based Drawing

## version 2/101030 by Erik Temple

**Section - Scaling rule for image-maps**

An element scaling rule for an image-map (called the grid) (this is the image-map scaling rule):

let imap-x be the desired tile-width of the grid;

let imap-y be the desired tile-height of the grid;

unless the asymmetrical scaling option is active:

now the scaled tile-width of the grid is imap-x real times the scaling factor of current window real times the scaling factor of the grid as an integer;

now the scaled tile-height of the grid is imap-y real times the scaling factor of current window real times the scaling factor of the grid as an integer;

otherwise:

now the scaled tile-width of the grid is imap-x real times the scaling factor of current window real times the x-scaling factor of the grid as an integer;

now the scaled tile-height of the grid is imap-y real times the scaling factor of current window real times the y-scaling factor of the grid as an integer;

if grid is center-aligned:

now the win-x of the grid is win-x - (imap-x * scaled tile-width) / 2;

now the win-y of the grid is win-y - (imap-y * scaled tile-height) / 2;

if grid is right-aligned:

now the win-x of grid is win-x - (imap-x * scaled tile-width);

now the win-y of grid is win-y - (imap-y * scaled tile-height);

continue.

To decide which number is the desired tile-width of (grid - an image-map):

if the grid is a tileset image-map:

if the tile-width override of the grid is greater than 0:

decide on the tile-width override of the grid;

otherwise:

decide on the tile-width of the associated tileset of the grid;

if the grid is a direct image-map:

decide on the tile-width of the grid.

To decide which number is the desired tile-height of (grid - an image-map):

if the grid is a tileset image-map:

if the tile-height override of the grid is greater than 0:

decide on the tile-height override of the grid;

otherwise:

decide on the tile-height of the associated tileset of the grid;

if the grid is a direct image-map:

decide on the tile-height of the grid.