c# - 有效去除具有相同斜率的点

标签 c# .net performance algorithm geometry

在我的一个应用程序中,我正在处理图形对象。我正在使用开源 GPC library剪辑/合并两个形状。为了提高准确性,我正在对现有形状进行采样(在两条边之间添加多个点)。但在显示合并后的形状之前,我需要删除两条边之间的所有点。

但我无法找到一种有效的算法来移除具有相同斜率且 CPU 使用率最低的两条边之间的所有点。目前所有点都是类型

PointF 

我正在使用以下函数计算斜率

  private float Slope(PointF point1, PointF point2)
  {
     return (point2.Y - point1.Y) / (point2.X - point1.X);
  }

关于此的任何指示都会有很大帮助。

最佳答案

您目前使用什么算法?我只能考虑遍历所有点,并且每 3 个检查中间点是否在由其他 2 个点定义的向量(或接近)上。 该操作需要数学吗?

关于c# - 有效去除具有相同斜率的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720335/

相关文章:

c# - ASP.NET MVC 选择列表中的错误。值不能为空,参数名称 : items

python - 提高 Python 中超大字典的性能

performance - 如何提高在 Haskell 中为输出生成字符串的性能

c# - WCF:创建服务失败

c# - 如何将鼠标悬停在一个分区上的鼠标指针更改为手?

c# - 在构建服务器 : Release or Debug code? 上进行单元测试

c# - 检查字符串中的字符集

c# - 将对象字段分配给局部变量有什么好处?

c# - 超时立即取消阻塞操作

algorithm - (2n log(n) + n) 变位词检测函数并不比 4n + 26 函数慢多少,尽管 n 很大