「java平移矩阵」java移位
今天给各位分享java平移矩阵的知识,其中也会对java移位进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java编程的矩阵变换问题
/*我的想法是,先把二维矩阵转换成一维矩阵,这个循环一下就可以了,然后把输入的二维位置也转换成一维的位置,依此往前替换,补0,然后把这个一维矩阵再转换成二维矩阵**/
public static void main(String[] args) {
int[][] erwei = new int[][]{{1,10,3},{4,55,6},{73,8,9}};
int[] yiwei = toyiwei(erwei);
int x=1,y=2,num=0;
//要移动的元素在一维矩阵上的位置
num = (y-1)*erwei.length+(x-1);
//替换
for(int i=num;iyiwei.length-1;i++){
yiwei[i] = yiwei[i+1];
}
//补0
yiwei[yiwei.length-1]=0;
//转换为二维矩阵
erwei = toerwei(yiwei,erwei.length,erwei[0].length);
//打印
for(int i=0;ierwei.length;i++){
for(int j=0;jerwei[i].length;j++){
System.out.print(erwei[i][j]+" ");
}
System.out.println();
}
}
//二维矩阵转换成一维矩阵
static int[] toyiwei(int[][] erwei)
{
int[] rs = new int[erwei.length*erwei[0].length];
for(int i=0;ierwei.length;i++){
for(int j=0;jerwei[i].length;j++){
rs[i*erwei.length+j] = erwei[i][j];
}
}
return rs;
}
//一维矩阵转换成二维矩阵
static int[][] toerwei(int[] yiwei,int a,int b)
{
int[][] erwei = new int[a][b];
for(int i=0;ia;i++){
for(int j=0;jb;j++){
erwei[i][j]=yiwei[i*a+j];
}
}
return erwei;
}
JAVA android 矩阵 怎么设置坐标
1、设置图片位置坐标
matrix.postTranslate(x,y) ——这个(x,y)为图片左上角的位置
2、设置图片图片中心点为中心旋转
matrix.postRotate(角度, x, y);——这个(x,y)为图片中心点的位置
3、渲染图片
canvas.drawBitmap( BIT , matrix , new Paint());
java 动态规划矩阵多少种走法
import java.util.Scanner;
public class zhidao3
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
int out[] = new int[T];
scanner.nextLine();
for(int t=0;tT;t++)
{
String a = scanner.nextLine();
char[] ch=a.toCharArray();
int f[][]= new int[ch.length+1][2];
if (ch[0]='Z'ch[0]='A')
{
f[0][1]=2;
f[0][0]=2;
}
if (ch[0]='z'ch[0]='a')
{
f[0][1]=1;
f[0][0]=1;
}
for(int i=1 ;i=ch.length;i++)
{
if (ch[i-1]='Z'ch[i-1]='A')
{
f[i][0] = f[i-1][1] + 2;
f[i][1] = f[i-1][1] + 1;
}
if(ch[i-1]='z'ch[i-1]='a')
{
f[i][0] = f[i-1][0] + 1;
f[i][1] = f[i-1][0] + 2;
}
}
out[t] = Math.min(f[ch.length-1][0],f[ch.length-1][1]);
}
for(int t=0;tT;t++){
System.out.println(out[t]);//最后统一输出
}
scanner.close();
}
}
用JAVA编写矩阵
public static void main(String[] args) throws Exception {
print(create(getNum()));
}
private static int getNum() {
Scanner scanner = new Scanner(System.in);
int n = 0;
do {
System.out.println("请输入要生成的阶数:");
String input = scanner.next();
if (isDigital(input)) {
n = Integer.parseInt(input);
if (n = 0) {
System.out.println("阶数必须大于0");
}
}
} while (n == 0);
return n;
}
private static int[][] create(int n) {
int[][] num = new int[n][n];
int ax = 1, ay = 0, x = 0, y = 0;
for (int m = 1; m = n * n; m++) {
num[x][y] = m;
int tmpx = x + ax;
int tmpy = y + ay;
if (tmpx = n || tmpx 0 || tmpy = n || tmpy 0 || num[tmpx][tmpy] != 0) {
if (ax == 0) {
ax = -ay;
ay = 0;
} else if (ay == 0) {
ay = ax;
ax = 0;
}
}
x += ax;
y += ay;
}
return num;
}
private static void print(int[][] num) {
int length = String.valueOf(num.length * num.length).length();
for (int i = 0; i num.length; i++) {
for (int j = 0; j num[i].length; j++) {
String tmp = String.valueOf(num[i][j]);
while (tmp.length() length) {
tmp = " " + tmp;
}
System.out.print(tmp + " ");
}
System.out.println();
}
}
private static boolean isDigital(String input) {
if (input == null || input.length() == 0) return false;
for (int i = 0; i input.length(); i++) {
char ch = input.charAt(i);
if (!Character.isDigit(ch)) {
System.out.println("输入的阶数必须为数字");
return false;
}
}
return true;
}
运行时输入要生成的阶数就可以了,比如生成问题上的矩阵输入4就可以了。
java 矩阵问题
页面方面 你可以通过一个表格来实现矩阵
然后当提交时利用javascript把矩阵数据组织成JSON数据格式,传送到后台,后台解析JSON入库。
简单来讲就是这样了,
前台:需要你用javascript实现一个可以加行加列的表格。
后台:解析JSON的话有现成的jar包,然后就是动态拼SQL了。
如果你是的是hibernate的话后台需要横表与纵表的转换,Bean的属性应该是
1、行号
2、列号
3、值
好像说的有点混乱,呵呵
java循环矩阵移位
import java.util.Scanner;
public class FiveJuZheng {
public static void main(String[] args) {
int[][] arr = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },
{ 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },
{ 21, 22, 23, 24, 25 } };
int x = 0 , y = 0;
boolean flag = true;
Scanner sc = new Scanner(System.in);
do {
System.out.println("请输入两个位移量(注:不能超过5或者-5,用空格分开)");
String readline = sc.nextLine();
String[] numbers = readline.split(" ");
if(numbers.length 2){
System.out.println("警告!输入有误:少于两个数!");
continue;
}
x = Integer.parseInt(numbers[0]);
y = Integer.parseInt(numbers[1]);
if(numbers.length == 2 x 5 x -5 y 5 y -5){
flag = false;
}else{
System.out.println("警告!输入有误:数值须在(-5 ,5)内,不包括-5和5!");
}
} while (flag);
arr = xidc(arr, x);
arr = yidc(arr, y);
for (int i = 0; i 5; i++) {
for (int j = 0; j 5; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
/**
* 处理数组下沉
* @param arr 源数组
* @param x 下沉行数
* @return 下沉后的数组
*/
private static int[][] xidc(int[][] arr, int x) {
int[] temp = new int[5];
if (x 0) {
x = 5 + x; //输入为负时换成对应的正数行 上浮2行 等于 下沉3行
}
for (int k = 0; k x; k++) {
for (int i = 4; i 0; i--) {
int line = i - 1;
temp = arr[i];
arr[i] = arr[line];
arr[line] = temp;
}
}
return arr;
}
/**
* 处理数组向右移动
* @param arr 源数组
* @param y 右移列数
* @return 移位后数组
*/
private static int[][] yidc(int[][] arr, int y) {
int[] temp = new int[5];
if (y 0) {
y = 5 + y; //输入为负时换成对应的正数行 左移2列 等于 右移3列
}
for (int k = 0; k y; k++) {
for (int i = 4; i 0; i--) {
int line = i - 1;
for (int j = 0; j 5; j++) {
temp[j] = arr[j][i];
arr[j][i] = arr[j][line];
arr[j][line] = temp[j];
}
}
}
return arr;
}
}
简测可以达到效果。
java平移矩阵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java移位、java平移矩阵的信息别忘了在本站进行查找喔。