|
@@ -13,7 +13,7 @@ function isTwoLine(arr) {
|
|
|
min = arr[i][0];
|
|
|
}
|
|
|
}
|
|
|
- return [min === 0, max];
|
|
|
+ return [min <0.05&&max> 0.95, max];
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -482,24 +482,40 @@ function isTwoLine(arr) {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 找到面得中心坐标
|
|
|
- * @param {线段数组} lineArr
|
|
|
+ * 找到面的中心坐标
|
|
|
+ * @param {线段数组} ary
|
|
|
* @param {水平缩放倍数} scaleTime
|
|
|
* @param {垂直缩放倍数} scaleTimeH
|
|
|
*/
|
|
|
- function _calculateMiddlePoint(test, scaleTime, scaleTimeH) {
|
|
|
+ function _calculateMiddlePoint(ary, scaleTime, scaleTimeH) {
|
|
|
+
|
|
|
var minX = 1,
|
|
|
minY = 1,
|
|
|
maxX = 0,
|
|
|
maxY = 0;
|
|
|
- for (var i = 0; i < test.length; i++) {
|
|
|
- for (var j = 0; j < test[i].line.length; j++) {
|
|
|
- minX = Math.min(minX, test[i].line[j][0]);
|
|
|
- minY = Math.min(minY, test[i].line[j][1]);
|
|
|
- maxX = Math.max(maxX, test[i].line[j][0]);
|
|
|
- maxY = Math.max(maxY, test[i].line[j][1]);
|
|
|
+ for (var i = 0; i < ary.length; i++) {
|
|
|
+ if (isTwoLine(ary[i].line)[0]) {
|
|
|
+ for (let j = 0; j < ary[i].line.length; j++) {
|
|
|
+ minX = Math.min(minX, ary[i].line[j][0]);
|
|
|
+ minY = Math.min(minY, ary[i].line[j][1]);
|
|
|
+ maxX = Math.max(maxX, ary[i].line[j][0]);
|
|
|
+ maxY = Math.max(maxY, ary[i].line[j][1]);
|
|
|
}
|
|
|
+ }else{
|
|
|
+ for (let j = 0; j < ary[i].line.length; j++) {
|
|
|
+ minX = Math.min(minX, ary[i].line[j][0]);
|
|
|
+ minY = Math.min(minY, ary[i].line[j][1]);
|
|
|
+ maxX = Math.max(maxX, ary[i].line[j][0]);
|
|
|
+ maxY = Math.max(maxY, ary[i].line[j][1]);
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // console.log('====================================');
|
|
|
+ // console.log('middle' ,[
|
|
|
+ // ((maxX - minX) / 2 + minX),
|
|
|
+ // ((maxY - minY) / 2 + minY)
|
|
|
+ // ]);
|
|
|
+ // console.log('====================================');
|
|
|
return [
|
|
|
((maxX - minX) / 2 + minX) * scaleTime,
|
|
|
((maxY - minY) / 2 + minY) * scaleTimeH
|
|
@@ -617,7 +633,15 @@ function isTwoLine(arr) {
|
|
|
return ret
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算面的数组
|
|
|
+ * @param {*} lineArr
|
|
|
+ * @param {*} faceArr
|
|
|
+ */
|
|
|
function _culaculateFaceArr(lineArr, faceArr) {
|
|
|
+ console.log('====================================');
|
|
|
+ console.log('faceArr',faceArr);
|
|
|
+ console.log('====================================');
|
|
|
var ret = [];
|
|
|
for (var i = 0; i < faceArr.length; i++) {
|
|
|
var item = [];
|
|
@@ -633,10 +657,18 @@ function isTwoLine(arr) {
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 选择面
|
|
|
+ * @param {*} lineArr
|
|
|
+ * @param {*} faceArr
|
|
|
+ * @param {*} current
|
|
|
+ * @param {*} scaleTime
|
|
|
+ * @param {*} scaleTimeH
|
|
|
+ */
|
|
|
function selectWhichFace(lineArr, faceArr, current, scaleTime, scaleTimeH) {
|
|
|
var allFaceArr = _culaculateFaceArr(lineArr, faceArr);
|
|
|
+
|
|
|
var ret = 0;
|
|
|
- var tempRet = 0;
|
|
|
var minDist =
|
|
|
faceArr &&
|
|
|
_calculateMiddlePointDistance(
|
|
@@ -645,7 +677,6 @@ function isTwoLine(arr) {
|
|
|
);
|
|
|
for (var i = 0; i < allFaceArr.length; i++) {
|
|
|
if (isInFace(current, allFaceArr[i].arr, scaleTime, scaleTimeH)) {
|
|
|
- // tempRet = i
|
|
|
ret = i
|
|
|
if (
|
|
|
_calculateMiddlePointDistance(
|
|
@@ -662,6 +693,9 @@ function isTwoLine(arr) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ console.log('====================================');
|
|
|
+ console.log('allFaceArr',allFaceArr[ret]);
|
|
|
+ console.log('====================================');
|
|
|
return allFaceArr[ret];
|
|
|
}
|
|
|
|