• 大小: 11KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: Java
  • 标签: java  

资源简介

三视图与正轴测投影。 通过上一程序所做的矩阵类,做相应的矩阵变换,得到主视图、侧视图、俯视图、正轴测投影。 我不明白那三视图乘以矩阵有什么意义,因为即使乘完了,我们还是要通过取x方向量或者z方向量作为屏幕上的坐标点画出来,那么直接取相应的方向量的值就好了呀。

资源截图

代码片段和文件信息

package shiyan5;
public class Matrix {
private double[][] array;  //矩阵是一个二维数组
private int size_rsize_c; //矩阵的行数,列数
/**
 * 默认的构造方法
 */
public  Matrix(){
this.array = null;
this.size_r = 0;
this.size_c = 0;
}
/**
 * 将二维数组构造为矩阵
 * @param arg 二维数组
 */
public  Matrix(double [][]arg){
this.array = arg;
this.size_r = arg.length;
this.size_c = arg[0].length;
}
/**
 * 构造一个已知行列数的矩阵
 * @param r 行数
 * @param c 列数
 */
public  Matrix(int rint c){ //本题中是供内部返回结果矩阵使用的
this.array =new double[r][c];
this.size_r = r;
this.size_c = c;
}
/**
 * 矩阵加法
 * @param arg1
 * @param arg2
 * @return
 */
public static Matrix MatrixAdd(Matrix arg1Matrix arg2){
if((arg1.size_r==arg2.size_r)&&(arg1.size_c==arg2.size_c)){//矩阵行列相等的时候才可以相加
int ij;
Matrix result = new Matrix(arg1.size_rarg1.size_c);
for(i=0;i for(j=0;j result.array[i][j] = arg1.array[i][j] + arg2.array[i][j];
}
return result; //返回矩阵加法的结果
}
else return null; //如果矩阵维数不相等,不能相加,则返回为空
}

/**
 * 矩阵乘法
 * @param arg1
 * @param arg2
 * @return
 */
public static Matrix MatrixMul(Matrix arg1Matrix arg2){ 
if(arg1.size_c==arg2.size_r){//只有当第一个矩阵的列数和第二个矩阵的行数相等时才可以进行矩阵乘法
int ijk;
double temp;
Matrix result = new Matrix(arg1.size_rarg2.size_c);
for(i=0;i for(j=0;j temp = 0;
for(k=0;k temp+=arg1.array[i][k]*arg2.array[k][j];
}
result.array[i][j] = temp;
}
}
return result;
}
else return null;//如果两个矩阵不能相乘,返回空
}

//以下为本题中向量矩阵的特殊用法针对本题返回的向量是一行三列,所以要获得x坐标和y坐标,只需取array[0][0]和array[0][1]
/**
 * 返回这个n行4列的矩阵所表示的点的坐标的x值
 * @return 
 */
public int[] getX(){
int[] x=new int[this.size_r];
for(int i=0;i x[i]=(int)array[i][0];
}
return x;
}
/**
 * 返回这个n行4列的矩阵所表示的点的坐标的y值
 * @return 
 */
public int[] getY(){
int[] y=new int[this.size_r];
for(int i=0;i y[i]=(int)array[i][1];
}
return y;
}
/**
 * 返回这个n行4列的矩阵所表示的点的坐标的z值
 * @return 
 */
public int[] getZ(){
int[] z=new int[this.size_r];
for(int i=0;i z[i]=(int)array[i][2];
}
return z;
}
public double[][] getArray() {
return array;
}
public void setArray(double[][] array) {
this.array = array;
}



}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1884  2011-12-23 00:51  E5-1\shiyan5\Matrix.class

     文件       2724  2011-12-23 00:51  E5-1\shiyan5\Matrix.java

     文件       4121  2011-12-23 03:04  E5-1\shiyan5\Shiyan5.class

     文件       2870  2011-12-23 03:04  E5-1\shiyan5\Shiyan5.java

     文件       6094  2011-12-23 03:06  E5-1\shiyan5.jar

     目录          0  2011-12-23 03:13  E5-1\shiyan5

     目录          0  2011-12-23 03:13  E5-1

----------- ---------  ---------- -----  ----

                17693                    7


评论

共有 条评论