**loops**and

**conditional statement**.

#### 2- Algorithm

As shown in Fig.1, a chessboard is a square containing 8x8 = 64 cells colored in white or black.In our algorithm, the different cells are numbered by their X-Y coordinates from 0 to 7 (Fig. 1). Thus, the upper left corner is (0,0) and the lower right is (7,7).

Fig.1: Chessboard with the XY coordinates of the cells |

What about the cell color? If you sum the x- and y-coordinates of a cell and if this sum is even then the color is white ... otherwise it is black. Ex: The cell (3,4) is black because 3+4 = 7 which is odd, similarly, cell (7,5) is white (7+5=12, an even number).

#### 3- Script: version 1.0

**First**, don't type all the code, open the

*Recorder*and create a 512x512 8-bit image with a black background, then click on 'Create' ... and let's go.

**Second**, we need two loops: a loop to scan the X-coordinate and another one for the Y-coordinates. They are nested (the X-loop is inside the Y-loop).

**Third**, to draw the cells:

- The drawing function is
*fillRect(x,y,w,h)* - The width and height are equal to 512/8 = 64 pixels
- The tricky part is the assignment of the X-Y coordinates of each cell, because they depend of the cell size.

**Fourth**, to assign the good color, we have to check the parity (even or odd) of the X-Y coords sum. This is done by looking at the remainder after a division by 2. If this remainder is equal to zero, the sum is even, otherwise it's odd. In ImageJ, this operator (modulo) is the percent sign ('%').

+++ IJ snippet: chessboard_v1_imagej.ijm +++

+++ End of IJ snippet +++

#### 4- Conclusion

Of course, there are many different ways to write a script even for a simple task like drawing a chessboard (see Parts 2 and 3).If you find a shorter, smarter way to draw a chessboard in ImageJ, you are welcome to share your code.

## No comments:

## Post a Comment