huangxingxing vor 1 Jahr
Ursprung
Commit
c4707cefce
2 geänderte Dateien mit 105 neuen und 82 gelöschten Zeilen
  1. 1 1
      src/components/HelloWorld.vue
  2. 104 81
      src/view/myIndex.vue

+ 1 - 1
src/components/HelloWorld.vue

@@ -40,7 +40,7 @@ const foW =ref(false);//火灾 true  水灾 false
   Height:水位高度
 */
 
- const scalarName = ref("CO2");
+const scalarName = ref("CO2");
 const filedir =ref("data/Fire/");
 //const scalarName = ref("Height");
 //const filedir =ref("data/Water/"); 

+ 104 - 81
src/view/myIndex.vue

@@ -89,60 +89,59 @@ import vtkLookupTable from '@kitware/vtk.js/Common/Core/LookupTable';
 import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray.js';
 import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
 import { I } from '@kitware/vtk.js/macros2.js'
-    let time=3*60
-    let listArray=reactive([
-      {id:0,img:p1,name:'灾情演化'},
-      {id:1,img:p2,name:'演化过程'},
-      {id:2,img:p3,name:'动画'},
-      {id:3,img:p4,name:'日志'},
-      ]);
-      let dialogVisible=ref(false);
-      let num=ref(4)
-      let starttime=ref(1);
-      let endtime=ref(60);
-      let timenum=ref(2)
-      let isstop=ref(false)
-      let arrvalue=reactive(['fire', 'Temperature'])
-      let options=reactive( [
-         {
-          value: 'fire',
-          label: '火灾',
-          children: [{
-            value: 'Temperature',
-            label: '温度'
-          }, {
-            value: 'Pressure',
-            label: '压强'
-          }, {
-            value: 'SO2',
-            label: 'SO2'
-          }, {
-            value: 'CO2',
-            label: 'CO2'
-          }]
-        },
-       {
-          value: 'Water',
-          label: '水灾',
-          children: [{
-            value: 'Height',
-            label: '水位高度源'
-          }]
-        },
-        ])
-    function  add(id){
-      if(id==2){
-       dialogVisible.value=true
-      }
-      }
+let time=3*60
+let listArray=reactive([
+{id:0,img:p1,name:'灾情演化'},
+{id:1,img:p2,name:'演化过程'},
+{id:2,img:p3,name:'动画'},
+{id:3,img:p4,name:'日志'},
+]);
+let dialogVisible=ref(false);
+let num=ref(4)
+let starttime=ref(1);
+let endtime=ref(60);
+let timenum=ref(2)
+let isstop=ref(false)
+let arrvalue=reactive(['fire', 'Temperature'])
+let options=reactive( [
+      {
+      value: 'fire',
+      label: '火灾',
+      children: [{
+        value: 'Temperature',
+        label: '温度'
+      }, {
+        value: 'Pressure',
+        label: '压强'
+      }, {
+        value: 'SO2',
+        label: 'SO2'
+      }, {
+        value: 'CO2',
+        label: 'CO2'
+      }]
+    },
+    {
+      value: 'Water',
+      label: '水灾',
+      children: [{
+        value: 'Height',
+        label: '水位高度源'
+      }]
+    },
+    ])
+function  add(id){
+  if(id==2){
+    dialogVisible.value=true
+  }
+  }
 // 响应式状态
 const count = ref(0);
 const opacity = ref(0.1);
-
-
 const min=ref(0.0);
 const max=ref(1.0);
-const scalarAll = ref([]);
+const scalarFAll = ref([]);//火灾标量
+const scalarWAll = ref([]);//水灾标量
 /*
 Temperature:温度
 Pressure:压强
@@ -150,7 +149,7 @@ SO2:SO2
 CO2:CO2
 Height:水位高度
 */
-const scalarName = ref("CO2");
+// const scalarName = ref("CO2");
  const filedir =ref("data/Fire/");
 //const scalarName = ref("Height");
 // filedir =ref("data/Water/");
@@ -191,24 +190,22 @@ function getMinMax(scalars){
   console.log("max,min:",max.value,min.value);
 }
 //时间
-   function sleep(numberMillis) {
- 
-            var now = new Date();
-            var exitTime = now.getTime() + numberMillis;
-            console.log(exitTime)
-           
-        }
+function sleep(numberMillis) {
+  var now = new Date();
+  var exitTime = now.getTime() + numberMillis;
+  console.log(exitTime);      
+}
 //联级选择
 function handleChange(val){
-  console.log(val[0])
-  if(val[0]=='fire'){
-    let fireval=val[1];
-    let scalarName = ref(fireval);
-   let filedir =ref("data/Fire/");
-  }else{
-let scalarName = ref("Height");
-let filedir =ref("data/Water/");
-  }
+//   console.log(val[0])
+//   if(val[0]=='fire'){
+//     let fireval=val[1];
+//     let scalarName = ref(fireval);
+//    let filedir =ref("data/Fire/");
+//   }else{
+// let scalarName = ref("Height");
+// let filedir =ref("data/Water/");
+//   }
 
 }
 //暂停
@@ -234,12 +231,17 @@ function play(time){
    if( isstop.value==true){
   await sleep(time);
        count.value++;
-  const scalars=scalarAll.value[count.value];
+    var scalars;
+  if(arrvalue[0]=='fire'){
+       scalars=scalarFAll.value[count.value];
+  }else {
+       scalars=scalarWAll.value[count.value];
+  } 
   const polydata = mapper.getInputData();      
-  const scalarArray=scalars.get(scalarName.value);
+  const scalarArray=scalars.get(arrvalue[1]);
   // console.log("scalarArray:",scalarArray);
   const dataArray = vtkDataArray.newInstance({
-    name:scalarName.value,
+    name:arrvalue[1],
     size:polydata.getNumberOfPoints()
   }); 
   dataArray.setData(scalarArray);
@@ -258,12 +260,17 @@ function play(time){
 function Prev(){
     isstop.value=false;
     count.value--;
-  const scalars=scalarAll.value[count.value];
+  var scalars;
+  if(arrvalue[0]=='fire'){
+       scalars=scalarFAll.value[count.value];
+  }else {
+       scalars=scalarWAll.value[count.value];
+  } 
   const polydata = mapper.getInputData();      
-  const scalarArray=scalars.get(scalarName.value);
+  const scalarArray=scalars.get(arrvalue[1]);
   // console.log("scalarArray:",scalarArray);
   const dataArray = vtkDataArray.newInstance({
-    name:scalarName.value,
+    name:arrvalue[1],
     size:polydata.getNumberOfPoints()
   }); 
   dataArray.setData(scalarArray);
@@ -275,14 +282,21 @@ function Prev(){
 }
 // 用来修改状态、触发更新的函数
 function increment() {
+
+  console.log(arrvalue);
     isstop.value=false;
   count.value++;
-  const scalars=scalarAll.value[count.value];
+     var scalars;
+  if(arrvalue[0]=='fire'){
+       scalars=scalarFAll.value[count.value];
+  }else {
+       scalars=scalarWAll.value[count.value];
+  } 
   const polydata = mapper.getInputData();      
-  const scalarArray=scalars.get(scalarName.value);
+  const scalarArray=scalars.get(arrvalue[1]);
   // console.log("scalarArray:",scalarArray);
   const dataArray = vtkDataArray.newInstance({
-    name:scalarName.value,
+    name:arrvalue[1],
     size:polydata.getNumberOfPoints()
   }); 
   dataArray.setData(scalarArray);
@@ -294,11 +308,20 @@ function increment() {
 }
 //加载所有 标量数据
 function loadScalarAll(){
+  //水灾
  for (let index = 0; index <= 60; index++) {
     const reader = vtkUnstructuredDataReader.newInstance();
-    reader.setUrl(filedir.value+'POST'+index+'.vtk').then(() => {
+    reader.setUrl("data/Water/"+'POST'+index+'.vtk').then(() => {
     const scalars = reader.getOutputData(1);
-    scalarAll.value[index]=scalars;
+    scalarWAll.value[index]=scalars;
+    });
+  }
+  //火灾
+  for (let index = 0; index <= 60; index++) {
+    const reader = vtkUnstructuredDataReader.newInstance();
+    reader.setUrl("data/Fire/"+'POST'+index+'.vtk').then(() => {
+    const scalars = reader.getOutputData(1);
+    scalarFAll.value[index]=scalars;
     });
   }
   //  console.log("scalarAll.value:",scalarAll.value);
@@ -341,14 +364,14 @@ onMounted(() => {
   // fullScreenRenderer.setBackground([0,0,0]);
 
   // const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance();
- 
+  console.log("arrvalue:",arrvalue)
   reader.setUrl(filedir.value+'POST1.vtk').then(() => {
     const polydata = reader.getOutputData(0);        
     const scalars = reader.getOutputData(1);    
-    const scalarArray=scalars.get(scalarName.value);
+    const scalarArray=scalars.get(arrvalue[1]);
     console.log("scalarArray:",scalarArray);
     const dataArray = vtkDataArray.newInstance({
-      name:scalarName.value,
+      name:arrvalue[1],
       size:polydata.getNumberOfPoints()
     });
     dataArray.setData(scalarArray);
@@ -367,7 +390,7 @@ onMounted(() => {
     console.log("lut:",lut.getRange());    
     // Change the number of ticks (TODO: add numberOfTicks to ScalarBarActor)
     scalarBarActor.setGenerateTicks(generateTicks(5));
-    scalarBarActor.setAxisLabel(scalarName.value);
+    scalarBarActor.setAxisLabel(arrvalue[1]);
     scalarBarActor.setDrawAboveRangeSwatch(true);
     
     //修改设条颜色