我正在尝试在 C# 中开发一个游戏机制,涉及连接顶点并形成多边形。
可以有 5 到 30 个顶点。每个顶点可以用一条直线连接(这些线不能相交)。当一条线闭合了一个多边形时,多边形内部会被涂上特定的颜色。(如果在闭合过程中多边形内部会存在一个点,则无法关闭该多边形)
例如,下面的两张图片不可能出现: 然而,这可以: 我遇到的问题是如何区分刚刚闭合的多边形并记住它(以防我关闭与其共享边缘的多边形)。 我可以有多个闭合的多边形,直到可以从每个顶点绘制不违反交叉规则的所有线条为止。
我尝试记住已绘制的线条AB、ED、CD、CA等,并寻找循环,但当我关闭多个多边形时,我需要更多信息才能知道哪些多边形已经闭合。 但我很难想出如何做到这一点。
例如(下图),如果绘制了线n,我想找到刚刚创建的多边形。
可以有 5 到 30 个顶点。每个顶点可以用一条直线连接(这些线不能相交)。当一条线闭合了一个多边形时,多边形内部会被涂上特定的颜色。(如果在闭合过程中多边形内部会存在一个点,则无法关闭该多边形)
例如,下面的两张图片不可能出现: 然而,这可以: 我遇到的问题是如何区分刚刚闭合的多边形并记住它(以防我关闭与其共享边缘的多边形)。 我可以有多个闭合的多边形,直到可以从每个顶点绘制不违反交叉规则的所有线条为止。
我尝试记住已绘制的线条AB、ED、CD、CA等,并寻找循环,但当我关闭多个多边形时,我需要更多信息才能知道哪些多边形已经闭合。 但我很难想出如何做到这一点。
例如(下图),如果绘制了线n,我想找到刚刚创建的多边形。
有人知道我该如何实现这个吗? 任何想法、帮助或见解都会很有帮助。
n
的任何有效多边形都将是新的...至少我认为是这样的 :P - Theo Walton