Example #1
0
        Matrix ProjectionForAxis(Rect area, double scale)
        {
            switch (Side)
            {
            case Side.Bottom:
                return(MatrixSupport.ProjectionFor(area.Left, area.Top + AxisMargin, scale, 1));

            case Side.Top:
                return(MatrixSupport.ProjectionFor(area.Left, area.Bottom - AxisMargin, scale, 1));

            case Side.Left:
                return(MatrixSupport.ProjectionFor(area.Right - AxisMargin, area.Top, 1, scale));

            case Side.Right:
                return(MatrixSupport.ProjectionFor(area.Left + AxisMargin, area.Top, 1, scale));

            default:
                throw new NotImplementedException($"Not Implemented: {Side}");
            }
        }
Example #2
0
        Matrix ProjectionFor(Rect area, bool reverse = false)
        {
            switch (Side)
            {
            case Side.Bottom:
                return(MatrixSupport.ProjectionFor(
                           reverse ? area.Right : area.Left,
                           area.Top + AxisLineThickness + 2 * AxisMargin,
                           reverse ? -1 : 1,
                           1
                           ));

            case Side.Top:
                return(MatrixSupport.ProjectionFor(
                           reverse ? area.Right : area.Left,
                           area.Top + AxisLineThickness + 2 * AxisMargin,
                           reverse ? -1 : 1,
                           -1
                           ));

            case Side.Left:
                return(MatrixSupport.ProjectionFor(
                           area.Right,
                           area.Top,
                           -area.Width - AxisLineThickness - 2 * AxisMargin,
                           reverse ? -1 : 1
                           ));

            case Side.Right:
                return(MatrixSupport.ProjectionFor(
                           area.Left + AxisLineThickness + 2 * AxisMargin,
                           area.Top,
                           1,
                           reverse ? -1 : 1
                           ));

            default:
                throw new NotImplementedException($"Not Implemented: {Side}");
            }
        }