Ab Version 2 benötigt man zusätzliche Orientierungshilfen, die sogenannten "Alignments".
Es sind 5 auf 5 Einheiten große Quadrate (außen schwarz, dann weiß, innen ein schwarzes Kästchen).
Die Spalten- und Zeilen-Positionen des innersten schwarzen Kästchens berechnet man wie folgt:

Gefunden habe ich diese Routine vom user "jgosar" bei "Stackoverflow" unter "Calculating the position of QR Code alignment patterns"


private int[] getAlignmentCoords(int version)
{
      if (version <= 1) { return new int[0]; } // leeres Rückgabearray NUR bei Version 1
     
      // für Version > 1
      int anz = (version / 7) + 2;   // Anzahl der Werte im Ergebnisfeld (möglich sind 2 bis 7)
      int[] ergebnis = new int[anz];
      ergebnis[0] = 6;
      ergebnis[anz - 1] = 4 * version + 10; // vom rechten Rand aus das 7. Kästchen
      if (anz == 2) { return ergebnis; } // Ende für Version 2 ... 6 mit 2 Rückgabewerten
     
      // weiter nur für Version >= 7
      ergebnis[anz - 2] = 2 * ((ergebnis[0] + ergebnis[anz - 1] * (anz - 2)) / ((anz - 1) * 2));

            // nicht kürzen!!! INT-Divisionen
            // Fehler im Vergleich zur Thonky-Tabelle bei Version 32: anz=6; e[0]=6; e[5]=138;
            // e[4]=2*[ (6+138*4)/(5*2) ] = 2 *[558/10] = 2*55 = 110; 112 wäre richtig

            if (version == 32) ergebnis[anz - 2] = 112;

            // jetzt stimmen alle Werte mit der Thonky-Tabelle überein

      if (anz == 3) { return ergebnis; } // Ende für Version 7 ... 13 mit 3 Rückgabewerten (RW)
     
      // weiter nur für Version >= 14
      int schrittweite = ergebnis[anz - 1] - ergebnis[anz - 2];
            // Position vom rechten (letzten) minus Position vom vorletzten Alignment (s.o.)
      for (int i = anz - 3; i > 0; i--)
            ergebnis[i] = ergebnis[i + 1] - schrittweite; // von rechts nach links auffüllen
      return ergebnis; //   4 RW (Version 14..20); 5 RW (21..27); 6 RW (28..34); 7 RW (35..40)
}


Beispiel mit Version 11: Dabei gibt es 17 + 4*11 Kästchen (61 K.) pro Zeile/Spalte
      anz ergibt 11/7 + 2 = 1 + 2 = 3; Vorsicht: Integerdivision ohne Rest!
      ergebnis[0] = 6;
      ergebnis[2] = 4 * 11 + 10 = 54
      ergebnis[1] = 2 * ( 6 + 54*1) / (2*2) = 30

      Rückgabe des Arrays mit den Werten 6, 30 und 54

Damit lassen sich die Alignmentmitten über alle Kombinationen bestimmen (sie dürfen nicht in einem Finderbereich liegen --> die geklammerten Werte sind nicht erlaubt):
Zeile   6 und Spalten (6) 30 (54)
Zeile 30 und Spalten  6 30   54
Zeile 54 und Spalten (6) 30   54

Version 11
Das Muster für Version 11 sähe also so aus!

Spaltennummern rot; Zeilennummern blau



Eine schöne Tabelle findet Ihr bei Thonky.com:
Alignment-Positionen

Bei der Version 32 (Formel-Fehler s.o.) sind die Werte der Thonky-Tabelle "vernünftiger" als bei der obigen Formel - ohne die Korrektur! Mit der kleinen Korrekturzeile stimmt dann alles! Vorausgesetzt, dass die Werte der Thonky-Tabelle in Ordnung sind.