根据问题,以下几点不尊重订单,我不明白:
第1点: 0 0 第2点: 20 0 第3点: 0 50 第4点: 20 50
请有人向我解释一下吗?
答案 0 :(得分:0)
要查看点是否有序,您需要遵循在纸上所做的相同路径。 在纸上画一个矩形并按顺序命名点A(xA,xB),B(xB,yB),C(xC,yC)和D(xD,yD)。
从笔开始A.从A到B,有一个欧几里德等式(y=mx+p
)(1)。
m
是斜率,b
是截距。在Wikipedia - Line上查找更多信息
对于A和B之间的线
m = (yb − ya)/(xb − xa)
p = m(x − xa) + ya
然后你可以在(1)上找到替换m
和p
的等式。
当你有这个等式时,你需要找到第二个(在B和C之间)
如果您同时使用两个线方程式,则应用Line-line intersection
如果有交叉点,则点数不符合要求。如果没有,则在BC和CD行之间应用相同的算法。再次检查是否有交叉路口。如果没有,请使用CD和DA第三次进行。
答案 1 :(得分:0)
这是一个假设
的解决方案唯一允许的订单是左下角,右下角,右上角,左上角(Y指向上方)。
好== P0.X< P1.X&& P1.Y< P2.Y&& P2.X> P3.X&& P3.Y> P0.Y
如果允许序列移位,保持相同的顺序,可以复制此公式四次,并将它们复制。