java 矩形旋转_计算机图形学--旋转变换(java)

importjava.awt.Color;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;import java.util.*;public class Rotates extendsFrame {public voidlanch() {this.setSize(640, 480);this.setVisible(true);this.addWindowListener(newMyWindowMonitor());

}class MyWindowMonitor extendsWindowAdapter {public voidwindowClosing(WindowEvent e) {

setVisible(false);

System.exit(0);

}

}public voidpaint(Graphics g) {

g.translate(320, 240);int[] A={0,0,20};int[] B={0,100,50};for(int n=0;n<720;n+=40){double[][] r={ {Math.cos(n*3.14/180),Math.sin(n*3.14/180),0},

{-Math.sin(n*3.14/180),Math.cos(n*3.14/180),0},

{0, 0, 1}

};int[][] a;

a=new int[][]{{0,0,1},{0,100,1},{20,50,1}};if(n>=360){

a=new int[][]{{0,0,1},{0,100,1},{-20,50,1}};

}int[][] zz;

zz=new int[3][3];for(int i=0;i<3;i++){for(int j=0;j<3;j++){for(int k=0;k<3;k++){

zz[i][j]+=a[i][k]*r[k][j];

}

}

}int[] aa=new int[3];int[] bb=new int[3];for(int i=0;i<3;i++){

aa[i]=(int)zz[i][0];

bb[i]=(int)zz[i][1];

}if(n>=360){try{

Thread.sleep(1000);//延时函数

} catch(InterruptedException e) {

e.printStackTrace();

}

g.setColor(Color.red);

g.fillPolygon(aa, bb,3);

}else{try{

Thread.sleep(1000);//延时函数

} catch(InterruptedException e) {

e.printStackTrace();

}

g.setColor(Color.BLUE);

g.fillPolygon(aa, bb,3);

}

}

}public static voidmain(String[] args) {newRotates().lanch();

}

}


版权声明:本文为weixin_32083569原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。