.NET 4.x Слишком медленное вычисление выражения с квадратным корнем - C#
Формулировка задачи:
Код
Выполняется 200 +_ 30 милисекунд.
Что за жесть))) Так со всем Math в NET?
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; }
А если у меня отрисовка точек на экране... пересчет таким способом штук 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д