我们得到了二维平面上4个点的坐标。我们如何找到一个订单,将它们与行连接起来,形成一个四边形 (只要有可能)?
发布于 2015-05-26 01:01:46
通过一个函数可以很容易地解决这个问题,这个函数可以说明两个线段是否相交。
给定点A,B,C,D,只有三种不同的顺序连接顶点: ABCD,ABDC和ACBD (顶点A要么连接到顶点B,要么不连接。如果连接到顶点B,则有两种方式来排序C和D。如果没有,则A连接到C和D,它们都必须连接到B)。
这四个点的顺序产生一个四边形,如果没有任何边缘相交(除了角)。这就为查找工作命令提供了以下程序:
If AB intersects with CD then return ACBD.
If AD intersects with BC then return ABDC.
Otherwise return ABCD.证明这一点是容易的:
如果您自己找不出,那么确定两个线段是否相交的代码可以在线找到。
https://stackoverflow.com/questions/30438748
复制相似问题