拆分3个独立轨道栏之间的最大值

时间:2017-11-09 18:35:02

标签: c# .net winforms

这可能很简单,也可能是漫长的一周,我的思绪无法提出答案。无论哪种方式,我都难以接受答案。

我有一个颜色数组,由4种颜色之间的范围组成。

_sourceLookupColorRange = new Color[128];

现在他们分开了。颜色1和2之间的增量为42,在2和3之间为43,在3和4之间为43。

Color set1 = Color.Green;
        Color set3 = Color.Yellow;
        Color set5 = Color.Orange;
        Color set6 = Color.Red;

        //find the interpolated values between the colors
        var res1 = ColorInterpolator.ReturnColorSet(42, set1, set3, 0);
        var res2 = ColorInterpolator.ReturnColorSet(43, set3, set5, 0);
        var res3 = ColorInterpolator.ReturnColorSet(43, set5, set6, 0);

        //copy the interpolated colors to the main source lookup array
        Array.Copy(res1, 0, _sourceLookupColorRange, 0, 42);
        Array.Copy(res2, 0, _sourceLookupColorRange, 42, 43);
        Array.Copy(res3, 0, _sourceLookupColorRange, 85, 43);

我想让用户能够拖动滑块以在颜色范围之间设置更多“重量”。前两个范围中可能有20个,第三个范围中有68个。我想使用3个轨道栏,以便在UI中轻松使用,但需要有关如何使其工作的帮助,或者是否有应如何完成的示例。

由于

1 个答案:

答案 0 :(得分:1)

我最终使用了比率。颜色范围除以3个轨道条的值之和给了我一个比率。然后,我将每个轨迹栏值乘以这个比率,得到我需要的三个缩放结果。