tremble 6 年之前
父节点
当前提交
74c521d99f
共有 1 个文件被更改,包括 46 次插入12 次删除
  1. 46 12
      js/util.js

+ 46 - 12
js/util.js

@@ -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];
   }