Russian Qt Forum

Программирование => С/C++ => Тема начата: kuzulis от Декабрь 02, 2016, 12:33



Название: Алгоритм "прямой, проходящей через две точки"
Отправлено: kuzulis от Декабрь 02, 2016, 12:33
Всем доброго здравия.

Нужно линейно преобразовывать некие коды в значения... т.е. к примеру, есть параметр, который передается в закодированном виде, имеющий диапазон кодов (0-255) ,
а его значения могут варьироваться в диапазоне (-100, 1000)..

Так вот, по сути это делается с помощью формулы уравнения прямой, проходящей через две точки:

(https://wikimedia.org/api/rest_v1/media/math/render/svg/cf8a1d4089e10bed659b4fe552c71d2d4bda828f)

подставляем эти данные в формулу и можем найти любое значение параметра по его коду..

Сейчас я "захардкодил" эту формулу у себя сам (завелосипедил).

Собственно, интересует вопрос: а есть ли какие-нить стандартные алгоритмы в STL (или, может в Boost)
для такого линейного преобразования?

Я что-то не могу сформулировать запрос в ГУГЛ и найти то что надо...  ::)


Название: Re: Алгоритм "прямой, проходящей через две точки"
Отправлено: Igors от Декабрь 02, 2016, 13:54
Сейчас я "захардкодил" эту формулу у себя сам (завелосипедил).
И почувствовали угрызения совести, ну как же так, не воспользовался готовым! Не переживайте, здесь велосипедят все, эту ф-цию часто называют lerp или interpoate, оформляют inline или вообще макрухой. И вообще радоваться надо что еще помните общее ур-е прямой  :)



Название: Re: Алгоритм "прямой, проходящей через две точки"
Отправлено: kuzulis от Декабрь 03, 2016, 11:48
Эх, ясно, спс. Жаль что такого нету.. хотелось бы не париться и быть уверенным в завтрашнем дне (в смысле времени суток).  :)


Название: Re: Алгоритм "прямой, проходящей через две точки"
Отправлено: kambala от Декабрь 03, 2016, 12:35
завтра формула измениться может?


Название: Re: Алгоритм "прямой, проходящей через две точки"
Отправлено: Igors от Декабрь 03, 2016, 12:54
Учтите что ур-е прямой не только интерполирует но и экстраполирует. Напр для Ваших данных код > 255 выдаст рез-т > 1000. Обычно это надо пресекать


Название: Re: Алгоритм "прямой, проходящей через две точки"
Отправлено: kuzulis от Декабрь 04, 2016, 11:30
Цитата: kambala
завтра формула измениться может?

Нет, если только геометрия нашего пространства не поменяется.  ;)

Цитата: Igors
Учтите что ур-е прямой не только интерполирует но и экстраполирует. Напр для Ваших данных код > 255 выдаст рез-т > 1000. Обычно это надо пресекать

Это само собой, но это уже другой вопрос.