|  | @@ -3,7 +3,7 @@
 | 
	
		
			
				|  |  |      <div>
 | 
	
		
			
				|  |  |        <!--button @click="increment">Count is: {{ count }}</button-->
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  | -    <div id="vtkContainer" />
 | 
	
		
			
				|  |  | +    <!-- <div id="vtkContainer" /> -->
 | 
	
		
			
				|  |  |      <div class="tool">
 | 
	
		
			
				|  |  |        <div
 | 
	
		
			
				|  |  |          class="img"
 | 
	
	
		
			
				|  | @@ -30,24 +30,6 @@
 | 
	
		
			
				|  |  |                ></el-cascader>
 | 
	
		
			
				|  |  |              </el-form-item>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  | -          <!-- <el-form-item
 | 
	
		
			
				|  |  | -          label="动画开始"
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -        >
 | 
	
		
			
				|  |  | -          <el-input
 | 
	
		
			
				|  |  | -               v-model="starttime"
 | 
	
		
			
				|  |  | -            autocomplete="off"
 | 
	
		
			
				|  |  | -          ></el-input>
 | 
	
		
			
				|  |  | -        </el-form-item>
 | 
	
		
			
				|  |  | -         <el-form-item
 | 
	
		
			
				|  |  | -          label="动画结束"
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -        >
 | 
	
		
			
				|  |  | -          <el-input
 | 
	
		
			
				|  |  | -                 v-model="endtime"
 | 
	
		
			
				|  |  | -            autocomplete="off"
 | 
	
		
			
				|  |  | -          ></el-input>
 | 
	
		
			
				|  |  | -        </el-form-item> -->
 | 
	
		
			
				|  |  |            <div class="block">
 | 
	
		
			
				|  |  |              <span class="demonstration">动画开始</span>
 | 
	
		
			
				|  |  |              <el-slider
 | 
	
	
		
			
				|  | @@ -65,20 +47,48 @@
 | 
	
		
			
				|  |  |              <div class="item" @click="Prev">上一分钟</div>
 | 
	
		
			
				|  |  |              <div class="item" @click="increment">下一分钟</div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  | -          <!-- <button @click="inOpacity">透明度: {{ opacity }}</button> -->
 | 
	
		
			
				|  |  |            <div class="dialog-footer">
 | 
	
		
			
				|  |  |              <span class="btn" @click="dialogVisible = false">关 闭</span>
 | 
	
		
			
				|  |  | -            <!-- <el-button>关 闭</el-button> -->
 | 
	
		
			
				|  |  | -            <!-- <el-button type="primary" @click="dialogVisible = false">确 定</el-button> -->
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |      <!-- 内容 -->
 | 
	
		
			
				|  |  |          <!-- 内容 -->
 | 
	
		
			
				|  |  | +        <!-- 日志 -->
 | 
	
		
			
				|  |  | +        <el-dialog
 | 
	
		
			
				|  |  | +    v-model="dialog.dialogVisible"
 | 
	
		
			
				|  |  | +    title="日志"
 | 
	
		
			
				|  |  | +    width="30%"
 | 
	
		
			
				|  |  | +    :left="rizhi.left"
 | 
	
		
			
				|  |  | +    :top="rizhi.top"
 | 
	
		
			
				|  |  | +    :modal="false"
 | 
	
		
			
				|  |  | +    :close-on-click-modal="false"
 | 
	
		
			
				|  |  | +    draggable
 | 
	
		
			
				|  |  | +    :before-close="handleClose"
 | 
	
		
			
				|  |  | + class="dialog_class"
 | 
	
		
			
				|  |  | +  >
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  <div class="footerTextBox">
 | 
	
		
			
				|  |  | +                <el-input
 | 
	
		
			
				|  |  | +                  class="footerText"
 | 
	
		
			
				|  |  | +                  type="textarea"
 | 
	
		
			
				|  |  | +                  id="textarea_id"
 | 
	
		
			
				|  |  | +                  v-model="rizhi.logs"
 | 
	
		
			
				|  |  | +                ></el-input>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +    <template #footer>
 | 
	
		
			
				|  |  | +      <span class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button @click="dialog.dialogVisible = false">取消</el-button>
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="dialog.dialogVisible = false">
 | 
	
		
			
				|  |  | +          确定
 | 
	
		
			
				|  |  | +        </el-button>
 | 
	
		
			
				|  |  | +      </span>
 | 
	
		
			
				|  |  | +    </template>
 | 
	
		
			
				|  |  | +  </el-dialog>
 | 
	
		
			
				|  |  |          <div>
 | 
	
		
			
				|  |  |            <!-- :title1="title1" -->
 | 
	
		
			
				|  |  | -   <evolutionView ref="evolution" />
 | 
	
		
			
				|  |  | +   <evolutionView ref="evolution" :dialogVisiblerz="dialog.dialogVisible" @getthislog="getthislog" @logonclick=logonclick />
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
	
		
			
				|  | @@ -89,22 +99,7 @@ import p2 from "@/assets/img/u10068.png";
 | 
	
		
			
				|  |  |  import p3 from "@/assets/img/12.png";
 | 
	
		
			
				|  |  |  import p4 from "@/assets/img/u3883.png";
 | 
	
		
			
				|  |  |  import p5 from "@/assets/img/u3405.png";
 | 
	
		
			
				|  |  | -import * as d3 from "d3-scale";
 | 
	
		
			
				|  |  | -import { formatDefaultLocale } from "d3-format";
 | 
	
		
			
				|  |  | -import { ref, onMounted, reactive } from "vue";
 | 
	
		
			
				|  |  | -import "@kitware/vtk.js/Rendering/Profiles/Geometry";
 | 
	
		
			
				|  |  | -import vtkRenderWindowWithControlBar from "@kitware/vtk.js/Rendering/Misc/RenderWindowWithControlBar";
 | 
	
		
			
				|  |  | -import vtkFullScreenRenderWindow from "@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import vtkActor from "@kitware/vtk.js/Rendering/Core/Actor";
 | 
	
		
			
				|  |  | -import vtkMapper from "@kitware/vtk.js/Rendering/Core/Mapper";
 | 
	
		
			
				|  |  | -import vtkUnstructuredDataReader from "../reader/UnstructuredDataReader.js";
 | 
	
		
			
				|  |  | -import vtkScalarBarActor from "@kitware/vtk.js/Rendering/Core/ScalarBarActor";
 | 
	
		
			
				|  |  | -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";
 | 
	
		
			
				|  |  | -import { Representation } from '@kitware/vtk.js/Rendering/Core/Property/Constants';
 | 
	
		
			
				|  |  | +import { ref, onMounted, reactive,nextTick } from "vue";
 | 
	
		
			
				|  |  |  import evolutionView  from "./evolutionView.vue"
 | 
	
		
			
				|  |  |  // import {RouterView,RouterLink} from "vue-router"
 | 
	
		
			
				|  |  |  // const router=RouterView();
 | 
	
	
		
			
				|  | @@ -120,6 +115,16 @@ let listArray = reactive([
 | 
	
		
			
				|  |  |  ]);
 | 
	
		
			
				|  |  |  // let title1=ref("我是父组件")
 | 
	
		
			
				|  |  |  let dialogVisible = ref(false);
 | 
	
		
			
				|  |  | +let dialog=ref({
 | 
	
		
			
				|  |  | +  dialogVisible:false
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +let rizhi=ref({
 | 
	
		
			
				|  |  | +  top:"50px",
 | 
	
		
			
				|  |  | +  logs:'',
 | 
	
		
			
				|  |  | +  left:"90px"
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +let newlog=ref("");
 | 
	
		
			
				|  |  | +let log=ref("");
 | 
	
		
			
				|  |  |  let num = ref(4);
 | 
	
		
			
				|  |  |  let starttime = ref(1);
 | 
	
		
			
				|  |  |  let endtime = ref(60);
 | 
	
	
		
			
				|  | @@ -161,84 +166,31 @@ let options = reactive([
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  ]);
 | 
	
		
			
				|  |  |  function add(id) {
 | 
	
		
			
				|  |  | -  if (id == 2) {
 | 
	
		
			
				|  |  | -    dialogVisible.value = true;
 | 
	
		
			
				|  |  | -    evolution.value.isshow=false;
 | 
	
		
			
				|  |  | +  if (id == 0) {
 | 
	
		
			
				|  |  | +    evolution.value.isshow=true;
 | 
	
		
			
				|  |  | +    evolution.value.getdata();
 | 
	
		
			
				|  |  | +    dialogVisible.value = false;
 | 
	
		
			
				|  |  | +    dialog.value.dialogVisible=false;
 | 
	
		
			
				|  |  |    }else if(id==1){
 | 
	
		
			
				|  |  |      // router.push("/myDemo");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -  else if(id==0){
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -    evolution.value.isshow=true;
 | 
	
		
			
				|  |  | -    evolution.value.getdata();
 | 
	
		
			
				|  |  | +  else if(id==2){
 | 
	
		
			
				|  |  | +    dialogVisible.value = true;
 | 
	
		
			
				|  |  | +    evolution.value.isshow=false;
 | 
	
		
			
				|  |  | +    dialog.value.dialogVisible=false;
 | 
	
		
			
				|  |  | +  }else if(id==3){
 | 
	
		
			
				|  |  | +    dialog.value.dialogVisible=true;
 | 
	
		
			
				|  |  |      dialogVisible.value = false;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -// 响应式状态
 | 
	
		
			
				|  |  | -const count = ref(0);
 | 
	
		
			
				|  |  | -const opacity = ref(0.1);
 | 
	
		
			
				|  |  | -const min = ref(0);
 | 
	
		
			
				|  |  | -const max = ref(1);
 | 
	
		
			
				|  |  | -const scalarFAll = ref([]); //火灾标量
 | 
	
		
			
				|  |  | -const scalarWAll = ref([]); //水灾标量
 | 
	
		
			
				|  |  | -/*
 | 
	
		
			
				|  |  | -Temperature:温度
 | 
	
		
			
				|  |  | -Pressure:压强
 | 
	
		
			
				|  |  | -SO2:SO2
 | 
	
		
			
				|  |  | -CO2:CO2
 | 
	
		
			
				|  |  | -Height:水位高度
 | 
	
		
			
				|  |  | -*/
 | 
	
		
			
				|  |  | -// const scalarName = ref("CO2");
 | 
	
		
			
				|  |  | -//  const filedir =ref("data/Fire/");
 | 
	
		
			
				|  |  | -//const scalarName = ref("Height");
 | 
	
		
			
				|  |  | -const filedir = ref("data/Water/");
 | 
	
		
			
				|  |  | -// const renderWindowWith = vtkRenderWindowWithControlBar.newInstance({
 | 
	
		
			
				|  |  | -//     controlSize: 11,
 | 
	
		
			
				|  |  | -//   });
 | 
	
		
			
				|  |  | -const renderWindowWith = vtkFullScreenRenderWindow.newInstance();
 | 
	
		
			
				|  |  | -const renderer = renderWindowWith.getRenderer();
 | 
	
		
			
				|  |  | -// renderer.setBackground([0.1,0.2,0]);
 | 
	
		
			
				|  |  | -const renderWindow = renderWindowWith.getRenderWindow();
 | 
	
		
			
				|  |  | -const resetCamera = renderer.resetCamera;
 | 
	
		
			
				|  |  | -const render = renderWindow.render;
 | 
	
		
			
				|  |  | -const mapper = vtkMapper.newInstance();
 | 
	
		
			
				|  |  | -//Sets scalarMode to USE_POINT_DATA
 | 
	
		
			
				|  |  | -// mapper.setScalarModeToUsePointData();
 | 
	
		
			
				|  |  | -const actor = vtkActor.newInstance();
 | 
	
		
			
				|  |  | -const reader = vtkUnstructuredDataReader.newInstance();
 | 
	
		
			
				|  |  | -const scalarBarActor = vtkScalarBarActor.newInstance();
 | 
	
		
			
				|  |  | -// actor.getProperty().setRepresentation(Representation.WIREFRAME);//线
 | 
	
		
			
				|  |  | -// actor.getProperty().setRepresentation(Representation.POINTS);//点
 | 
	
		
			
				|  |  | -actor.getProperty().setRepresentation(Representation.SURFACE);//面
 | 
	
		
			
				|  |  | +    evolution.value.isshow=false;
 | 
	
		
			
				|  |  | +  }else{
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// 用来修改状态、触发更新的函数
 | 
	
		
			
				|  |  | -function inOpacity() {
 | 
	
		
			
				|  |  | -  opacity.value = opacity.value + 0.1;
 | 
	
		
			
				|  |  | -  actor.getProperty().setOpacity(opacity.value);
 | 
	
		
			
				|  |  | -  renderWindow.render();
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -function getMinMax(scalars) {
 | 
	
		
			
				|  |  | -  // console.log("getMinMax:",scalars);
 | 
	
		
			
				|  |  | -  min.value = scalars[0];
 | 
	
		
			
				|  |  | -  max.value = scalars[0];
 | 
	
		
			
				|  |  | -  for (let index = 0; index <= scalars.length; index++) {
 | 
	
		
			
				|  |  | -    let scalar = scalars[index];
 | 
	
		
			
				|  |  | -    if (min.value > scalar) {
 | 
	
		
			
				|  |  | -      min.value = scalar;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    if (max.value < scalar) {
 | 
	
		
			
				|  |  | -      max.value = scalar;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  // console.log("max,min:", max.value, min.value);
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -//时间
 | 
	
		
			
				|  |  | -function sleep(numberMillis) {
 | 
	
		
			
				|  |  | -  var now = new Date();
 | 
	
		
			
				|  |  | -  var exitTime = now.getTime() + numberMillis;
 | 
	
		
			
				|  |  | -  console.log(exitTime);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  function handleChange(val) {
 | 
	
		
			
				|  |  |    arrvalue = val;
 | 
	
		
			
				|  |  |    min.value = 0.0;
 | 
	
	
		
			
				|  | @@ -280,131 +232,35 @@ function Prev() {
 | 
	
		
			
				|  |  |    count.value--;
 | 
	
		
			
				|  |  |    changeScalar();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -// 用来修改状态、触发更新的函数
 | 
	
		
			
				|  |  | -function increment() {
 | 
	
		
			
				|  |  | -  isstop.value = false;
 | 
	
		
			
				|  |  | -  if (count.value == endtime.value) {
 | 
	
		
			
				|  |  | -    return;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  count.value++;
 | 
	
		
			
				|  |  | -  changeScalar();
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -function changeScalar() {
 | 
	
		
			
				|  |  | -  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(arrvalue[1]);
 | 
	
		
			
				|  |  | -  // console.log("scalarArray:", scalarArray);
 | 
	
		
			
				|  |  | -  const dataArray = vtkDataArray.newInstance({
 | 
	
		
			
				|  |  | -    name: arrvalue[1],
 | 
	
		
			
				|  |  | -    size: polydata.getNumberOfPoints(),
 | 
	
		
			
				|  |  | -  });
 | 
	
		
			
				|  |  | -  dataArray.setData(scalarArray);
 | 
	
		
			
				|  |  | -  getMinMax(scalarArray);
 | 
	
		
			
				|  |  | -  mapper.setScalarRange(min.value, max.value); //设置范围
 | 
	
		
			
				|  |  | -  scalarBarActor.setAxisLabel(arrvalue[1]);
 | 
	
		
			
				|  |  | -  polydata.getPointData().setScalars(dataArray);
 | 
	
		
			
				|  |  | -  mapper.clearColorArrays(); //强制重建颜色
 | 
	
		
			
				|  |  | -  actor.getProperty().setOpacity(count.value); //设置错误的透明度使得页面重新加载  不设置不刷新页面
 | 
	
		
			
				|  |  | -  renderWindow.render();
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -//加载所有 标量数据
 | 
	
		
			
				|  |  | -function loadScalarAll() {
 | 
	
		
			
				|  |  | -  //水灾
 | 
	
		
			
				|  |  | -  for (let index = 0; index <= 60; index++) {
 | 
	
		
			
				|  |  | -    const reader = vtkUnstructuredDataReader.newInstance();
 | 
	
		
			
				|  |  | -    reader.setUrl("data/Water/" + "POST" + index + ".vtk").then(() => {
 | 
	
		
			
				|  |  | -      const scalars = reader.getOutputData(1);
 | 
	
		
			
				|  |  | -      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);
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -//设置
 | 
	
		
			
				|  |  | -function generateTicks(numberOfTicks) {
 | 
	
		
			
				|  |  | -  return (helper) => {
 | 
	
		
			
				|  |  | -    const lastTickBounds = helper.getLastTickBounds();
 | 
	
		
			
				|  |  | -    // compute tick marks for axes
 | 
	
		
			
				|  |  | -    const scale = d3
 | 
	
		
			
				|  |  | -      .scaleLinear()
 | 
	
		
			
				|  |  | -      .domain([0.0, 1.0])
 | 
	
		
			
				|  |  | -      .range([lastTickBounds[0], lastTickBounds[1]]);
 | 
	
		
			
				|  |  | -    const samples = scale.ticks(numberOfTicks);
 | 
	
		
			
				|  |  | -    const ticks = samples.map((tick) => scale(tick));
 | 
	
		
			
				|  |  | -    // Replace minus "\u2212" with hyphen-minus "\u002D" so that parseFloat() works
 | 
	
		
			
				|  |  | -    formatDefaultLocale({ minus: "\u002D" });
 | 
	
		
			
				|  |  | -    const format = scale.tickFormat(ticks[0], ticks[ticks.length - 1], numberOfTicks);
 | 
	
		
			
				|  |  | -    const tickStrings = ticks
 | 
	
		
			
				|  |  | -      .map(format)
 | 
	
		
			
				|  |  | -      .map((tick) => Number(parseFloat(tick).toPrecision(12)).toPrecision()); // d3 sometimes adds unwanted whitespace
 | 
	
		
			
				|  |  | -    helper.setTicks(ticks);
 | 
	
		
			
				|  |  | -    helper.setTickStrings(tickStrings);
 | 
	
		
			
				|  |  | -  };
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +// 日志
 | 
	
		
			
				|  |  | +// 日志弹框
 | 
	
		
			
				|  |  | +function logonclick(val){
 | 
	
		
			
				|  |  | +  dialog.value.dialogVisible=val;
 | 
	
		
			
				|  |  | +  rizhi.value.logs='';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function  getthislog(val) {
 | 
	
		
			
				|  |  | +    newlog.value =newlog.value  + "\n" +val ;
 | 
	
		
			
				|  |  | +      rizhi.value.logs = newlog.value;
 | 
	
		
			
				|  |  | +      if(val.includes("Simulating"))
 | 
	
		
			
				|  |  | +         nextTick(() => {
 | 
	
		
			
				|  |  | +            let textarea=document.getElementById("textarea_id");
 | 
	
		
			
				|  |  | +            textarea.scrollTop=textarea.scrollHeight;
 | 
	
		
			
				|  |  | +       
 | 
	
		
			
				|  |  | +       
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  //安装时
 | 
	
		
			
				|  |  |  onMounted(() => {
 | 
	
		
			
				|  |  | - // console.log(process.env.VUE_APP_BASE_websokt);
 | 
	
		
			
				|  |  | - // console.log(1111)
 | 
	
		
			
				|  |  | -  arrvalue = ["Water", "Height"];
 | 
	
		
			
				|  |  | -  reader.setUrl(filedir.value + "POST1.vtk").then(() => {
 | 
	
		
			
				|  |  | -    const polydata = reader.getOutputData(0);
 | 
	
		
			
				|  |  | -    const scalars = reader.getOutputData(1);
 | 
	
		
			
				|  |  | -    const scalarArray = scalars.get(arrvalue[1]);
 | 
	
		
			
				|  |  | -    // console.log("scalarArray:", scalarArray);
 | 
	
		
			
				|  |  | -    const dataArray = vtkDataArray.newInstance({
 | 
	
		
			
				|  |  | -      name: arrvalue[1],
 | 
	
		
			
				|  |  | -      size: polydata.getNumberOfPoints(),
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    dataArray.setData(scalarArray);
 | 
	
		
			
				|  |  | -    polydata.getPointData().setScalars(dataArray);
 | 
	
		
			
				|  |  | -    actor.setMapper(mapper);
 | 
	
		
			
				|  |  | -    mapper.setInputData(polydata);
 | 
	
		
			
				|  |  | -    getMinMax(scalarArray);
 | 
	
		
			
				|  |  | -    mapper.setScalarRange(min.value, max.value); //设置范围
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    renderer.addActor(actor);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    let lut = mapper.getLookupTable();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    renderer.addActor(scalarBarActor);
 | 
	
		
			
				|  |  | -    scalarBarActor.setScalarsToColors(lut);
 | 
	
		
			
				|  |  | -    // console.log("lut:", lut.getRange());
 | 
	
		
			
				|  |  | -    // Change the number of ticks (TODO: add numberOfTicks to ScalarBarActor)
 | 
	
		
			
				|  |  | -    scalarBarActor.setGenerateTicks(generateTicks(5));
 | 
	
		
			
				|  |  | -    scalarBarActor.setAxisLabel(arrvalue[1]);
 | 
	
		
			
				|  |  | -    scalarBarActor.setDrawAboveRangeSwatch(true);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    //修改设条颜色
 | 
	
		
			
				|  |  | -    const ctf = vtkColorTransferFunction.newInstance();
 | 
	
		
			
				|  |  | -    ctf.addRGBPoint(0.0, 0.0, 0.0, 1.0);
 | 
	
		
			
				|  |  | -    ctf.addRGBPoint(1.0, 0.0, 1.0, 0.5);
 | 
	
		
			
				|  |  | -    ctf.addRGBPoint(2.0, 0.0, 1.0, 0.0);
 | 
	
		
			
				|  |  | -    ctf.addRGBPoint(3.0, 1.0, 0.5, 0.0);
 | 
	
		
			
				|  |  | -    ctf.addRGBPoint(4.0, 1.0, 0.0, 0.0);
 | 
	
		
			
				|  |  | -    mapper.setLookupTable(ctf);
 | 
	
		
			
				|  |  | -    lut = mapper.getLookupTable();
 | 
	
		
			
				|  |  | -    scalarBarActor.setScalarsToColors(lut);
 | 
	
		
			
				|  |  | -    resetCamera();
 | 
	
		
			
				|  |  | -    render();
 | 
	
		
			
				|  |  | -  });
 | 
	
		
			
				|  |  | -  loadScalarAll();
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  | +//  关闭弹窗
 | 
	
		
			
				|  |  | +function handleClose(){
 | 
	
		
			
				|  |  | +  dialog.value.dialogVisible=false;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <style>
 | 
	
		
			
				|  |  | -.controls {
 | 
	
		
			
				|  |  | +.controls,.snow{
 | 
	
		
			
				|  |  |    position: absolute;
 | 
	
		
			
				|  |  |    top: 25px;
 | 
	
		
			
				|  |  |    left: 25px;
 | 
	
	
		
			
				|  | @@ -502,4 +358,21 @@ onMounted(() => {
 | 
	
		
			
				|  |  |    transform: scale(0.8);
 | 
	
		
			
				|  |  |    color: #fff;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +.snow_log{
 | 
	
		
			
				|  |  | +  width: 300px;
 | 
	
		
			
				|  |  | +  height: 230px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#textarea_id{
 | 
	
		
			
				|  |  | +  height: 200px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.dialog_class{
 | 
	
		
			
				|  |  | +margin-left: 90px !important;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +body{
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  height: 100%;
 | 
	
		
			
				|  |  | +  background-color: #333;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  </style>
 | 
	
		
			
				|  |  | +
 |