Renamed loop variables in QrCode.{drawFinderPattern(),drawAlignmentPattern()} for clarity, in all languages (but somewhat differently in C).

pull/39/merge
Project Nayuki 6 years ago
parent 440efef8bf
commit 87868d7920

@ -359,15 +359,15 @@ static void drawWhiteFunctionModules(uint8_t qrcode[], int version) {
} }
// Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules) // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)
for (int i = -4; i <= 4; i++) { for (int dy = -4; dy <= 4; dy++) {
for (int j = -4; j <= 4; j++) { for (int dx = -4; dx <= 4; dx++) {
int dist = abs(i); int dist = abs(dy);
if (abs(j) > dist) if (abs(dx) > dist)
dist = abs(j); dist = abs(dx);
if (dist == 2 || dist == 4) { if (dist == 2 || dist == 4) {
setModuleBounded(qrcode, 3 + j, 3 + i, false); setModuleBounded(qrcode, 3 + dx, 3 + dy, false);
setModuleBounded(qrcode, qrsize - 4 + j, 3 + i, false); setModuleBounded(qrcode, qrsize - 4 + dx, 3 + dy, false);
setModuleBounded(qrcode, 3 + j, qrsize - 4 + i, false); setModuleBounded(qrcode, 3 + dx, qrsize - 4 + dy, false);
} }
} }
} }
@ -379,9 +379,9 @@ static void drawWhiteFunctionModules(uint8_t qrcode[], int version) {
for (int j = 0; j < numAlign; j++) { for (int j = 0; j < numAlign; j++) {
if ((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0)) if ((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0))
continue; // Don't draw on the three finder corners continue; // Don't draw on the three finder corners
for (int k = -1; k <= 1; k++) { for (int dy = -1; dy <= 1; dy++) {
for (int l = -1; l <= 1; l++) for (int dx = -1; dx <= 1; dx++)
setModule(qrcode, alignPatPos[i] + l, alignPatPos[j] + k, k == 0 && l == 0); setModule(qrcode, alignPatPos[i] + dx, alignPatPos[j] + dy, dy == 0 && dx == 0);
} }
} }
} }

@ -270,10 +270,10 @@ void QrCode::drawVersion() {
void QrCode::drawFinderPattern(int x, int y) { void QrCode::drawFinderPattern(int x, int y) {
for (int i = -4; i <= 4; i++) { for (int dy = -4; dy <= 4; dy++) {
for (int j = -4; j <= 4; j++) { for (int dx = -4; dx <= 4; dx++) {
int dist = std::max(std::abs(i), std::abs(j)); // Chebyshev/infinity norm int dist = std::max(std::abs(dy), std::abs(dx)); // Chebyshev/infinity norm
int xx = x + j, yy = y + i; int xx = x + dx, yy = y + dy;
if (0 <= xx && xx < size && 0 <= yy && yy < size) if (0 <= xx && xx < size && 0 <= yy && yy < size)
setFunctionModule(xx, yy, dist != 2 && dist != 4); setFunctionModule(xx, yy, dist != 2 && dist != 4);
} }
@ -282,9 +282,9 @@ void QrCode::drawFinderPattern(int x, int y) {
void QrCode::drawAlignmentPattern(int x, int y) { void QrCode::drawAlignmentPattern(int x, int y) {
for (int i = -2; i <= 2; i++) { for (int dy = -2; dy <= 2; dy++) {
for (int j = -2; j <= 2; j++) for (int dx = -2; dx <= 2; dx++)
setFunctionModule(x + j, y + i, std::max(std::abs(i), std::abs(j)) != 1); setFunctionModule(x + dx, y + dy, std::max(std::abs(dy), std::abs(dx)) != 1);
} }
} }

@ -402,10 +402,10 @@ public final class QrCode {
// Draws a 9*9 finder pattern including the border separator, // Draws a 9*9 finder pattern including the border separator,
// with the center module at (x, y). Modules can be out of bounds. // with the center module at (x, y). Modules can be out of bounds.
private void drawFinderPattern(int x, int y) { private void drawFinderPattern(int x, int y) {
for (int i = -4; i <= 4; i++) { for (int dy = -4; dy <= 4; dy++) {
for (int j = -4; j <= 4; j++) { for (int dx = -4; dx <= 4; dx++) {
int dist = Math.max(Math.abs(i), Math.abs(j)); // Chebyshev/infinity norm int dist = Math.max(Math.abs(dy), Math.abs(dx)); // Chebyshev/infinity norm
int xx = x + j, yy = y + i; int xx = x + dx, yy = y + dy;
if (0 <= xx && xx < size && 0 <= yy && yy < size) if (0 <= xx && xx < size && 0 <= yy && yy < size)
setFunctionModule(xx, yy, dist != 2 && dist != 4); setFunctionModule(xx, yy, dist != 2 && dist != 4);
} }
@ -416,9 +416,9 @@ public final class QrCode {
// Draws a 5*5 alignment pattern, with the center module // Draws a 5*5 alignment pattern, with the center module
// at (x, y). All modules must be in bounds. // at (x, y). All modules must be in bounds.
private void drawAlignmentPattern(int x, int y) { private void drawAlignmentPattern(int x, int y) {
for (int i = -2; i <= 2; i++) { for (int dy = -2; dy <= 2; dy++) {
for (int j = -2; j <= 2; j++) for (int dx = -2; dx <= 2; dx++)
setFunctionModule(x + j, y + i, Math.max(Math.abs(i), Math.abs(j)) != 1); setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dy), Math.abs(dx)) != 1);
} }
} }

@ -276,10 +276,10 @@ var qrcodegen = new function() {
// Draws a 9*9 finder pattern including the border separator, // Draws a 9*9 finder pattern including the border separator,
// with the center module at (x, y). Modules can be out of bounds. // with the center module at (x, y). Modules can be out of bounds.
function drawFinderPattern(x, y) { function drawFinderPattern(x, y) {
for (var i = -4; i <= 4; i++) { for (var dy = -4; dy <= 4; dy++) {
for (var j = -4; j <= 4; j++) { for (var dx = -4; dx <= 4; dx++) {
var dist = Math.max(Math.abs(i), Math.abs(j)); // Chebyshev/infinity norm var dist = Math.max(Math.abs(dy), Math.abs(dx)); // Chebyshev/infinity norm
var xx = x + j, yy = y + i; var xx = x + dx, yy = y + dy;
if (0 <= xx && xx < size && 0 <= yy && yy < size) if (0 <= xx && xx < size && 0 <= yy && yy < size)
setFunctionModule(xx, yy, dist != 2 && dist != 4); setFunctionModule(xx, yy, dist != 2 && dist != 4);
} }
@ -290,9 +290,9 @@ var qrcodegen = new function() {
// Draws a 5*5 alignment pattern, with the center module // Draws a 5*5 alignment pattern, with the center module
// at (x, y). All modules must be in bounds. // at (x, y). All modules must be in bounds.
function drawAlignmentPattern(x, y) { function drawAlignmentPattern(x, y) {
for (var i = -2; i <= 2; i++) { for (var dy = -2; dy <= 2; dy++) {
for (var j = -2; j <= 2; j++) for (var dx = -2; dx <= 2; dx++)
setFunctionModule(x + j, y + i, Math.max(Math.abs(i), Math.abs(j)) != 1); setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dy), Math.abs(dx)) != 1);
} }
} }

@ -322,20 +322,20 @@ class QrCode(object):
def _draw_finder_pattern(self, x, y): def _draw_finder_pattern(self, x, y):
"""Draws a 9*9 finder pattern including the border separator, """Draws a 9*9 finder pattern including the border separator,
with the center module at (x, y). Modules can be out of bounds.""" with the center module at (x, y). Modules can be out of bounds."""
for i in range(-4, 5): for dy in range(-4, 5):
for j in range(-4, 5): for dx in range(-4, 5):
xx, yy = x + j, y + i xx, yy = x + dx, y + dy
if (0 <= xx < self._size) and (0 <= yy < self._size): if (0 <= xx < self._size) and (0 <= yy < self._size):
# Chebyshev/infinity norm # Chebyshev/infinity norm
self._set_function_module(xx, yy, max(abs(i), abs(j)) not in (2, 4)) self._set_function_module(xx, yy, max(abs(dy), abs(dx)) not in (2, 4))
def _draw_alignment_pattern(self, x, y): def _draw_alignment_pattern(self, x, y):
"""Draws a 5*5 alignment pattern, with the center module """Draws a 5*5 alignment pattern, with the center module
at (x, y). All modules must be in bounds.""" at (x, y). All modules must be in bounds."""
for i in range(-2, 3): for dy in range(-2, 3):
for j in range(-2, 3): for dx in range(-2, 3):
self._set_function_module(x + j, y + i, max(abs(i), abs(j)) != 1) self._set_function_module(x + dx, y + dy, max(abs(dy), abs(dx)) != 1)
def _set_function_module(self, x, y, isblack): def _set_function_module(self, x, y, isblack):

@ -367,12 +367,12 @@ impl QrCode {
// Draws a 9*9 finder pattern including the border separator, // Draws a 9*9 finder pattern including the border separator,
// with the center module at (x, y). Modules can be out of bounds. // with the center module at (x, y). Modules can be out of bounds.
fn draw_finder_pattern(&mut self, x: i32, y: i32) { fn draw_finder_pattern(&mut self, x: i32, y: i32) {
for i in -4 .. 5 { for dy in -4 .. 5 {
for j in -4 .. 5 { for dx in -4 .. 5 {
let xx: i32 = x + j; let xx: i32 = x + dx;
let yy: i32 = y + i; let yy: i32 = y + dy;
if 0 <= xx && xx < self.size && 0 <= yy && yy < self.size { if 0 <= xx && xx < self.size && 0 <= yy && yy < self.size {
let dist: i32 = std::cmp::max(i.abs(), j.abs()); // Chebyshev/infinity norm let dist: i32 = std::cmp::max(dy.abs(), dx.abs()); // Chebyshev/infinity norm
self.set_function_module(xx, yy, dist != 2 && dist != 4); self.set_function_module(xx, yy, dist != 2 && dist != 4);
} }
} }
@ -383,9 +383,9 @@ impl QrCode {
// Draws a 5*5 alignment pattern, with the center module // Draws a 5*5 alignment pattern, with the center module
// at (x, y). All modules must be in bounds. // at (x, y). All modules must be in bounds.
fn draw_alignment_pattern(&mut self, x: i32, y: i32) { fn draw_alignment_pattern(&mut self, x: i32, y: i32) {
for i in -2 .. 3 { for dy in -2 .. 3 {
for j in -2 .. 3 { for dx in -2 .. 3 {
self.set_function_module(x + j, y + i, std::cmp::max(i.abs(), j.abs()) != 1); self.set_function_module(x + dx, y + dy, std::cmp::max(dy.abs(), dx.abs()) != 1);
} }
} }
} }

@ -345,11 +345,11 @@ namespace qrcodegen {
// Draws a 9*9 finder pattern including the border separator, // Draws a 9*9 finder pattern including the border separator,
// with the center module at (x, y). Modules can be out of bounds. // with the center module at (x, y). Modules can be out of bounds.
private drawFinderPattern(x: int, y: int): void { private drawFinderPattern(x: int, y: int): void {
for (let i = -4; i <= 4; i++) { for (let dy = -4; dy <= 4; dy++) {
for (let j = -4; j <= 4; j++) { for (let dx = -4; dx <= 4; dx++) {
let dist: int = Math.max(Math.abs(i), Math.abs(j)); // Chebyshev/infinity norm let dist: int = Math.max(Math.abs(dy), Math.abs(dx)); // Chebyshev/infinity norm
let xx: int = x + j; let xx: int = x + dx;
let yy: int = y + i; let yy: int = y + dy;
if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size) if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)
this.setFunctionModule(xx, yy, dist != 2 && dist != 4); this.setFunctionModule(xx, yy, dist != 2 && dist != 4);
} }
@ -360,9 +360,9 @@ namespace qrcodegen {
// Draws a 5*5 alignment pattern, with the center module // Draws a 5*5 alignment pattern, with the center module
// at (x, y). All modules must be in bounds. // at (x, y). All modules must be in bounds.
private drawAlignmentPattern(x: int, y: int): void { private drawAlignmentPattern(x: int, y: int): void {
for (let i = -2; i <= 2; i++) { for (let dy = -2; dy <= 2; dy++) {
for (let j = -2; j <= 2; j++) for (let dx = -2; dx <= 2; dx++)
this.setFunctionModule(x + j, y + i, Math.max(Math.abs(i), Math.abs(j)) != 1); this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dy), Math.abs(dx)) != 1);
} }
} }

Loading…
Cancel
Save