Idoor

Vector3DArray

Sep 21st, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. package classes;
  2. import classes.Point3D;
  3. import classes.Vector3D;
  4. import classes.Vector3DProcessor;
  5. import java.util.Arrays;
  6.  
  7. public class Vector3DArray {
  8.     int size = 0;
  9.     Vector3D[] data;
  10.  
  11.     public Vector3DArray(int size) {
  12.         if (size > 0) {
  13.             this.size = size;
  14.             this.data = new Vector3D[size];
  15.             for (int i = 0; i < size; i++) {
  16.                 this.data[i] = new Vector3D();
  17.             }
  18.         }
  19.     }
  20.  
  21.     public void Shift(int i, Vector3D vec){
  22.         if( i >= 0 && i < this.size) {
  23.             this.data[i] = vec;
  24.         }
  25.     }
  26.  
  27.     public void Show(){
  28.         for (int i = 0; i < this.size; i++){
  29.             System.out.println("Vector[" + i +"] = {" + data[i].toString() + "}");
  30.         }
  31.     }
  32.  
  33.     public double Length(){
  34.         return this.size;
  35.     }
  36.  
  37.     public double HighestLength(){
  38.         double max = data[0].Length();
  39.         for(int i = 1; i < this.size; i++){
  40.             if (max < data[i].Length()) {max = data[i].Length();}
  41.         }
  42.         return max;
  43.     }
  44.  
  45.     public int FindElem(Vector3D vector){
  46.         for(int i = 0; i < this.size; i++){
  47.             if(vector.equals(this.data[i])) {return i;}
  48.         }
  49.         return -1;
  50.     }
  51.  
  52.     public Vector3D SumVect(){
  53.         Vector3D sum = new Vector3D();
  54.         Vector3DProcessor ssum = new Vector3DProcessor();
  55.         for(int i = 0; i < this.size; i++){
  56.             ssum.addition(sum, sum, data[i]);
  57.         }
  58.         return sum;
  59.     }
  60.  
  61.     public Vector3D linearCombination(double Coeffs[]) {
  62.         Vector3D v = new Vector3D();
  63.         if (Coeffs.length != this.size) {
  64.             return v;
  65.         }
  66.         Vector3DProcessor V3Proc = new Vector3DProcessor();
  67.         for (int i = 0; i < this.size; i++) {
  68.             V3Proc.addition(v, v, new Vector3D(Coeffs[i] * this.data[i].x, Coeffs[i] * this.data[i].y, Coeffs[i] * this.data[i].z));
  69.         }
  70.         return v;
  71.     }
  72.  
  73.     public Point3D[] pointShift(Point3D p) {
  74.         Point3D[] shiftArr = new Point3D[this.size];
  75.         for (int i = 0; i < this.size; i++) {
  76.             shiftArr[i] = new Point3D(p.x + this.data[i].x, p.y + this.data[i].y, p.z + this.data[i].z);
  77.         }
  78.         return shiftArr;
  79.     }
  80.  
  81.     public static void main(String args[]){
  82.         Vector3DArray ArrayOfVec = new Vector3DArray(6);
  83.         Vector3D Vec = new Vector3D(1, 1, 1);
  84.         Vector3D Vec1 = new Vector3D(2, 2, 2);
  85.         System.out.println("Длина вектора = " + ArrayOfVec.Length());
  86.         ArrayOfVec.Shift(4, Vec);
  87.         ArrayOfVec.Shift(5, Vec1);
  88.         ArrayOfVec.Show();
  89.         System.out.println("Наибольная длина вектора в массиве = " + ArrayOfVec.HighestLength());
  90.         System.out.println("Номер элемента в массиве = " + ArrayOfVec.FindElem(Vec));
  91.         System.out.println("Сумма векторов в массиве = " + ArrayOfVec.SumVect().toString());
  92.         double Coeffs[] = {1, 2, 3, 4, 5, 6};
  93.         Vector3D linearCombination = ArrayOfVec.linearCombination(Coeffs);
  94.         System.out.println("Линейная комбинация: " + "x = " + linearCombination.x + " y = " + linearCombination.y + " z = " + linearCombination.z);
  95.         Point3D point = new Point3D(1, 1, 1);
  96.         Point3D shift[] = ArrayOfVec.pointShift(point);
  97.         for(int i = 0; i < shift.length; i++) {
  98.             System.out.println("Shift[" +i + "]: x = " + shift[i].getX() + ", y = " + shift[i].getY() + ", z = " + shift[i].getZ());
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment