⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axis.java

📁 qrcode的java开源版本
💻 JAVA
字号:
package jp.sourceforge.qrcode.geom;import jp.sourceforge.qrcode.reader.QRCodeImageReader;/** * This class designed to move target point based on independent axis. * It allows move target coordinate on rotated, scaled and gauche QR Code image */public class Axis {		int sin, cos;	int modulePitch;	Point origin;		public Axis(int[] angle, int modulePitch) {		this.sin = angle[0];		this.cos = angle[1];		this.modulePitch = modulePitch;		this.origin = new Point();	}		public void setOrigin(Point origin) {		this.origin = origin;	}		public void setModulePitch(int modulePitch) {		this.modulePitch = modulePitch;	}		public Point translate(Point offset) {		int moveX = offset.getX();		int moveY = offset.getY();		return this.translate(moveX, moveY);	}	public Point translate(Point origin, Point offset) {		setOrigin(origin);		int moveX = offset.getX();		int moveY = offset.getY();		return this.translate(moveX, moveY);	}	public Point translate(Point origin, int moveX, int moveY) {		setOrigin(origin);		return this.translate(moveX, moveY);	}	public Point translate(Point origin, int modulePitch, int moveX, int moveY) {		setOrigin(origin);		this.modulePitch = modulePitch;		return this.translate(moveX, moveY);	}		//older translate/*	public Point translate(int moveX, int moveY) {		long dp = QRCodeImageReader.DECIMAL_POINT;		Point point = new Point(0,0);		point.translate(origin.getX(), origin.getY());		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);			}		return point;	}	*/	//maeda's FIX	public Point translate(int moveX, int moveY) {		long dp = QRCodeImageReader.DECIMAL_POINT;		Point point = new Point();  		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());		//System.out.println((modulePitch * moveX) >> dp);		return point;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -