Top.Mail.Ru
Ответы

Что делают эти функции?

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
 class s { 
  float[] a = new float[4]; //создание массива в 4 ячейки 
   
  s() { 
    this.a[3] = 1.0F; //присвоение значения последней ячейке 
  } 
   
  s(float paramFloat1, float paramFloat2, float paramFloat3) { 
    this.a[0] = paramFloat1; 
    this.a[1] = paramFloat2; 
    this.a[2] = paramFloat3; 
    this.a[3] = 1.0F; 
  } 
   
  s(s params) { 
    this.a[0] = params.a[0]; 
    this.a[1] = params.a[1]; 
    this.a[2] = params.a[2]; 
    this.a[3] = params.a[3]; 
  } 
   
  void a(s params) { 
    this.a[0] = params.a[0]; 
    this.a[1] = params.a[1]; 
    this.a[2] = params.a[2]; 
    this.a[3] = params.a[3]; 
  } 
   
  void a(s params1, s params2) { 
    this.a[0] = params1.a[0] + params2.a[0]; 
    this.a[1] = params1.a[1] + params2.a[1]; 
    this.a[2] = params1.a[2] + params2.a[2]; 
  } 
   
  void b(s params1, s params2) { 
    this.a[0] = params1.a[0] - params2.a[0]; 
    this.a[1] = params1.a[1] - params2.a[1]; 
    this.a[2] = params1.a[2] - params2.a[2]; 
  } 
   
  float b(s params) { 
    return this.a[0] * params.a[0] + this.a[1] * params.a[1] + this.a[2] * params.a[2];//? 
  } 
   
  void c(s params1, s params2) { 
    this.a[0] = params1.a[1] * params2.a[2] - params1.a[2] * params2.a[1];//? 
    this.a[1] = params1.a[2] * params2.a[0] - params1.a[0] * params2.a[2]; 
    this.a[2] = params1.a[0] * params2.a[1] - params1.a[1] * params2.a[0]; 
  } 
   
  void a() { 
    float f = (float)Math.sqrt((this.a[0] * this.a[0] + this.a[1] * this.a[1] + this.a[2] * this.a[2]));//корень на каждая переменная в степени 
    this.a[0] = this.a[0] / f; 
    this.a[1] = this.a[1] / f; 
    this.a[2] = this.a[2] / f; 
  } 
}  

с некоторыми разобрался но не могу понять назначение других

По дате
По рейтингу
Аватар пользователя
Новичок
12
 float[] a = new float[4]; 
 

Это массив из четырех элементов типа float.


1234
 s() {  
    this.a[3] = 1.0F;  
} 
 

Инициализирует массив a, присваивая 1.0F четвертому элементу.

1234567
 s(float paramFloat1, float paramFloat2, float paramFloat3) {  
    this.a[0] = paramFloat1;  
    this.a[1] = paramFloat2;  
    this.a[2] = paramFloat3;  
    this.a[3] = 1.0F;  
} 
 

Инициализирует первые три элемента массива a значениями параметров, четвертый элемент устанавливает в 1.0F.

1234567
 s(s params) {  
    this.a[0] = params.a[0];  
    this.a[1] = params.a[1];  
    this.a[2] = params.a[2];  
    this.a[3] = params.a[3];  
} 
 

Копирует значения массива a из другого объекта s.

1234567
 void a(s params) {  
    this.a[0] = params.a[0];  
    this.a[1] = params.a[1];  
    this.a[2] = params.a[2];  
    this.a[3] = params.a[3];  
} 
 

Копирует значения массива a из другого объекта s.

123456
 void a(s params1, s params2) {  
    this.a[0] = params1.a[0] + params2.a[0];  
    this.a[1] = params1.a[1] + params2.a[1];  
    this.a[2] = params1.a[2] + params2.a[2];  
} 
 

Складывает соответствующие элементы массивов params1 и params2 и сохраняет результат в текущем объекте s.

123456
 void b(s params1, s params2) {  
    this.a[0] = params1.a[0] - params2.a[0];  
    this.a[1] = params1.a[1] - params2.a[1];  
    this.a[2] = params1.a[2] - params2.a[2];  
} 
 

Вычитает соответствующие элементы массивов params1 и params2 и сохраняет результат в текущем объекте s.

1234
 float b(s params) {  
    return this.a[0] * params.a[0] + this.a[1] * params.a[1] + this.a[2] * params.a[2]; 
} 
 

Вычисляет скалярное произведение векторов, представленных массивами this.a и params.a.

123456
 void c(s params1, s params2) {  
    this.a[0] = params1.a[1] * params2.a[2] - params1.a[2] * params2.a[1];  
    this.a[1] = params1.a[2] * params2.a[0] - params1.a[0] * params2.a[2];  
    this.a[2] = params1.a[0] * params2.a[1] - params1.a[1] * params2.a[0];  
} 
 

Вычисляет векторное произведение векторов, представленных массивами params1 и params2, и сохраняет результат в текущем объекте s.

1234567
 void a() {  
    float f = (float)Math.sqrt((this.a[0] * this.a[0] + this.a[1] * this.a[1] + this.a[2] * this.a[2])); 
    this.a[0] = this.a[0] / f;  
    this.a[1] = this.a[1] / f;  
    this.a[2] = this.a[2] / f;  
} 
 

Нормализует вектор, представленный массивом a, то есть приводит его к единичной длине, деля каждый элемент на длину вектора.