利用方向向量进行判断,共线则方向向量的单位向量相等或为其复数 如方向向量[2,2,0]与[5,5,0],[2,2,0]与[-1,-1,0]均为共线
function arrayEqual(arr1, arr2) {
// true 表示正向共线 ,false表示反向共线
let flag = true;
let flag2 = true;
if (arr1.length !== arr2.length) return false;
for (let i = 0; i < arr1.length; i++) {
// 跳过前面n个0
if (arr1[i] === 0) {
if (arr1[i] !== arr2[i]) {
return false;
}
continue;
}
// 判断第一个遇到数是否相反
if (arr1[i] === -arr2[i] && flag2) {
flag = false;
}
flag2 = false;
// 根据正负标记制定比较规则
if (flag) {
if (arr1[i] !== arr2[i]) {
return false;
}
} else {
if (arr1[i] !== -arr2[i]) {
return false;
}
}
}
return true;
}