示例#1
0
        public void Update(SKRect plotRect)
        {
            this.plotRect = plotRect;

            titleRect = new SKRect(plotRect.Left, plotRect.Top, plotRect.Right, plotRect.Top + titleHeight);

            yLabelRect = new SKRect(plotRect.Left, plotRect.Top, plotRect.Left + yLabelWidth, plotRect.Bottom);
            yScaleRect = new SKRect(yLabelRect.Right, plotRect.Top, yLabelRect.Right + yScaleWidth, plotRect.Bottom);

            y2LabelRect = new SKRect(plotRect.Right - y2LabelWidth, plotRect.Top, plotRect.Right, plotRect.Bottom);
            y2ScaleRect = new SKRect(y2LabelRect.Left - y2ScaleWidth, plotRect.Top, y2LabelRect.Left, plotRect.Bottom);

            xLabelRect = new SKRect(plotRect.Left, plotRect.Bottom - xLabelHeight, plotRect.Right, plotRect.Bottom);
            xScaleRect = new SKRect(plotRect.Left, xLabelRect.Top - xScaleHeight, plotRect.Right, xLabelRect.Top);

            // shrink dataRect to its final size
            dataRect = plotRect;
            dataRect = dataRect.ShrinkBy(
                left: yLabelRect.Width + yScaleRect.Width,
                right: y2LabelRect.Width + y2ScaleRect.Width,
                bottom: xLabelRect.Height + xScaleRect.Height,
                top: titleRect.Height
                );

            // shrink labels and scales to match dataRect
            yLabelRect  = yLabelRect.MatchVert(dataRect);
            yScaleRect  = yScaleRect.MatchVert(dataRect);
            y2LabelRect = y2LabelRect.MatchVert(dataRect);
            y2ScaleRect = y2ScaleRect.MatchVert(dataRect);
            xLabelRect  = xLabelRect.MatchHoriz(dataRect);
            xScaleRect  = xScaleRect.MatchHoriz(dataRect);
        }
示例#2
0
        private SKRect SubplotRect(SKSize figureSize, Plot subplot)
        {
            SKRect renderArea = subplot.subplotPosition.GetRectangle(figureSize);

            float padLeft, padRight, padBottom, padTop;

            padLeft    = (subplot.subplotPosition.leftFrac == 0) ? padding.edges : padding.horizontal;
            padRight   = (subplot.subplotPosition.rightFrac == 1) ? padding.edges : padding.horizontal;
            padBottom  = (subplot.subplotPosition.botFrac == 1) ? padding.edges : padding.vertical;
            padTop     = (subplot.subplotPosition.topFrac == 0) ? padding.edges : padding.vertical;
            renderArea = renderArea.ShrinkBy(padLeft, padRight, padBottom, padTop);

            return(renderArea);
        }
示例#3
0
        /// <summary>
        /// Return the rectangle occupied by a subplot
        /// </summary>
        private SKRect GetSubplotRect(SKSize figureSize, Plot subplot)
        {
            // determine padding around the subplot (plot-plot padding is different than plot-edge padding)
            float padLeft, padRight, padBottom, padTop;

            padLeft   = (subplot.subplotPosition.leftFrac == 0) ? style.edges : style.horizontal;
            padRight  = (subplot.subplotPosition.rightFrac == 1) ? style.edges : style.horizontal;
            padBottom = (subplot.subplotPosition.botFrac == 1) ? style.edges : style.vertical;
            padTop    = (subplot.subplotPosition.topFrac == 0) ? style.edges : style.vertical;

            SKRect renderArea = subplot.subplotPosition.GetRectangle(figureSize);

            renderArea = renderArea.ShrinkBy(padLeft, padRight, padBottom, padTop);
            return(renderArea);
        }