如何找到剩余距离以在两点之间移动UIView

时间:2016-06-03 22:58:47

标签: ios math graph

SCENARIO

我正在开发一个将血糖水平跟踪到图表中的应用程序。在图表上有"标记" (例如:-200mg)沿着屏幕右侧的y轴以垂直顺序进行,并且"小时" (例如:-12:00 PM)将沿图表底部的x轴。我必须画出小点'显示整个过程中的血糖水平。

问题

我正在尝试计算如何定位点数'在正确的时间和毫克水平,我很难计算位置。我可以访问"标记"并检索它marking.center.x以指示哪个'时间段' (x轴)和marking.center.y表示哪个' MG等级' ' dot'需要进入。问题是它不总是正好在12:00 PM或200mg需要放置的地方。事实上,这将是非常罕见的。

我需要什么

基于以下变量:

dot.mgLevel 点将根据从医疗设备检索到的信息知道它需要去哪里。它将知道时间和mgLevel来分配自己。

marking.mgLevel 标记将分别具有均匀分布的值,例如-100mg-200mg-300mg等...

timemarking.timeslot 每次在底部的标记将每30分钟分配均匀分布的时间。例如-12:00PM-12:30PM-1:00PM等...

如果点的mg水平为330mg且mg水平上最接近的标记为300mg,那么我需要能够计算点需要多远才能从300转向400mg标记。

... SO

如果标记之间的距离是100pt并且点的mg等级是330mg,那么我知道我需要将点从300mg标记移动到400mg标记正好30pt。这是因为它是简单的数学,因为标记之间的距离是100.但在现实生活中它不是100,所以我需要能够计算出来。

我的终极问题

标记之间的距离为241,每个标记代表一百的倍数。假设我的点的mg等级为412.如何计算移动点所需的距离以使其位于正确的位置?

我认为?

我认为我需要使241等于100%。但我需要帮助。

1 个答案:

答案 0 :(得分:0)

标记之间的距离为241pt 标记是100毫克的倍数 1mg将占据2.41pt。因此412mg将占据(2.41 * 412)pt。要知道下一个点要移动多少,请取差值mg并乘以2.41。 一般情况下,如果两个标记之间的距离为 d ,则标记为 m 的倍数,所需精度为 k 小数位,1mg将占据 g : 让divisor = pow(10.0,Double(k)) 设g = round((d / m)*除数)/ divisor