我正在尝试实现在 C#中描述的Bentley-Ottmann 算法。特别是,我在扫描线状态结构中为Segment类实现 IComparable<T> 时遇到问题。下面列出了段类:
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)
{
?????
}
}
当我将两个段添加到扫描线状态结构时,我不清楚应该如何比较它们?