.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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д