tremble 6 年之前
父节点
当前提交
d6a0419070
共有 3 个文件被更改,包括 595 次插入548 次删除
  1. 19 19
      js/drawGeometry.js
  2. 23 6
      js/main.js
  3. 553 523
      js/util.js

+ 19 - 19
js/drawGeometry.js

@@ -121,25 +121,25 @@ function drawGeometry(n_panorama_line_3d) {
 
 }
 
-/**
- * 
- * @param {*} point 
- */
-function findverticalLine(point) {
-    let lineAry = [];
-    for (let i = 0; i < panorama_line_3d.length; i++) {
-        for (let j = 0; j < panorama_line_3d[i].length; j++) {
-            for (let k = 0; k < panorama_line_3d[i][j]['points'].length; k++) {
-                let o_point = panorama_line_3d[i][j]['points'][k];
-                if (arrayEquals(o_point, point)) {
-                    lineAry.push(panorama_line_3d[i][j]['id']);
-                }
-            }
-        }
-    }
-    // console.log(lineAry);
-    return lineAry;
-}
+// /**
+//  * 
+//  * @param {*} point 
+//  */
+// function findverticalLine(point) {
+//     let lineAry = [];
+//     for (let i = 0; i < panorama_line_3d.length; i++) {
+//         for (let j = 0; j < panorama_line_3d[i].length; j++) {
+//             for (let k = 0; k < panorama_line_3d[i][j]['points'].length; k++) {
+//                 let o_point = panorama_line_3d[i][j]['points'][k];
+//                 if (arrayEquals(o_point, point)) {
+//                     lineAry.push(panorama_line_3d[i][j]['id']);
+//                 }
+//             }
+//         }
+//     }
+//     // console.log(lineAry);
+//     return lineAry;
+// }
 
 
 

+ 23 - 6
js/main.js

@@ -3,7 +3,7 @@
 var r2x = [
   // 俯视面
   [-1.92, 0.034, 1.5],
-  [-1.92, 0.284, 1.5],
+  [-2.92, 0.284, 1.5],
   [-6.02, 0.284, 1.5],
   [-6.02, 3.934, 1.5],
   [2.53, 3.934, 1.5],
@@ -15,7 +15,7 @@ var r2x = [
 
   // 仰视面
   [-1.92, 0.034, -1.5],
-  [-1.92, 0.284, -1.5],
+  [-2.92, 0.284, -1.5],
   [-6.02, 0.284, -1.5],
   [-6.02, 3.934, -1.5],
   [2.53, 3.934, -1.5],
@@ -124,9 +124,12 @@ var faceArr = [
 
 var verticalLine=[]
 
+var verticalArr = []
+
 var selectArray;
 var selectArr;
 var selectArrIdx;
+var selectVerticalLine;
 var rx1 = _3dLine(r2x, r3x, ret);
 
 img.onload = function() {
@@ -148,6 +151,8 @@ function draw() {
   context.lineWidth = w / 250;
   // 生成3d格式数据
   fix3dLineArr(rx1,faceArr)
+ 
+  
   var lineArr = _3dTo2d(
     make_matrix_from_quat([
       0.008515,
@@ -171,9 +176,19 @@ function draw() {
       lineArr,
       faceArr,
       current,
+      rx1,
+      scaleTime,
+      scaleTimeH
+    )[0];
+    selectVerticalLine = selectWhichFace(
+      lineArr,
+      faceArr,
+      current,
+      rx1,
       scaleTime,
       scaleTimeH
-    );
+    )[1];
+    verticalArr = findverticalLine(selectVerticalLine,rx1)
     selectArr = selectArray["arr"];
     selectArrIdx = faceArr[selectArray["id"]];
     // selectArr = [lineArr[1],lineArr[22],lineArr[11],lineArr[21]]
@@ -195,8 +210,10 @@ function draw() {
     (function() {
       if (isScale) {
         distance = deltaFactor * e.deltaY * scaleAccuracy;
-        lineArr = updateLineArr(distance, lineArr, r2x, selectArray["id"]);
+
+        lineArr = updateLineArr(distance, lineArr, rx1, selectArray["id"], verticalArr,selectArrIdx);
         selectArrIdx = faceArr[selectArray["id"]];
+
         selectArr = updateSelectArr(lineArr, selectArrIdx);
         selectDragLine(
           context,
@@ -215,7 +232,7 @@ function draw() {
     if (isScale) {
       if (e.keyCode == 38) {
         distance = deltaFactor * 1 * scaleAccuracy;
-        lineArr = updateLineArr(distance, lineArr, r2x, selectArray["id"]);
+        lineArr = updateLineArr(distance, lineArr, rx1, selectArray["id"]);
         selectArrIdx = faceArr[selectArray["id"]];
         selectArr = updateSelectArr(lineArr, selectArrIdx);
         selectDragLine(
@@ -229,7 +246,7 @@ function draw() {
         );
       } else if (e.keyCode == 40) {
         distance = deltaFactor * -1 * scaleAccuracy;
-        lineArr = updateLineArr(distance, lineArr, r2x, selectArray["id"]);
+        lineArr = updateLineArr(distance, lineArr, rx1, selectArray["id"]);
         selectArrIdx = faceArr[selectArray["id"]];
         selectArr = updateSelectArr(lineArr, selectArrIdx);
         selectDragLine(

文件差异内容过多而无法显示
+ 553 - 523
js/util.js