function drawRowLetter(l_points, offset) {
let connections = getRowConnections(l_points)
let all_connections = getRowConnections(all_points)
return `${all_connections.map((c, i) => {
let c1 = c[0][0]
let r1 = c[0][1]
let c2 = c[1][0]
let r2 = c[1][1]
let x1 = padding_x + radius * 2 * c1 + grid_space_x * c1 + radius + offset[0]
let x2 = padding_x + radius * 2 * c2 + grid_space_x * c2 + radius + offset[0]
let y1 = padding_y + radius * 2 * r1 + grid_space_y * r1 + radius + offset[1]
let y2 = padding_y + radius * 2 * r2 + grid_space_y * r2 + radius + offset[1]
})}
${connections.map((c, i) => {
let c1 = c[0][0]
let r1 = c[0][1]
let c2 = c[1][0]
let r2 = c[1][1]
let x1 = padding_x + radius * 2 * c1 + grid_space_x * c1 + radius + offset[0]
let x2 = padding_x + radius * 2 * c2 + grid_space_x * c2 + radius + offset[0]
let y1 = padding_y + radius * 2 * r1 + grid_space_y * r1 + radius + offset[1]
let y2 = padding_y + radius * 2 * r2 + grid_space_y * r2 + radius + offset[1]
return `<line x1=${x1} y1=${y1} x2=${x2} y2=${y2} stroke="white" stroke-width="2" />`
})}
${all_points.map((v, i) => {
if (v === 1) {
let c = i % points_x;
let r = Math.floor(i / points_x);
let x = padding_x + radius * 2 * c + grid_space_x * c + radius + offset[0]
let y = padding_y + radius * 2 * r + grid_space_y * r + radius + offset[1]
}
})}
${l_points.map((v, i) => {
if (v === 1) {
let c = i % points_x;
let r = Math.floor(i / points_x);
let x = padding_x + radius * 2 * c + grid_space_x * c + radius + offset[0]
let y = padding_y + radius * 2 * r + grid_space_y * r + radius + offset[1]
return `<circle cx="${x}" cy="${y}" r="${radius/1}" fill="white" />`
}
})}`
}