「java矩阵平移」平移矩阵 旋转矩阵

博主:adminadmin 2022-12-28 14:33:09 64

今天给各位分享java矩阵平移的知识,其中也会对平移矩阵 旋转矩阵进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用java怎样编写一个二维坐标平移程序

java编写二维坐标平移程序,主要是通过类继承Point2D,使用里面的方法来平移,如下代码:

class  Point2D

{   

int x, y;

       Point2D(){  }

       Point2D(int i,int j)

       {

              x=i;

              y=j;

       }

       void offset(int a, int b)

       {

              x=x+a;

              y=y+b;

       }

       void distance(Point2D a,Point2D b) 

       {

              float m;

              m=(float)Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));

              System.out.print("二维空间两点之间的距离:");

              System.out.println("m="+m);

       }

}

public class Point3D extends Point2D

{

       int x,y,z;

       Point3D(int x,int y,int z)

       {

              this.x=x;

              this.y=y;

              this.z=z;

       }

       Point3D(Point2D p,int z)

       {

              x=p.x;

              y=p.y;

              this.z=z;

       }

       void offset(int a, int b,int c)

       {

              x=x+a;

              b=x+b;

              c=x+c;

       } 

void distance(Point3D a,Point3D b) 

       {

       float n;

       n=(float)Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.y-b.y)*(a.y-b.y));//计算两点之间的距离。

              System.out.print("三维空间两点之间的距离:");

              System.out.println("n="+n);

       }

public static void main(String[] args) 

        {

        Point2D p2d1=new Point2D(2,3);

        Point2D p2d2=new Point2D(3,6);

        Point3D p2d3=new Point3D(1,2,3);

        Point3D p2d4=new Point3D(p2d1,3);

        p2d1.distance(p2d1,p2d2);

        p2d3.distance(p2d3,p2d4);//平移一段距离。

        }

}

用java怎样编写一个二维坐标平移程序?

网上很多这样的。

class Point2D

{

int x, y;

Point2D(){ }

Point2D(int i,int j)

{

x=i;

y=j;

}

void offset(int a, int b)

{

x=x+a;

y=y+b;

}

void distance(Point2D a,Point2D b)

{

float m;

m=(float)Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));

System.out.print("二维空间两点之间的距离:");

System.out.println("m="+m);

}

}

public class Point3D extends Point2D

{

int x,y,z;

Point3D(int x,int y,int z)

{

this.x=x;

this.y=y;

this.z=z;

}

Point3D(Point2D p,int z)

{

x=p.x;

y=p.y;

this.z=z;

}

void offset(int a, int b,int c)

{

x=x+a;

b=x+b;

c=x+c;

}

void distance(Point3D a,Point3D b)

{

float n;

n=(float)Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.y-b.y)*(a.y-b.y));

System.out.print("三维空间两点之间的距离:");

System.out.println("n="+n);

}

public static void main(String[] args)

{

Point2D p2d1=new Point2D(2,3);

Point2D p2d2=new Point2D(3,6);

Point3D p2d3=new Point3D(1,2,3);

Point3D p2d4=new Point3D(p2d1,3);

p2d1.distance(p2d1,p2d2);

p2d3.distance(p2d3,p2d4);

}

}

JAVA数组移位

我看不懂,你到底是在平移数组元素还是把指定下标的元素变成默认值?第五个元素原来是4你怎么把它变成0了?

下标越界是肯定的。数组一旦被定义,长度就是不变的。与其说是平移,你这个其实是插入操作,在指定的下标插入默认值。一旦插入新元素,数组的元素个数会变长,但这是不允许的,所以肯定会有下标越界异常。

如果你真的是要插入一个默认元素的话你无法在原来的数组上进行操作,只能声明一个新的数组,长度比原来数组长1,然后把旧的元素复制到新的数组,插入默认值,然后再把array的引用指向新数组。可以这样:

int[] array={0,1,2,3,4,5,6,7,8,9};

int[] temp=new int[array.length+1]; //

int k; //k为指定下标,假设已知

for(int i=0;ik;i++)

temp[i]=array[i]; //复制下标前的元素

temp[k]=0; //设置默认值

for(int i=k;iarray.length;i++)

temp[i+1]=array[i]; //复制下标后的元素

array=temp; //改变数组引用

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写矩形平移和旋转后输出坐标的代码

import java.applet.Applet;

import java.awt.Graphics;

import java.awt.Color;

public class LX3_3 extends Applet {

public void paint(Graphics g) {

g.setColor(Color.red);//设置红颜色

g.drawOval(35,35,100,60);//画椭圆(圆心、宽和高)

g.fillOval(200,15,60,100);//画具有填充色的圆

g.setColor(Color.blue);//设置蓝颜色

g.drawRect(20,130,80,80);//画矩形

g.fillRect(120,130,80,80);//画具有填充色的矩形

g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形

g.fillRoundRect(320,130,80,80,20,20);//画具有填充色的 圆角矩形

}

}

该程序是在Myeclipse的环境下运行的

在二维平面内,画长方形等都只需要改变点的坐标即可实现平移,旋转,缩放

上面还加入了颜色,可供参考

水平有限,但希望对你有帮助

关于java矩阵平移和平移矩阵 旋转矩阵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。