浏览代码

update 0218

tremble 6 年之前
父节点
当前提交
d92313aace
共有 3 个文件被更改,包括 41 次插入15 次删除
  1. 8 4
      js/main.js
  2. 31 6
      js/util.js
  3. 2 5
      model_data/data.js

+ 8 - 4
js/main.js

@@ -107,14 +107,18 @@ var scaleTimeH;
 
 // 各个面的数组集合
 var faceArr = [
-  [1, 22, 11, 21],
-  [12, 2, 23, 22],
+  [20, 10, 21, 0],
+  [21, 11, 22, 1],
+  [22, 12, 23, 2],
   [23, 13, 24, 3],
+  [24, 14, 15, 26, 5, 4],
   [26, 16, 27, 6],
   [27, 17, 28, 7],
   [28, 18, 29, 8],
   [29, 19, 20, 9],
-  // [11,21,1,2,3,4,25,14,13,12]
+  [19, 18, 17, 16, 15, 25, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 14, 13, 12, 11, 10],
+  [25, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4],
+  [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 ];
 
 var selectArray;
@@ -138,7 +142,7 @@ function draw() {
   context.strokeStyle = "#ff0000";
   context.lineWidth = w / 250;
   var rx1 = _3dLine(r2x, r3x, ret);
-
+  fix3dLineArr(rx1,faceArr)
   var lineArr = _3dTo2d(
     make_matrix_from_quat([
       0.008515,

+ 31 - 6
js/util.js

@@ -81,6 +81,34 @@ function isTwoLine(arr) {
     console.log(ret)
     return ret;
   }
+
+  function fix3dLineArr(arr,faceArr) {
+      var ret = []
+    
+      
+      for (let i = 0; i < faceArr.length; i++) {
+        var item = {
+            faceLine:[],
+            index:[],
+            verticalLine:[]
+        }
+        for (let j = 0; j < faceArr[i].length; j++) {
+            for (let k = 0; k < arr.length; k++) {
+                if (faceArr[i][j]==arr[k]['3d_id']) {
+                    item.faceLine.push({
+                        id:faceArr[i][j],
+                        points:[arr[k]["3d_point1"],arr[k]["3d_point1"]]
+                    })
+                    item.index.push(faceArr[i][j])
+                }
+            }
+        }         
+        ret.push(item) 
+      }
+      console.log('====================================');
+      console.log('ret',ret);
+      console.log('====================================');
+  }
   
   // 归一化
   function normalize(xyz, isFixed) {
@@ -189,9 +217,7 @@ function isTwoLine(arr) {
       var r2x_temp = [[line[i]['3d_point2'][0]], [line[i]['3d_point2'][1]], [line[i]['3d_point2'][2]], [1]];
       var r1x = numbers.matrix.multiply(r10x, r1x_temp);
       var r2x = numbers.matrix.multiply(r10x, r2x_temp);
-      var r3x =
-          Math.hypot(r2x[0] - r1x[0], r2x[1] - r1x[1], r2x[2] - r1x[2]) / gap
-        ;
+      var r3x = Math.hypot(r2x[0] - r1x[0], r2x[1] - r1x[1], r2x[2] - r1x[2]) / gap
   
       var r2r1 = [r2x[0] - r1x[0], r2x[1] - r1x[1], r2x[2] - r1x[2]];
       var hasNormalize = normalize(r2r1, false);
@@ -223,7 +249,7 @@ function isTwoLine(arr) {
       var r7x_t = _calculate2dPoint(r6x_t);
       ret_t[i].line.push(toDecimal(r7x_t));
       item.push(toDecimal(r7x_t))
-    ret.push({
+      ret.push({
             "3d_id":[line[i]["3d_id"]][0],  
             '2d_arr':fixLine(item)
         })
@@ -240,7 +266,6 @@ function isTwoLine(arr) {
 
   function ret2dObj(arr) {
       var ret =[];
-      var item;
       var count = 0
       for (var i = 0; i < arr.length; i++) {
           for (var j = 0; j < arr[i]["2d_arr"].length; j++) {
@@ -266,7 +291,7 @@ function isTwoLine(arr) {
         "2d_point1": arr[i],
         "2d_point2": arr[i + 1]
       };
-      if (obj["2d_point2"]) {
+      if (obj["2d_point2"]&&obj["2d_point2"]!=obj["2d_point1"]) {
         t_arr.push(obj);
       }
     }

+ 2 - 5
model_data/data.js

@@ -41,10 +41,7 @@ let panorama_line_3d = [
         {
             id: 2,
             points: [[0.5 ,0.5 ,0.5], [0.5 ,-0.5 ,0.5]],
-				}
-				// {
-				// 	index: [10,6,11,2]
-				// }
+        }
     ],
     [
         {
@@ -102,7 +99,7 @@ let panorama_line_3d = [
     ]
 ]
 
-let line_as2d = {
+let lineasd_2d = {
     "panorama_line_2d":[{
 		"2d_id":0,
 		"3d_id":0,