📄 qrcodeimagereader.java
字号:
axis.setModulePitch(modulePitch.left);
axis.setOrigin(baseLineY.getP1());
baseLineY.setP1(axis.translate(-3, -3));
axis.setModulePitch(modulePitch.left);
axis.setOrigin(baseLineY.getP2());
baseLineY.setP2(axis.translate(3, -3));
//baseLineX.translate(1,1);
//baseLineY.translate(1,1);
samplingGrid.initGrid(0, 0, sqrtNumAreaModules, sqrtNumAreaModules);
for (int i = 0; i < sqrtNumAreaModules; i++) {
gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());
axis.setOrigin(gridLineX.getP1());
axis.setModulePitch(modulePitch.top);
gridLineX.setP1(axis.translate(i,0));
axis.setOrigin(gridLineX.getP2());
axis.setModulePitch(modulePitch.top);
gridLineX.setP2(axis.translate(i,0));
gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
axis.setOrigin(gridLineY.getP1());
axis.setModulePitch(modulePitch.left);
gridLineY.setP1(axis.translate(0,i));
axis.setOrigin(gridLineY.getP2());
axis.setModulePitch(modulePitch.left);
gridLineY.setP2(axis.translate(0,i));
samplingGrid.setXLine(0,0,i,gridLineX);
samplingGrid.setYLine(0,0,i,gridLineY);
}
for (int ay = 0; ay < samplingGrid.getHeight(); ay++) {
for (int ax = 0; ax < samplingGrid.getWidth();ax++) {
canvas.drawLines(samplingGrid.getXLines(ax,ay), Color.BLUE);
canvas.drawLines(samplingGrid.getYLines(ax,ay), Color.BLUE);
}
}
return samplingGrid;
}*/
//sampllingGrid[areaX][areaY][direction(x=0,y=1)][EachLines]
/* SamplingGrid getSamplingGrid2_6(FinderPattern finderPattern, AlignmentPattern alignmentPattern) {
Point centers[][] = alignmentPattern.getCenter();
centers[0][0] = finderPattern.getCenter(FinderPattern.UL);
centers[1][0] = finderPattern.getCenter(FinderPattern.UR);
centers[0][1] = finderPattern.getCenter(FinderPattern.DL);
int sqrtNumModules = finderPattern.getSqrtNumModules(); //一辺当たりのモジュール数を得る
SamplingGrid samplingGrid = new SamplingGrid(1);
Line baseLineX, baseLineY, gridLineX, gridLineY;
int logicalDistance = alignmentPattern.getLogicalDistance();
Axis axis = new Axis(finderPattern.getAngle(), finderPattern.getModuleSize());
ModulePitch modulePitch = new ModulePitch(); //top left bottom rightの順に格納
modulePitch.top = getAreaModulePitch(centers[0][0], centers[1][0], logicalDistance + 6);
modulePitch.left = getAreaModulePitch(centers[0][0], centers[0][1], logicalDistance + 6);
axis.setModulePitch(modulePitch.top);
axis.setOrigin(centers[0][1]);
modulePitch.bottom = getAreaModulePitch(axis.translate(0, -3), centers[1][1], logicalDistance + 3);
axis.setModulePitch(modulePitch.left);
axis.setOrigin(centers[1][0]);
modulePitch.right = getAreaModulePitch(axis.translate(-3, 0), centers[1][1], logicalDistance + 3);
//X軸に垂直の基線(一般に縦)
baseLineX = new Line();
baseLineY = new Line();
axis.setOrigin(centers[0][0]);
modulePitch.top = getAreaModulePitch(centers[0][0], centers[1][0], logicalDistance + 6);
modulePitch.left = getAreaModulePitch(centers[0][0], centers[0][1], logicalDistance + 6);
axis.setModulePitch(modulePitch.top);
axis.setOrigin(centers[0][1]);
modulePitch.bottom = getAreaModulePitch(axis.translate(0,-3), centers[1][1], logicalDistance + 3);
axis.setModulePitch(modulePitch.left);
axis.setOrigin(centers[1][0]);
modulePitch.right = getAreaModulePitch(axis.translate(-3,0), centers[1][1], logicalDistance + 3);
axis.setOrigin(centers[0][0]);
axis.setModulePitch(modulePitch.top);
baseLineX.setP1(axis.translate(-3,-3));
axis.setModulePitch(modulePitch.left);
baseLineY.setP1(axis.translate(-3,-3));
axis.setOrigin(centers[0][1]);
axis.setModulePitch(modulePitch.bottom);
baseLineX.setP2(axis.translate(-3,3));
axis.setOrigin(centers[1][0]);
axis.setModulePitch(modulePitch.right);
baseLineY.setP2(axis.translate(3,-3));
baseLineX.translate(1,1);
baseLineY.translate(1,1);
samplingGrid.initGrid(0, 0, sqrtNumModules, sqrtNumModules);
for (int i = 0; i < sqrtNumModules; i++) {
gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());
axis.setOrigin(gridLineX.getP1());
axis.setModulePitch(modulePitch.top);
gridLineX.setP1(axis.translate(i,0));
axis.setOrigin(gridLineX.getP2());
axis.setModulePitch(modulePitch.bottom);
gridLineX.setP2(axis.translate(i,0));
gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
axis.setOrigin(gridLineY.getP1());
axis.setModulePitch(modulePitch.left);
gridLineY.setP1(axis.translate(0,i));
axis.setOrigin(gridLineY.getP2());
axis.setModulePitch(modulePitch.right);
gridLineY.setP2(axis.translate(0,i));
samplingGrid.setXLine(0,0,i,gridLineX);
samplingGrid.setYLine(0,0,i,gridLineY);
}
for (int ay = 0; ay < samplingGrid.getHeight(); ay++) {
for (int ax = 0; ax < samplingGrid.getWidth();ax++) {
canvas.drawLines(samplingGrid.getXLines(ax,ay), java.awt.Color.BLUE);
canvas.drawLines(samplingGrid.getYLines(ax,ay), java.awt.Color.BLUE);
}
}
return samplingGrid;
}
//for version 7-13
SamplingGrid getSamplingGrid7_13(FinderPattern finderPattern, AlignmentPattern alignmentPattern) {
Point centers[][] = alignmentPattern.getCenter();
centers[0][0] = finderPattern.getCenter(FinderPattern.UL);
centers[2][0] = finderPattern.getCenter(FinderPattern.UR);
centers[0][2] = finderPattern.getCenter(FinderPattern.DL);
int sqrtNumModules = finderPattern.getSqrtNumModules(); //一辺当たりのモジュール数を得る
int sqrtNumArea = 2;
int sqrtNumAreaModules = sqrtNumModules / sqrtNumArea;
sqrtNumAreaModules++;
SamplingGrid samplingGrid = new SamplingGrid(sqrtNumArea);
Line baseLineX, baseLineY, gridLineX, gridLineY;
int logicalDistance = alignmentPattern.getLogicalDistance();
Axis axis = new Axis(finderPattern.getAngle(), finderPattern.getModuleSize());
ModulePitch modulePitch;
for (int ay = 0; ay < sqrtNumArea; ay++) {
for (int ax = 0; ax < sqrtNumArea; ax++) {
modulePitch = new ModulePitch(); //top left bottom rightの順に格納
baseLineX = new Line();
baseLineY = new Line();
axis.setModulePitch(finderPattern.getModuleSize());
if (ax == 0 && ay == 0) {
axis.setOrigin(centers[0][0]);
modulePitch.top = getAreaModulePitch(axis.translate(0,3), centers[1][0], logicalDistance + 3);
modulePitch.left = getAreaModulePitch(axis.translate(3,0), centers[0][1], logicalDistance + 3);
axis.setModulePitch(modulePitch.top);
modulePitch.bottom = getAreaModulePitch(centers[0][1], centers[1][1], logicalDistance);
axis.setModulePitch(modulePitch.left);
modulePitch.right = getAreaModulePitch(centers[1][0], centers[1][1], logicalDistance);
axis.setModulePitch(modulePitch.top);
baseLineX.setP1(axis.translate(-3,-3));
axis.setModulePitch(modulePitch.left);
baseLineY.setP1(axis.translate(-3,-3));
axis.setOrigin(centers[0][1]);
axis.setModulePitch(modulePitch.bottom);
baseLineX.setP2(axis.translate(-6,0));
axis.setOrigin(centers[1][0]);
axis.setModulePitch(modulePitch.right);
baseLineY.setP2(axis.translate(0,-6));
}
else if (ax == 1 && ay == 0) {
axis.setOrigin(centers[1][0]);
modulePitch.top = getAreaModulePitch(axis.translate(0,-3), centers[2][0], logicalDistance + 3);
modulePitch.left = getAreaModulePitch(centers[1][0], centers[1][1], logicalDistance);
axis.setModulePitch(modulePitch.top);
modulePitch.bottom = getAreaModulePitch(centers[1][1], centers[2][1], logicalDistance);
axis.setModulePitch(modulePitch.left);
axis.setOrigin(centers[2][0]);
modulePitch.right = getAreaModulePitch(axis.translate(-3,0), centers[2][1], logicalDistance + 3);
axis.setOrigin(centers[1][0]);
axis.setModulePitch(modulePitch.left);
baseLineX.setP1(axis.translate(0,-6));
baseLineY.setP1(axis.translate(0,-6));
baseLineX.setP2(centers[1][1]);
axis.setOrigin(centers[2][0]);
axis.setModulePitch(modulePitch.right);
baseLineY.setP2(axis.translate(3,-3));
}
else if (ax == 0 && ay == 1) {
modulePitch.top = getAreaModulePitch(centers[0][1], centers[1][1], logicalDistance);
axis.setOrigin(centers[0][2]);
modulePitch.left = getAreaModulePitch(centers[0][1], axis.translate(3,0), logicalDistance + 3);
axis.setModulePitch(modulePitch.top);
modulePitch.bottom = getAreaModulePitch(axis.translate(0,-3), centers[1][2], logicalDistance + 3);
axis.setModulePitch(modulePitch.bottom);
modulePitch.right = getAreaModulePitch(centers[1][1], centers[1][2], logicalDistance);
axis.setOrigin(centers[0][1]);
axis.setModulePitch(modulePitch.top);
baseLineX.setP1(axis.translate(-6,0));
baseLineY.setP1(axis.translate(-6,0));
axis.setOrigin(centers[0][2]);
axis.setModulePitch(modulePitch.bottom);
baseLineX.setP2(axis.translate(-3, 3));
baseLineY.setP2(centers[1][1]);
}
else if (ax == 1 && ay == 1) {
modulePitch.top = getAreaModulePitch(centers[1][1], centers[2][1], logicalDistance);
modulePitch.left = getAreaModulePitch(centers[1][1], centers[1][2], logicalDistance);
modulePitch.bottom = getAreaModulePitch(centers[1][2], centers[2][2], logicalDistance);
modulePitch.right = getAreaModulePitch(centers[2][1], centers[2][2], logicalDistance);
baseLineX.setP1(centers[1][1]);
baseLineY.setP1(centers[1][1]);
axis.setOrigin(centers[1][2]);
axis.setModulePitch(modulePitch.left);
baseLineX.setP2(axis.translate(0,6));
axis.setOrigin(centers[2][1]);
axis.setModulePitch(modulePitch.top);
baseLineY.setP2(axis.translate(6,0));
}
samplingGrid.initGrid(ax,ay, sqrtNumAreaModules, sqrtNumAreaModules);
for (int i = 0; i < sqrtNumAreaModules; i++) {
gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());
axis.setOrigin(gridLineX.getP1());
axis.setModulePitch(modulePitch.top);
gridLineX.setP1(axis.translate(i,0));
axis.setOrigin(gridLineX.getP2());
axis.setModulePitch(modulePitch.bottom);
gridLineX.setP2(axis.translate(i,0));
gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
axis.setOrigin(gridLineY.getP1());
axis.setModulePitch(modulePitch.left);
gridLineY.setP1(axis.translate(0,i));
axis.setOrigin(gridLineY.getP2());
axis.setModulePitch(modulePitch.right);
gridLineY.setP2(axis.translate(0,i));
samplingGrid.setXLine(ax,ay,i,gridLineX);
samplingGrid.setYLine(ax,ay,i,gridLineY);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -