【发布时间】:2016-08-30 17:18:01
【问题描述】:
我正在创建一个基本的绘图应用程序。我实现了基本形状和颜色更改选项。目前我正在将绘制的每条路径存储到一个列表中。
现在我想添加一个编辑选项,工作方式如下:
当用户点击绘制的形状(路径)时,它应该被突出显示 并且用户应该能够编辑形状。
我怎样才能做到这一点..?
【问题讨论】:
我正在创建一个基本的绘图应用程序。我实现了基本形状和颜色更改选项。目前我正在将绘制的每条路径存储到一个列表中。
现在我想添加一个编辑选项,工作方式如下:
当用户点击绘制的形状(路径)时,它应该被突出显示 并且用户应该能够编辑形状。
我怎样才能做到这一点..?
【问题讨论】:
您需要保留放入路径中的一堆点。
Bruteforce 例程应该如下所示:
1) 触地事件已触发。
2) 计算每个路径中的每个点到接触点的欧几里得距离。
3) 找到最短距离,判断距离是否足够短。
4) 如果是,请选择要选择的路径。
5) 根据需要编辑选定的点或其他点。
如果您有 20 个路径,每个路径都有 100 个点,则您必须至少计算 Math.sqrt() 2000 次,以确保屏幕延迟。
您可以选择曼哈顿距离方法而不是欧几里得来提高性能。
我建议你使用 OpenCV 功能。
【讨论】: