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; } }