Ejemplo n.º 1
0
        public static PathGeometry GetRightSideBackPageClip(Point hoverPoint, double pageWidth, double pageHeight)
        {
            double x     = pageWidth - hoverPoint.X;
            double y     = hoverPoint.Y;
            double curlX = CurlCalculator.GetCurlX(x, y);
            double curlY = CurlCalculator.GetCurlY(x, y);

            if (hoverPoint.Y >= 0.0)
            {
                if (curlY < pageHeight)
                {
                    return(GeometryBuilder.BuildPathGeometry(new Point(0.0, 0.0), new Point(curlX, 0.0), new Point(0.0, curlY)));
                }
                else
                {
                    return(GeometryBuilder.BuildPathGeometry(new Point(0.0, 0.0), new Point(curlX, 0.0), new Point(curlX * (curlY - pageHeight) / curlY, pageHeight), new Point(0.0, pageHeight)));
                }
            }
            else
            {
                double num = -curlY;
                if (num < pageHeight)
                {
                    return(GeometryBuilder.BuildPathGeometry(new Point(0.0, pageHeight - num), new Point(0.0, pageHeight), new Point(curlX, pageHeight)));
                }
                else
                {
                    return(GeometryBuilder.BuildPathGeometry(new Point(0.0, pageHeight), new Point(curlX, pageHeight), new Point(curlX * (num - pageHeight) / num, 0.0), new Point(0.0, 0.0)));
                }
            }
        }