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

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

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

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

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

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

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


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

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

12   голосов , оценка 3.75 из 5
Похожие ответы