public static HsvColor FromRgb(RgbColor color) { double value = Comparables.Maximum(color.Red, color.Green, color.Blue); double chroma = value - Comparables.Minimum(color.Red, color.Green, color.Blue); if (chroma == 0) { return(new HsvColor(0, 0, value)); } double hue = 0; if (value == color.Red) { hue = (color.Green - color.Blue) / chroma + 0; } if (value == color.Green) { hue = (color.Blue - color.Red) / chroma + 2; } if (value == color.Blue) { hue = (color.Red - color.Green) / chroma + 4; } return(new HsvColor(hue.Modulo(6), chroma / value, value)); }
void InsertLength(double length) { if (PositionedControlComponents.Any(positionedControlComponent => positionedControlComponent.IsSelected)) { return; } double newCurveLength = Comparables.Maximum(1, nextSpecification.CurveLength + length); ChangeCurveLength(newCurveLength); curveOptimizer.Submit(nextSpecification); }
void InsertLength(double position, double length) { double newCurveLength = Comparables.Maximum(1, nextSpecification.CurveLength + length); double lengthRatio = nextSpecification.CurveLength / newCurveLength; ChangeCurveLength(newCurveLength); foreach (SpecificationComponent specificationComponent in SpecificationComponents) { specificationComponent.CurrentPosition = ShiftPosition(specificationComponent.CurrentPosition, position, lengthRatio); } RebuildCurveSpecification(); curveOptimizer.Submit(nextSpecification); }