Учитывая запуск и конечную точку и расстояние, вычисляют точку вдоль строки

Необходимо знать о глюке. Любой класс, который Вы раздаете как DataObject в перетащить/отбросить операции, должен быть сериализуемым. Таким образом, при попытке передать объект, и он не работает, удостоверьтесь, что он может быть сериализирован, поскольку это - почти наверняка проблема. Это ловило меня пару раз!

16
задан Community 23 May 2017 в 11:53
поделиться

1 ответ

Я думаю, что это принадлежит MathOverflow, но я отвечу, поскольку это ваш первый пост. Сначала вы вычисляете вектор от x1y1 до x2y2:

float vx = x2 - x1;
float vy = y2 - y1;

Затем вычисляете длину:

float mag = sqrt(vx*vx + vy*vy);

Нормализуете вектор до единичной длины:

vx /= mag;
vy /= mag;

Наконец вычисляете новый вектор, который равен x2y2 + vxvy * (mag + расстояние).

*px = (int)((float)x1 + vx * (mag + distance));
*py = (int)((float)y1 + vy * (mag + distance));

Вы можете опустить некоторые вычисления, умножая вместо этого на расстояние / величину.

34
ответ дан 30 November 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: