首页 > 其他 > 详细

C# GDI+ 利用 Rectangle GraphicsPath 判断 矩形或多边形 图形关系

时间:2014-04-15 14:14:42      阅读:478      评论:0      收藏:0      [点我收藏+]

最近在做一些简单的图像对比工作,总结了一些GDI+对象的使用方式,记录下来共享给大家使用。

判断Rectangl与多边形的关系

bubuko.com,布布扣
  /// <summary>
        /// 是否包含输入范围
        /// </summary>
        /// <param name="rectangle">要对比的范围</param>
        /// <param name="scale">当前模型对比比例,如放大一倍、缩小一倍等,默认是1</param>
        /// <returns></returns>
        public bool Contains(Rectangle rectangle, double scale)
        {
            try
            {//按照比例缩放当前模型范围
                var ys = PtsYArray;
                var xs = PtsXArray;
            
                var gp = new GraphicsPath();
                gp.StartFigure();
                for (int i = 0; i < ys.Length; i++)
                {
                    //当前点和下一点不为空
                    if (!string.IsNullOrEmpty(ys[i]) && !string.IsNullOrEmpty(xs[i]) && !string.IsNullOrEmpty(ys[i+1]) && !string.IsNullOrEmpty(xs[i+1]))
                    {

                        gp.AddLine((int)(int.Parse(xs[i]) * scale), (int)(int.Parse(ys[i]) * scale), (int)(int.Parse(xs[i + 1]) * scale),
                                   (int)(int.Parse(ys[i + 1]) * scale));
                    }
                    else
                    {
                        gp.CloseFigure();
                        break;
                    }
                }
                var rg = new Region(gp);
               return rg.IsVisible(rectangle);
            }
            catch
            {
                return false;
            }
        }
bubuko.com,布布扣

判断Rectangl与Rectangl的关系

bubuko.com,布布扣
  /// <summary>
        /// 是否包含输入范围
        /// </summary>
        /// <param name="rectangle">要对比的范围</param>
        /// <param name="scale">当前模型对比比例,如放大一倍、缩小一倍等,默认是1</param>
        /// <returns></returns>
        public bool Contains(Rectangle rectangle, double scale)
        {
            try
            {//按照比例缩放当前模型范围
                var rectangle2 = new Rectangle((int) (int.Parse(X)*scale), (int) (int.Parse(Y)*scale),
                                               (int) (int.Parse(xR)*scale), (int) (int.Parse(yR)*scale));
                return rectangle.IntersectsWith(rectangle2);//对比两个最大外包是否有包含关系
            }
            catch 
            {
                return false;
            }
        }
bubuko.com,布布扣

希望对大家有用:)

C# GDI+ 利用 Rectangle GraphicsPath 判断 矩形或多边形 图形关系,布布扣,bubuko.com

C# GDI+ 利用 Rectangle GraphicsPath 判断 矩形或多边形 图形关系

原文:http://www.cnblogs.com/aoldman/p/3663516.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!