## 5 Feasibility Study Through System Simulations
### Generation of Datasets of Fingerprints
#### 5.2.2 Generation of the Center Position Coordinates for Fixed Tiles  
The number and positions of fixed tiles are a function of the number of sub-tiles per side of the tile, \(N_{SS}\), and the side length of the sub-tile, \(S_{S}\). Prior to the generation of the datasets, the center position coordinates for the fixed tiles are determined. Pseudocode 1 shows the function \(FTileCenters()\), which is in charge of calculating the center position coordinates for the fixed tiles. It is noted that this function does not generate the actual tiles, but it just generates the coordinates of an imaginary grid that will hold the fixed tiles. The actual fixed tiles will be generated using another function. One function call is made to \(FTileCenters()\) (as will be explained in step 2 of the main execution flow of the simulator presented in Section 5.6.1). The function returns as the output a data structure with an arrangement of the fixed tiles' centers, for example, in the form of a vector, array, or list, for each coordinate, namely \(vCenterTilesPositionX\) and \(vCenterTilesPositionY\). These data structures are used next to generate datasets of fixed tiles in the function \(FFixedTiles()\) and to define the area allowed for generating the datasets of moving tiles in the function \(FMovingTiles()\). This function also calculates and returns as output the total number of tiles required to cover the whole positioning area, \(N_{T}\). ```
Input: \(N_{SS}\), \(S_{S}\)\(\triangleright\)\(N_{SS}\): Number sub-tiles per tile side; \(S_{S}\): side length of sub-tile in mm \(S_{T}\)\(\leftarrow\)\(N_{SS}\times S_{S}\)\(\triangleright\) Side length of the tile \(ScenarioLeftX\)\(\leftarrow\)\(1000\)\(\triangleright\) Scenario, left \(X\) coordinate in mm \(ScenarioRightX\)\(\leftarrow\)\(14000-St/2\)\(\triangleright\) Scenario, max. tile center right \(X\) coordinate in mm \(vCenterTilesPositionX\)\(\leftarrow\)\([\ ]\)\(\triangleright\) Vector/array/list to store tile center positions along X \(PointerTilePosition\)\(\leftarrow\)\(ScenarioLeftX+St/2\)\(\triangleright\) Points to each tile center position \(indexX\)\(\leftarrow\)\(0\)\(\triangleright\) Tile indexX while\(PointerTilePosition\)\(\leq\)\(ScenarioRightX\)do\(\triangleright\) While a new entire tile fits along X \(vCenterTilesPositionX[indexX]\)\(\leftarrow\)\(PointerTilePosition\)\(\triangleright\) Store tile center position \(PointerTilePosition\)\(\leftarrow\)\(PointerTilePosition+St\)\(\triangleright\) Next tile center position \(indexX\)\(\leftarrow\)\(indexX+1\) endwhile ScenarioBottomY\(\leftarrow\)\(1000\)\(\triangleright\) Scenario, bottom \(Y\) coordinate in mm \(ScenarioTopY\)\(\leftarrow\)\(6000-St/2\)\(\triangleright\) Scenario, max. tile center top \(Y\) coordinate in mm \(vCenterTilesPositionY\)\(\leftarrow\)\([\ ]\)\(\triangleright\) Vector/array/list to store tile center positions along Y \(PointerTilePosition\)\(\leftarrow\)\(ScenarioBottomY+St/2\)\(\triangleright\) Points to each tile center position \(indexY\)\(\leftarrow\)\(0\)\(\triangleright\) Tile indexY while\(PointerTilePosition\)\(\leq\)\(ScenarioTopY\)do\(\triangleright\) While a new entire tile fits along Y \(vCenterTilesPositionY[indexY]\)\(\leftarrow\)\(PointerTilePosition\)\(\triangleright\) Store tile center position \(PointerTilePosition\)\(\leftarrow\)\(PointerTilePosition+St\)\(\triangleright\) Next tile center position \(indexY\)\(\leftarrow\)\(indexY+1\) endwhile \(N_{T}\)\(\leftarrow\)\(indexX\times indexY\)\(\triangleright\) Total number of fixed tiles to fill the positioning area  Return \(vCenterTilesPositionX,vCenterTilesPositionY,N_{T}\)
```  
**Pseudocode 1** Function for calculating the center positions for fixed tiles - \(FTileCenters()\)It is noted that, in order to present a simple and compact structure for the simulator, the scenario dimensions for the area intended for positioning are hard-coded into the function.