Очень простой математический вопрос - PullRequest
0 голосов
/ 25 декабря 2010

Очень простой математический вопрос.

Скажем, у меня есть изображение с отслеживаемой точкой.Вот мои переменные:

Высота изображения
Ширина изображения
Точка (пиксели слева), координата X
Точка (пиксели сверху), координата Y

Например, ширинаЯ хочу, чтобы он возвращал значение -0,5, которое представляет расстояние от центра, так что 1 будет полным правым, а -1 будет полным левым.

Итак, как бы я рассчитал, чтобы

Точка была (ширина) на четверть пути по всему кадру или на половину по левой стороне кадра.Переменные будут равны:

Ширина изображения: 40
Точка X: 10

Я знаю, что это основа, но у меня сейчас серьёзные судороги, О_о.

Спасибо,
Кристиан

Ответы [ 2 ]

3 голосов
/ 25 декабря 2010
Xnew = 2*X/Width - 1
Ynew = 2*Y/Height - 1

Пояснение:

X/Width дает вам значение от 0 (всего слева) до 1 (всего справа). 2*X/Width затем дает значение от 0 (всего слева) до 2 (всего справа). Вычтите 1, чтобы получить значение от -1 (всего слева) до 1 (всего справа).

То же самое для Y.

1 голос
/ 25 декабря 2010

Если ширина изображения равна 40, а точка x равна 10, то в «ваших» координатах PointX будет 0,5 (при условии, что координаты находятся в диапазоне от -20 до 20).Итак:

PointX = 1 - 2 * (X / ImageWidth)
PointY = 1 - 2 * (Y / ImageHeight)

Оформить заказ:

PointX = 1 - 2 * (10 / 40) = 0.5 (или 10 пикселей справа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...