C# C语言中矢量位图转换算法#

C# C语言中矢量位图转换算法#,c#,computational-geometry,C#,Computational Geometry,从位图到矢量的转换有很多程序和算法,但我想要一个简单的算法,将由点决定的多边形转换为位图,或将其映射到网格,用C# 我肯定有很多这样的算法,但我找不到任何;我将非常感谢你的帮助 上面的图片是我想要的样本。输入是红色多边形和网格,输出是紫色单元格。我认为计算与水平轴或垂直轴相切的直线非常容易。所以你的问题实际上是处理对角线。您可以只在对角线上应用bresenham直线算法()并进行“反向”我认为计算与水平轴或垂直轴相切的直线非常容易。所以你的问题实际上是处理对角线。您可以只在对角线上应用brese

从位图到矢量的转换有很多程序和算法,但我想要一个简单的算法,将由点决定的多边形转换为位图,或将其映射到网格,用C#

我肯定有很多这样的算法,但我找不到任何;我将非常感谢你的帮助


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

我认为计算与水平轴或垂直轴相切的直线非常容易。所以你的问题实际上是处理对角线。您可以只在对角线上应用bresenham直线算法()并进行“反向”

我认为计算与水平轴或垂直轴相切的直线非常容易。所以你的问题实际上是处理对角线。您可以只在对角线上应用bresenham line算法(),并执行“反转”

这不只是创建一个适当大小的位图,然后使用
Graphics.DrawLine()
Graphics.DrawLines()
?我编辑了这个问题:我添加了一个图像来显示我想要的示例吗。输入是红色的多边形和网格,输出是紫色的单元格。好的,这是一个填充多边形,你可以不精确地使用它来绘制。我只想要紫色的细胞。填充算法,填充所有多边形;甚至是被切割的细胞。但我不想要它们。一般来说,这叫做“光栅化”,是计算机图形学的基本算法之一。通常,您可以标识单个几何点来表示每个像素,以确定内部/外部。(这对于一致性是必要的,否则两个相邻的填充多边形之间会留下一个间隙。)您似乎想要完全包含像素,对吗?您是否了解您的要求是多边形填充的非标准要求?你这样做是有原因的吗?这不只是创建一个适当大小的位图,然后使用
Graphics.DrawLine()
Graphics.DrawLines()
?我编辑了这个问题:我添加了一个图像来显示我想要的样本。输入是红色的多边形和网格,输出是紫色的单元格。好的,这是一个填充多边形,你可以不精确地使用它来绘制。我只想要紫色的细胞。填充算法,填充所有多边形;甚至是被切割的细胞。但我不想要它们。一般来说,这叫做“光栅化”,是计算机图形学的基本算法之一。通常,您可以标识单个几何点来表示每个像素,以确定内部/外部。(这对于一致性是必要的,否则两个相邻的填充多边形之间会留下一个间隙。)您似乎想要完全包含像素,对吗?您是否了解您的要求是多边形填充的非标准要求?你想这样做有什么原因吗?谢谢你的帮助。但我不想把它的边框映射成位图。正如你在图中看到的,我只想要内部的正方形。所以“反转”也帮不了我。因为它也返回外方;但是我不想要它们。你的形状总是闭合的吗?如果你能得到外方,你可以用flood Fill得到内方,谢谢你的帮助。但我不想把它的边框映射成位图。正如你在图中看到的,我只想要内部的正方形。所以“反转”也帮不了我。因为它也返回外方;但是我不想要它们。你的形状总是闭合的吗?如果你能得到外部的方块,你可以使用泛光填充得到内部的方块