当前位置: 首页 > news >正文

做网站去哪里做好石家庄网页设计的公司

做网站去哪里做好,石家庄网页设计的公司,seo 排名,电商公司的网上设计问题点 使用C#语言在一个给定的宽、高范围内#xff0c;获取到该多边形内部的所有坐标集合#xff1f; 这个多边形可能存在交叉及互相重叠部分 图像的宽、高可以定义为#xff1a;2000*2000 多边形坐标集合#xff1a;Point[] polygon_points new Point[] { new Point…问题点 使用C#语言在一个给定的宽、高范围内获取到该多边形内部的所有坐标集合 这个多边形可能存在交叉及互相重叠部分 图像的宽、高可以定义为2000*2000 多边形坐标集合Point[] polygon_points new Point[] { new Point(992, 1461), new Point(1616, 925), new Point(1706, 1816), new Point(1155, 948), new Point(1986, 1216), new Point(996, 1956), new Point(811, 1031) }; 解决方案一针对整体的图像宽高扫描可能耗时 要在 C# 中实现从一个多边形中获取其在给定宽度和高度范围内的所有整数坐标点你可以使用一种称为“扫描线算法”Scanline Algorithm的方法。这种方法通过水平扫描多边形的每一条边来确定哪些像素应该被填充。但是直接用纯数学方法实现可能会比较复杂特别是对于复杂的多边形。 下面是一个简化版的示例代码它使用了 System.Drawing 命名空间中的 GraphicsPath 和 Region 类来帮助我们找到多边形内部的点。请注意这个示例假设你在一个 Windows Forms 应用程序中工作因为 System.Drawing 主要用于图形处理。 using System; using System.Drawing; using System.Collections.Generic;class PolygonPointsFinder {public static ListPoint GetPolygonInteriorPoints(Point[] polygon_points, int width, int height){var interiorPoints new ListPoint();using (var graphicsPath new GraphicsPath()){graphicsPath.AddPolygon(polygon_points);using (var region new Region(graphicsPath)){for (int y 0; y height; y){for (int x 0; x width; x){if (region.IsVisible(x, y)){interiorPoints.Add(new Point(x, y));}}}}}return interiorPoints;} }class Program {static void Main(){Point[] polygon_points new Point[]{new Point(992, 1461),new Point(1616, 925),new Point(1706, 1816),new Point(1155, 948),new Point(1986, 1216),new Point(996, 1956),new Point(811, 1031)};int width 2000; // 定义宽度int height 2000; // 定义高度var points PolygonPointsFinder.GetPolygonInteriorPoints(polygon_points, width, height);// 打印所有内部点foreach (var point in points){Console.WriteLine($({point.X}, {point.Y}));}} } 这段代码首先定义了一个 GetPolygonInteriorPoints 方法它接收一个多边形的顶点和一个指定的宽度与高度。它创建一个 GraphicsPath 对象并添加多边形路径然后创建一个 Region 对象来表示这个路径的区域。接下来它遍历整个区域并检查每个点是否在区域内。如果在区域内则将该点添加到结果列表中。 最后Main 方法中调用了 GetPolygonInteriorPoints 并打印出所有内部点。由于多边形可能非常大实际运行时可能需要较长的时间尤其是当多边形的边界非常接近或超出指定的宽度和高度时。 解决方案二针对多边形的最小包含矩形扫描 同方法一在获取坐标时先把多边形形成的路径计算出来进而再次循环 using System; using System.Drawing; using System.Collections.Generic;class PolygonPointsFinder {public static ListPoint GetPolygonInteriorPoints(Point[] polygon_points){var interiorPoints new ListPoint();using (var graphicsPath new GraphicsPath()){graphicsPath.AddPolygon(polygon_points);RectangleF boundsF graphicsPath.GetBounds();Rectangle bounds new Rectangle((int)Math.Floor(boundsF.X),(int)Math.Floor(boundsF.Y),(int)Math.Ceiling(boundsF.Width),(int)Math.Ceiling(boundsF.Height));using (var region new Region(graphicsPath)){for (int y bounds.Top; y bounds.Bottom; y){for (int x bounds.Left; x bounds.Right; x){if (region.IsVisible(x, y)){interiorPoints.Add(new Point(x, y));}}}}}return interiorPoints;} }class Program {static void Main(){Point[] polygon_points new Point[]{new Point(992, 1461),new Point(1616, 925),new Point(1706, 1816),new Point(1155, 948),new Point(1986, 1216),new Point(996, 1956),new Point(811, 1031)};int width 2000; // 定义宽度int height 2000; // 定义高度var points PolygonPointsFinder.GetPolygonInteriorPoints(polygon_points);// 打印所有内部点foreach (var point in points){Console.WriteLine($({point.X}, {point.Y}));}} } 注意点 图像的边界处是否需要处理看情况根据自身情况考虑
http://www.dnsts.com.cn/news/191841.html

相关文章:

  • 口碑做团购网站.net微信网站开发
  • .net做的网站代码怎么申请建立一个公司网站
  • 做面食专业网站安监网站如何做紧急预案备案
  • 众筹网站怎么做推广中国建设银行启东市支行网站
  • 济宁网站建设常用解决方案网站品牌推广公司
  • 做pc端网站行业现状wordpress调用多个分类
  • 网站推广员如何做做网站优化推广多少钱
  • 有口碑的大连网站建设智慧团建网站登录平台官网
  • 儋州网站建设培训学校网站排名
  • 网站建设 代理网站建设工程师面试
  • 石景山网站制作在大网站做网页广告需要多少钱
  • 部分网站建设管理不规范滨州网站建设报价
  • 东莞网站关键词优化免费公司注册网站吗
  • 苍山县建设银行网站赣州北京网站建设
  • 公司做网站效果怎么样建e网如何合并多个全景图
  • 哈尔滨做网站哪好十大高端网站建设
  • 网站后台链接怎么做南宁互联网推广
  • wed网站做电影网站还能赚钱
  • 组建一个网站开发团队需要多少钱wordpress 自动更新
  • 外贸seo网站建设做网站设计软件
  • 做全景的网站天水市秦州区建设局网站
  • 湘潭网站建设厦门网站制作网站首页设计欣赏
  • 做网站需要做需求分析吗360浏览器直接进入网站
  • 图片 网站源码 采集主机类型wordpress
  • 安溪县住房和城乡规划建设局网站网站主页面布局怎么做
  • 上海网站建设升级搜索引擎营销的方法有哪些
  • 网站推广郑州免费白嫖国外服务器app
  • 网站构建的基本流程五个环节《传奇世界》官网
  • 个体工商户经营范围做网站电子商务这个专业好吗
  • 通化市网站建设网站建设案例收费情况