Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        void InsertLength(double length)
        {
            if (PositionedControlComponents.Any(positionedControlComponent => positionedControlComponent.IsSelected))
            {
                return;
            }

            double newCurveLength = Comparables.Maximum(1, nextSpecification.CurveLength + length);

            ChangeCurveLength(newCurveLength);

            curveOptimizer.Submit(nextSpecification);
        }
Exemplo n.º 3
0
        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);
        }