public static void selectLittleColorByXValue(double xValue, ref CurveColorEnum color, double xValueLeft, double xValueRight, ref int retColorIndex)
        {
            double interval = xValueRight - xValueLeft;

            double xValueLength = xValue - xValueLeft;

            double proportion = xValueLength / interval;  //0 -> 0.5 -> 1

            //???
            switch (color)
            {
            case CurveColorEnum.WhiteToYellow:
                int r = int.Parse(Math.Round((255 * proportion)).ToString());     // r 代表xValueLength 占 interval 的比例

                retColorIndex = Color.FromArgb(255, 255, 255 - r).ToArgb();
                break;

            case CurveColorEnum.YellowToRed:
                int g = int.Parse(Math.Round((255 * proportion)).ToString());

                retColorIndex = Color.FromArgb(255, 255 - g, 0).ToArgb();

                break;

            case CurveColorEnum.RedToBlack:
                int b = int.Parse(Math.Round((255 * proportion)).ToString());

                retColorIndex = Color.FromArgb(255 - b, 0, 0).ToArgb();
                //MessageBox.Show(string.Format("case Green :(0,{0},{1})", descG.ToString(), ascB.ToString()));
                break;
            }
        }
        public static void selectColorByXValue(LJJSPoint lrptstart, List <LJJSPoint> xValuesList, double xValue, ref int colorIndex)
        {
            //double MaxX = AddLineHatchManager.findMaxX(xValuesList);
            //double MinX = AddLineHatchManager.findMinX(xValuesList);
            #region

            /**
             * double MaxX = lrptstart.XValue+50;
             * double MinX = lrptstart.XValue;
             * double length = MaxX-MinX;
             *
             *
             * Color sourceColor = Color.Blue;
             * Color destColor = Color.Red;
             *
             * int redSpace = destColor.R - sourceColor.R;
             * int greenSpace = destColor.G - sourceColor.G;
             * int blueSpace = destColor.B - sourceColor.B;
             *
             *
             * double proportion = (xValue-lrptstart.XValue) / length;
             *
             * int r = int.Parse(Math.Round(sourceColor.R + proportion * redSpace).ToString());
             * int g = int.Parse(Math.Round(sourceColor.G + proportion * greenSpace).ToString());
             * int b = int.Parse(Math.Round(sourceColor.B + proportion * blueSpace).ToString());
             *
             *
             *
             *
             * colorIndex = Color.FromArgb(r, g, b).ToArgb(); **/
            #endregion
            #region


            double MaxX   = lrptstart.XValue + 50;
            double MinX   = lrptstart.XValue;
            double length = MaxX - MinX;

            double step = (MaxX - MinX) / 3;

            double ZoneOne = MinX + step;
            double ZoneTwo = MinX + 2 * step;

            CurveColorEnum curvecolor = CurveColorEnum.BlackToRed;

            if (xValue >= MinX && xValue < ZoneOne)   //白 -》 黄
            {
                curvecolor = CurveColorEnum.WhiteToYellow;
                AddLineHatchManager.selectLittleColorByXValue(xValue, ref curvecolor, MinX, ZoneOne, ref colorIndex);
            }
            else if (xValue >= ZoneOne && xValue < ZoneTwo)  //黄 -》 红
            {
                curvecolor = CurveColorEnum.YellowToRed;
                AddLineHatchManager.selectLittleColorByXValue(xValue, ref curvecolor, ZoneOne, ZoneTwo, ref colorIndex);
            }

            else if (xValue >= ZoneTwo && xValue <= MaxX)  //红 -》黑
            {
                curvecolor = CurveColorEnum.RedToBlack;
                AddLineHatchManager.selectLittleColorByXValue(xValue, ref curvecolor, ZoneTwo, MaxX, ref colorIndex);
            }

            else
            {
                //  curvecolor = CurveColorEnum.RedToBlack;
                //return;
                // AddLineHatchManager.selectLittleColorByXValue(xValue, ref curvecolor, ZoneTwo, MaxX, ref colorIndex,true);

                throw new Exception("???wxcs hatch");
                //return;
            }

            #endregion
        }
 public static void selectLittleColorByXValue(double xValue, ref CurveColorEnum color, double xValueLeft, double xValueRight, ref int retColorIndex, bool special)
 {
     retColorIndex = Color.FromArgb(255, 255, 255).ToArgb();
     return;
 }
 /// <summary>
 /// Original is Green, else is red
 /// </summary>
 /// <param name="CollectionName"></param>
 /// <param name="color"></param>
 /// <param name="colorIndex"></param>
 public static void selectColorByXValue_WithoutTransition(string CollectionName, out CurveColorEnum color, ref int colorIndex)
 {
     if (CollectionName.Equals("Original"))
     {
         color      = CurveColorEnum.BlackToRed;
         colorIndex = Color.FromArgb(0, 255, 0).ToArgb();
         return;
     }
     else
     {
         color      = CurveColorEnum.BlackToRed;
         colorIndex = Color.FromArgb(255, 73, 28).ToArgb();
         return;
     }
 }