在我的一个应用程序中,我正在处理图形对象。我正在使用开源 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/