代码之家  ›  专栏  ›  技术社区  ›  zoul

如何在一个简单的绘图应用程序中实现橡皮擦工具?

  •  0
  • zoul  · 技术社区  · 14 年前

    我有一个简单的绘图应用程序的原型。当用户在屏幕上拖动手指时,我会记录沿途的点,并在它们之间画一系列的线。换句话说,图形是路径列表,每条路径都是要连接的点列表。这很容易,它的工作和效率。

    问题是我想实现一个橡皮擦工具。在常规位图编辑器中,橡皮擦只是擦除像素,但在我的绘图中没有要擦除的像素所有像素都是通过笔划路径动态创建的。我可以做一个简单的橡皮擦绘制使用背景色,覆盖已绘制的路径。但我想画一个纹理背景,所以这是一个没有去。

    你会怎么做?(缺少将图形表示为位图的明显解决方案,其中橡皮擦很简单。)

    3 回复  |  直到 14 年前
        1
  •  2
  •   Adam Robinson    14 年前

    您不能实现传统意义上的橡皮擦;您所描述的记录路径并动态绘制它们是 . 橡皮擦的概念来自 (基本上是位图)。对于矢量图形,用户通常选择要删除的项目或项目区域。

        2
  •  1
  •   Grant Crofton    14 年前

    您可能会找到现有路径与已删除区域的交点,将现有路径拆分,并在交点处创建新点(这将成为新拆分路径的起点/终点)。

        3
  •  1
  •   Sebastien Lorber    14 年前

    我可以做一个简单的橡皮擦 使用背景色绘制, 覆盖已绘制的路径。 但我想画一个有纹理的

    你不能做一个“橡皮擦画”,除非你不使用单一的颜色,但整个背景的颜色。我的意思是,对于一个给定的擦除路径,你把每个像素一个接一个地用同一个像素的背景色来着色