2013-07-25 37 views
4

之间的值百分比值,这可能是一个非常愚蠢的问题,但..如何计算两点

我有3个值,例如可以给他们打电话了minX,currentX和maxX的。即时通讯寻找一种方法来计算currentX代表的maxX的百分比。例如,如果maxX是50,minX是40,currentX是45,那么我想得到50%,这是非常基本的,但是我遇到的问题是当我的一个或多个变量是负数时。

任何帮助,将不胜感激,也让我知道,如果我没有解释自己不够好

+0

我不明白你在问什么.... – Paddyd

+0

表明您已经尝试 – Ehsan

+0

添的回答作品完美的代码,但你是对的,我会确保我记得下次提出我的代码。 – kgpmurray

回答

16
(currentX - minX)/(maxX - minX) 

会给你的百分比,即使你正在使用负数(只要maxX > currentX > minX)。还要确保你正在处理双打/浮动,而不是整数。否则你需要施放。

+0

谢谢你,作品像魅力。 – kgpmurray

+0

这是Unity,所以它是浮动的,不是双打的。您可以查看Unity的InverseLerp实现;你的是它的重要组成部分。 – Jessy

0

你需要有一些错误检查,以确保它是一个正数。

如果(X> = 0)

..do你的东西

其他

值输入的是小于0

+0

不幸的是,这些值是从Unity3d的世界空间坐标中获取的,因此有时候方程必须使用负数。 – kgpmurray

+0

没有理由不接受负数。他们只是数字。 –