1、首先给一个两个区间映射的公式:
2、最近做项目中频繁用到区间转换,在网上找了许多例子都只有公式介绍,没有直接可用的代码,所以自己写一个给大家参考
3、直接给实现代码:
struct Interval
{
Interval(): min(0.0), max(1.0){}
Interval(const double &_min, const double &_max)
: min(_min), max(_max){}
double min;
double max;
};
class CIntervalMap
{
#define EPSILON 0.000001
public:
CIntervalMap(const double &min = 0.0, const double &max = 1.0)
{
m_dstInterval.min = min;
m_dstInterval.max = max;
}
void setSrcInterval(const double &min = 0.0, const double &max = 1.0)
{
m_srcInterval.min = min;
m_