Member 14126364 Ответов: 1

Получить расстояние mesure после рисования


Привет IAM сделать приложение для 2D автоматического рисования по данным importin. Не мои точки рисуются, я хочу вычислить расстояние между двумя точками и показать его автоматически и на экране.
Мне нужно было бы переместить его, если это необходимо для качественного просмотра чертежа

Что я уже пробовал:

double

 dblDistX = Math.Abs(pt1.X - pt2.X);
 double
 dblDistY = Math.Abs(pt1.Y - pt2.Y);

1 Ответов

Рейтинг:
5

MadMyche

Похоже, хорошее начало: поиск дельт для координат X & Y.

double dblDistX = Math.Abs(pt1.X - pt2.X);
double dblDistY = Math.Abs(pt1.Y - pt2.Y);
Теперь я предполагаю, что вам нужно диагональное расстояние (Z) между этими 2 точками. Пора открыть книгу по геометрии HS и поискать моего приятеля Пифагора и посмотреть, что у него есть для теорем.
Пифагорей писал::
В прямоугольном треугольнике: квадрат гипотенузы равен сумме квадратов двух других сторон.

Обновление 14.02.2019
Вот как это было бы в рукописный математика:
зет2 = икс2 + год2
z = √(x2 + год2)

Мой первоначальный ответ включал этот код, который не был написан на определенном языке. Из приведенных ниже комментариев мне сообщили, что это будет работать для VB
' VB Solution
double Z = (dblDistX^2 + dblDistY^2)^.5

C# - это то, что использует OP, поэтому вот 2 его версии; длинная длинная версия и 1 лайнер
// C# version
// long version
double dblSqrdDistX = Math.Pow(dblDistX,2);
double dblSqrdDistY = Math.Pow(dblDistY,2);
double dblSqrdHypotenuseZ = dblSqrdDistX + dblSqrdDistY;
double Z = Math.Sqrt(dblSqrdHypotenuseZ);

// short version
double Z = Math.Sqrt(Math.Pow(dblDistX,2) + Math.Pow(dblDistY,2));


0x01AA

Стоит упомянуть об этой математике.АБС лишний для расчета расстояния. Тем не менее +5.

Member 14126364

проблема не в том, чтобы вычислить расстояние. Мне нужно показать его на моем холсте.
Например если я нарисую прямоугольник я хочу чтобы пользователь tu увидел стрелку показывающую ширину или глубину прямоугольника

MadMyche

Пост был озаглавлен "получить расстояние mesure после рисования".

Richard Deeming

NB: ^ это оператор возведения в степень в VB; в C# это оператор возведения в степень в VB. Xor оператор. :)

Member 14126364

Пожалуйста объяснить

MadMyche

Я обновил ответ