| 
				
				Получение расстояния в 3D
				 | 
 | 
| 
BarD
 | 
Дата: Воскресенье, 01.06.2014, 07:53:58 | Сообщение # 1 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 Какой функцией можно получить расстояние (дистанцию) между двумя точками в 3D пространстве? 
 | 
 
|   | 
 |    | 
| 
хвостег
 | 
Дата: Воскресенье, 01.06.2014, 11:31:32 | Сообщение # 2 |  
  
  |  
Сообщений: 161
 
Репутация: 53 [ +/- ]
 |   
 | 
 GetVectorDistance 
 | 
 
|   | 
 |    | 
| 
BarD
 | 
Дата: Воскресенье, 01.06.2014, 15:26:44 | Сообщение # 3 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 хвостег, эта функция получает расстояние между точками или векторами? Просто написано в api: "Calculates the distance between two vectors." (Получает дистанцию между векторами). Это меня немного смутило) Ну ладно, попробую, спасибо! 
   Лови + в репу) 
 
 Сообщение отредактировал BarD - Воскресенье, 01.06.2014, 15:26:54  | 
 
|   | 
 |    | 
| 
хвостег
 | 
Дата: Воскресенье, 01.06.2014, 15:49:32 | Сообщение # 4 |  
  
  |  
Сообщений: 161
 
Репутация: 53 [ +/- ]
 |   
 | 
Цитата BarD (  )  хвостег, эта функция получает расстояние между точками или векторами?     Интересно как ты себе представляешь точку в пространстве? 
 
 Сообщение отредактировал хвостег - Воскресенье, 01.06.2014, 15:50:47  | 
 
|   | 
 |    | 
| 
BarD
 | 
Дата: Воскресенье, 01.06.2014, 16:16:42 | Сообщение # 5 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 Эм, какая-то позиция с координатами (XYZ) 
 | 
 
|   | 
 |    | 
| 
Naykon
 | 
Дата: Вторник, 03.06.2014, 10:11:45 | Сообщение # 6 |  
  
  |  
Сообщений: 439
 
Репутация: -4 [ +/- ]
 |   
 | 
 sm_hosties (метание дигла) - разбери. 
 | 
 
|   | 
 |    | 
| 
BarD
 | 
Дата: Вторник, 03.06.2014, 10:19:02 | Сообщение # 7 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 Да я уже сообразил, как сделать) Способ из геометрии. Приравниваем высоты точек и находим расстояние между ними, а потом находим гипотенузу по формуле: квадратный корень из квадрата расстояния между точками, сложенного с квадратом высоты. Нарисуйте и поймете)) 
 | 
 
|   | 
 |    | 
| 
Tokami
 | 
Дата: Вторник, 03.06.2014, 10:27:57 | Сообщение # 8 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
 BarD, ты это полегче давай то я гиа не сдал:DDD 
 | 
 
|   | 
 |    | 
| 
BarD
 | 
Дата: Среда, 04.06.2014, 12:28:44 | Сообщение # 9 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
Рабочая функция: 
   Цитата stock Float:GetDistance(Float:pos1[3], Float:pos2[3]) //получает дистанцию между двух точек. (В 3D пространстве).   { new Float:res;   res = SquareRoot( Pow(pos2[0] - pos1[0], 2.0) + Pow(pos2[1] - pos1[1], 2.0) ); //Получаем расстояние между 2 точками в 2D   new Float:high;   if (pos1[2] < pos2[2])// Если высота 2 точки больше высоты 1 точки, то отнимаем от 2 высоты первую.   {   high = pos2[2] - pos1[2];   }   else //Если наоборот, то отнимаем от первой высоты вторую.   {   high = pos1[2] - pos2[2];   }   new Float:end;   end = SquareRoot( Pow(high, 2.0) + Pow(res , 2.0) ); //Находим гипотенузу путем теоремы Пифагора для 2 катетов (высота и расстояние)   return end; //Выводим то, что получилось.   }   
 
 Сообщение отредактировал BarD - Среда, 04.06.2014, 12:29:40  | 
 
|   | 
 |    | 
| 
horr0r
 | 
Дата: Пятница, 06.06.2014, 12:17:39 | Сообщение # 10 |  
  
  |  
Сообщений: 149
 
Репутация: 40 [ +/- ]
 |   
 | 
BarD, где нашел эту функцию? Я ее давно писал(ну по этой строке и комментарий мой "SquareRoot( Pow(pos2[0] - pos1[0], 2.0) + Pow(pos2[1] - pos1[1], 2.0) ); //Получаем расстояние между 2 точками в 2D" ).   Пздц, как ее усложнили.   Вот в 3d намного проще.Код    stock Float:GetDistance(Float:pos1[3], Float:pos2[3]) //получает дистанцию между двух точек. (В 3D пространстве).    {        return SquareRoot( Pow(pos2[0] - pos1[0], 2.0) + Pow(pos2[1] - pos1[1], 2.0) + Pow(pos2[2]-pos1[2]); //Получаем расстояние между 2 точками в 3D    }        Вот вся функция, сразу вставляй. В той бессмыслица получается.   Лучше используй GetVectorDistance. Она быстрее работает, чем моя. 
 | 
 
|   | 
 |    | 
| 
BarD
 | 
Дата: Пятница, 06.06.2014, 12:56:43 | Сообщение # 11 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 horr0r, нашел твою функцию тут: http://world-source.ru/forum/100-2385-1 ) Тут ты получаешь в 2д пространстве) Сам ее немного доработал, как в школе учили) И написал сюда) Спасибо тебе! Очень полезная функция! 
 | 
 
|   | 
 |    |