gpt4 book ai didi

c# - Bentley-Ottmann 算法中 Segment 类的 IComparable 实现

转载 作者:行者123 更新时间:2023-11-30 18:37:00 32 4
gpt4 key购买 nike

我正在尝试实现描述的 Bentley-Ottmann 算法 here在 C# 中。特别是,我在扫描线状态结构中为 Segment 类实现 IComparable 时遇到问题。下面列出了段类:

public class SweepLineSegment : IComparable<SweepLineSegment>
{
public int Edge { get; set; }
public PointF LeftmostVertexPoint { get; set; }
public PointF RightmostVertexPoint { get; set; }
public SweepLineSegment Above { get; set; }
public SweepLineSegment Below { get; set;}

public int CompareTo(SweepLineSegment other)
{
?????
}
}

我不清楚将两个段添加到扫描线状态结构时应该如何比较它们?

最佳答案

您为什么要尝试比较线段?四个坐标的元组没有任何总排序。

如果您想要边沿多边形周边出现的顺序,您应该只跟踪线段索引。我猜这是 Edge 属性?尝试 return Edge.CompareTo(other.Edge)

但我建议根本不要实现 IComparable。你需要它做什么?

关于c# - Bentley-Ottmann 算法中 Segment 类的 IComparable 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13236946/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com