2016-06-03 2 views
0

СЦЕНАРИЙКак найти оставшееся расстояние, чтобы переместить UIView между 2 точками

Я работаю над приложением, которое отслеживает уровень глюкозы в крови в виде графика. На графике есть «маркировки» (например: -200 мг), идущие в вертикальном порядке вдоль оси y в правой части экрана, а «часы» (например: -12: 00 PM) будут вдоль оси x на нижней части графика. Мне приходится рисовать маленькие «точки», чтобы показать, что уровень глюкозы в крови был на всем протяжении пути.

ВЫПУСКА

Я пытаюсь вычислить, как позиционировать «точки» в нужное время и мг уровня и у меня возникают трудности вычисления позиции. Я могу получить доступ к «маркировке» и получить его marking.center.x, чтобы указать, какой «временной интервал» (ось х) и marking.center.y, чтобы указать, какой «уровень MG» нужно «точка». Проблема в том, что это не всегда ровно 12:00 или 200 мг, где это нужно будет разместить. На самом деле это было бы очень редко.

ЧТО МНЕ НУЖНО


на основе следующих переменных:

dot.mgLevel Точка будет уже знать, где она должна идти на основе информации, полученной от медицинского устройства. Он будет знать время и mgLevel, чтобы назначить себя.

marking.mgLevel Маркировка будет каждый имеет равномерно распределены значения, такие, как -100mg, -200mg, -300mg т.д. ...

timemarking.timeslot Каждый раз, когда маркировку на дне будет каждые имеют равномерно распределенные разы выделено каждые 30 мин. Такие, как -12:00PM, -12:30PM, -1:00PM т.д ...


Если точка имеет мг Уровень 330 мг и ближе маркировку на уровне мг 300мг, то мне нужно, чтобы иметь возможность рассчитать, сколько дальше точка должна двигаться от 300, направляясь к маркеру 400 мг.

SO ...

Если расстояние между отметками являются 100pt и mgLevel дот является 330 мг, то я знаю, что мне нужно, чтобы переместить точку от 300мг маркировки к 400mg маркировки ровно 30pt. Это потому, что это простая математика, потому что расстояние между метками равно 100. Но в реальной жизни это не 100, поэтому мне нужно уметь это вычислять.

MY главный вопрос

Скажем расстояние между маркировками 241, и каждая маркировка представляет собой кратные ста. Скажем, моя точка имеет значение mgLevel 412. Как рассчитать, как далеко мне нужно переместить точку так, чтобы она была в правильном месте?

Я ДУМАЮ?

Я думаю, что мне нужно сделать 241 равным 100%. Но мне нужна помощь.

+0

241 в каком направлении? Как вы нашли это расстояние? –

ответ

0

Расстояние между отметками 241pt Маркировка кратная 100mg 1mg займет 2.41pt. Таким образом, 412 мг будет занимать (2.41 * 412) пт. Чтобы узнать, сколько нужно двигаться для следующей точки, воспользуйтесь разницей в мг и умножьте на 2,41. В общем, если расстояние между 2 маркировки в точках является д, маркировка кратны м, и требуемая точность является к знаков после запятой, 1мг будут занимать г: пусть делителем = POW (10.0, Double (k)) let g = round ((d/m) * divisor)/делитель

Смежные вопросы