【问题标题】:An Algorithm for converting vectors into bitmap in C#C#中将矢量转换为位图的算法
【发布时间】:2014-01-13 06:24:32
【问题描述】:

有很多程序和算法用于将位图转换为矢量,但我想要一个简单的算法来将 多边形 转换为 Points 位图或将其映射到 grid,用 C# 编写。

我确信有很多这样的算法,但我找不到;非常感谢您的帮助。

上面的图片是我想要的样本。输入是红色多边形和网格,输出是紫色单元格。

【问题讨论】:

  • 这不就是创建一个合适大小的位图,然后使用Graphics.DrawLine()Graphics.DrawLines()吗?
  • 我编辑了问题:我添加了一张图片来展示我想要的样本。输入是红色多边形和网格,输出是紫色单元格。
  • 好的,这是一个填充的多边形,您可以使用Graphics.FillPolygon() 绘制它
  • 不完全是。我只想要紫色细胞。填充算法,填充所有多边形;甚至切割的细胞。但我不想要它们。
  • 一般称为“光栅化”,是计算机图形学的基本算法之一。通常,您确定一个几何点来表示每个像素以确定内部/外部。 (这对于一致性是必要的,否则两个相邻的填充多边形会在它们之间留下间隙。)您似乎想要完全包含像素,对吗?您是否了解您的要求对于多边形填充是非标准的?你有这样的理由吗?

标签: c# computational-geometry


【解决方案1】:

我认为计算与水平轴或垂直轴相切的线非常容易。所以你的问题实际上是处理对角线。您只能在对角线上应用 bresenham 线算法 (http://en.wikipedia.org/wiki/Bresenham's_line_algorithm) 并执行“逆”

【讨论】:

  • 感谢您的帮助。但我不想将它的边框映射到位图中。正如您在图像中看到的,我只想要内部正方形。所以“反转”也帮不了我。因为它也返回外部方块;但我不想要它们。
  • 你的形状总是闭合的吗?如果你能得到外部方块,你可以使用洪水填充得到内部方块
猜你喜欢
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2011-12-14
相关资源
最近更新 更多