diff -cr qrcode.org/qrcode/src/jp/sourceforge/qrcode/codec/geom/Axis.java qrcode/qrcode/src/jp/sourceforge/qrcode/codec/geom/Axis.java *** qrcode.org/qrcode/src/jp/sourceforge/qrcode/codec/geom/Axis.java Sun Aug 21 22:40:06 2005 --- qrcode/qrcode/src/jp/sourceforge/qrcode/codec/geom/Axis.java Tue Jan 10 23:03:54 2006 *************** *** 31,54 **** public Point translate(int moveX, int moveY) { long dp = QRCodeImageReader.DECIMAL_POINT; Point point = new Point(); - int yf = 0; //, xf = 0 ? - if (moveX >= 0 & moveY >= 0) yf = 1; - else if (moveX < 0 & moveY >= 0) yf = -1; - else if (moveX >= 0 & moveY < 0) yf = -1; - else if (moveX < 0 & moveY < 0) yf = 1; //System.out.println((modulePitch * moveX) >> dp); int dx = (moveX == 0) ? 0 : (modulePitch * moveX) >> dp; int dy = (moveY == 0) ? 0 : (modulePitch * moveY) >> dp; ! if (dx != 0 && dy != 0) ! point.translate((dx * cos - dy * sin) >> dp, yf * (dx * cos + dy * sin) >> dp); ! else if (dy == 0) { ! if (dx < 0) yf = -yf; ! point.translate((dx * cos) >> dp, yf * (dx * sin) >> dp); ! } ! else if (dx == 0) { ! if (dy < 0) yf = -yf; ! point.translate(-yf * (dy * sin) >> dp, (dy * cos) >> dp); ! } point.translate(origin.getX(), origin.getY()); return point; --- 31,40 ---- public Point translate(int moveX, int moveY) { long dp = QRCodeImageReader.DECIMAL_POINT; Point point = new Point(); //System.out.println((modulePitch * moveX) >> dp); int dx = (moveX == 0) ? 0 : (modulePitch * moveX) >> dp; int dy = (moveY == 0) ? 0 : (modulePitch * moveY) >> dp; ! point.translate((dx * cos - dy * sin) >> dp, (dx * sin + dy * cos) >> dp); point.translate(origin.getX(), origin.getY()); return point; diff -cr qrcode.org/qrcode/src/jp/sourceforge/qrcode/codec/reader/pattern/FinderPattern.java qrcode/qrcode/src/jp/sourceforge/qrcode/codec/reader/pattern/FinderPattern.java *** qrcode.org/qrcode/src/jp/sourceforge/qrcode/codec/reader/pattern/FinderPattern.java Sun Aug 21 22:40:06 2005 --- qrcode/qrcode/src/jp/sourceforge/qrcode/codec/reader/pattern/FinderPattern.java Sun Feb 12 23:28:08 2006 *************** *** 590,598 **** for (int x = 0; x < 3; x++) { //targetX = finderX + ((moduleSize * (x-7)) >> QRCodeImageReader.DECIMAL_POINT); ! targetX = axis.translate(x - 7, 0).getX(); //targetY = finderY + ((moduleSize * (y-3)) >> QRCodeImageReader.DECIMAL_POINT); ! targetY = axis.translate(0, y - 3).getY(); versionInformation[x + y * 3] = image[targetX][targetY]; points[x + y * 3] = new Point(targetX, targetY); //System.out.println(points[x + y * 3]); --- 590,598 ---- for (int x = 0; x < 3; x++) { //targetX = finderX + ((moduleSize * (x-7)) >> QRCodeImageReader.DECIMAL_POINT); ! targetX = axis.translate(x - 7, y - 3).getX(); //targetY = finderY + ((moduleSize * (y-3)) >> QRCodeImageReader.DECIMAL_POINT); ! targetY = axis.translate(x - 7, y - 3).getY(); versionInformation[x + y * 3] = image[targetX][targetY]; points[x + y * 3] = new Point(targetX, targetY); //System.out.println(points[x + y * 3]); *************** *** 613,622 **** for (int x = 0; x < 6; x++) { for (int y = 0; y < 3; y++) { ! targetX = axis.translate(x - 3, 0).getX(); ! targetY = axis.translate(0, y - 7).getY(); versionInformation[y + x * 3] = image[targetX][targetY]; ! points[x + y * 3] = new Point(targetX, targetY); } } canvas.drawPoints(points, Color.LIGHTRED); --- 613,622 ---- for (int x = 0; x < 6; x++) { for (int y = 0; y < 3; y++) { ! targetX = axis.translate(x - 3, y - 7).getX(); ! targetY = axis.translate(x - 3, y - 7).getY(); versionInformation[y + x * 3] = image[targetX][targetY]; ! points[y + x * 3] = new Point(targetX, targetY); } } canvas.drawPoints(points, Color.LIGHTRED);