.NET 4.x Слишком медленное вычисление выражения с квадратным корнем - C#

Узнай цену своей работы

Формулировка задачи:

Код
Листинг программы
  1. private double GetDistanceBetweenPoints(Double[] firstPoint, Double[] fithPoint)
  2. {
  3. return Math.Sqrt(Math.Pow(fithPoint[0] - firstPoint[0], 2) +
  4. Math.Pow(fithPoint[1] - firstPoint[1], 2) +
  5. Math.Pow(fithPoint[2] - firstPoint[2], 2))*1000;
  6. }
Выполняется 200 +_ 30 милисекунд. Что за жесть))) Так со всем Math в NET?
А если у меня отрисовка точек на экране... пересчет таким способом штук 100 точек тупо повесит приложение.

Решение задачи: «.NET 4.x Слишком медленное вычисление выражения с квадратным корнем»

textual
Листинг программы
  1. class Program {
  2.     static private double GetDistanceBetweenPoints(Double[] firstPoint, Double[] fithPoint) {
  3.         return Math.Sqrt(Math.Pow(fithPoint[0] - firstPoint[0], 2) +
  4.                          Math.Pow(fithPoint[1] - firstPoint[1], 2) +
  5.                          Math.Pow(fithPoint[2] - firstPoint[2], 2)) * 1000;
  6.     }
  7.  
  8.     static void Main(string[] args) {
  9.         double[] a = { 1, 2, 3 };
  10.         double[] b = { 3, 4, 5 };
  11.         var sw = new System.Diagnostics.Stopwatch();
  12.         sw.Start();
  13.         var dist = GetDistanceBetweenPoints(a, b);
  14.         sw.Stop();
  15.         Console.WriteLine("Distance {0:F1} calculated for {1:F3} ms",
  16.             dist, (1000.0 * sw.ElapsedTicks) / Stopwatch.Frequency);
  17.     }
  18. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы