关于vtk.js使用环境的搭建

做调试看了很多的demo,调试了半天,也不行,决着还是再看看github上的doc叭,全是英文看着属实难受翻译又不太行,而且github我用edge访问偶尔可以偶尔又不行的太麻烦了,连接:https://kitware.github.io/vtk-js/docs/vtk_vanilla.html

01- 目录创建与初始化

在这里插入图片描述

mkdir my-vtkjs-app
cd my-vtkjs-app
> npm init

一直回车就是辽,
在这里插入图片描述
当看到这个,回车之后,
在这里插入图片描述
你所在目录下,就会出现一个json 文件,package,和命令窗口里的信息一致,然后继续下一步
在这里插入图片描述


02- 下载vtk.js 及相关依赖


> npm install @kitware/vtk.js
> npm install -D webpack-cli webpack webpack-dev-server

在这里插入图片描述
成功之后:
路径下面:
在这里插入图片描述
在这里插入图片描述


03- package.json 信息的修改

在这里插入图片描述

在这里插入图片描述

    "build": "webpack --progress --mode=development",
    "start": "webpack serve --progress --mode=development --content-base=dist",

04- 两个路径的创建,相关源码的导入

src路径&dist路径:
在这里插入图片描述
可以直接再命令行创建:
在这里插入图片描述


加入demo测试:

src路径下:

在这里插入图片描述

import '@kitware/vtk.js/Rendering/Profiles/Geometry';

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 vtkCalculator      from '@kitware/vtk.js/Filters/General/Calculator';
import vtkConeSource      from '@kitware/vtk.js/Filters/Sources/ConeSource';
import { AttributeTypes } from '@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants';
import { FieldDataTypes } from '@kitware/vtk.js/Common/DataModel/DataSet/Constants';

const controlPanel = `
<table>
  <tr>
    <td>
      <select class="representations" style="width: 100%">
        <option value="0">Points</option>
        <option value="1">Wireframe</option>
        <option value="2" selected>Surface</option>
      </select>
    </td>
  </tr>
  <tr>
    <td>
      <input class="resolution" type="range" min="4" max="80" value="6" />
    </td>
  </tr>
</table>
`;

// ----------------------------------------------------------------------------
// Standard rendering code setup
// ----------------------------------------------------------------------------

const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance();
const renderer = fullScreenRenderer.getRenderer();
const renderWindow = fullScreenRenderer.getRenderWindow();

// ----------------------------------------------------------------------------
// Example code
// ----------------------------------------------------------------------------

const coneSource = vtkConeSource.newInstance({ height: 1.0 });
const filter = vtkCalculator.newInstance();

filter.setInputConnection(coneSource.getOutputPort());
filter.setFormula({
  getArrays: inputDataSets => ({
    input: [],
    output: [
      { location: FieldDataTypes.CELL, name: 'Random', dataType: 'Float32Array', attribute: AttributeTypes.SCALARS },
    ],
  }),
  evaluate: (arraysIn, arraysOut) => {
    const [scalars] = arraysOut.map(d => d.getData());
    for (let i = 0; i < scalars.length; i++) {
      scalars[i] = Math.random();
    }
  },
});

const mapper = vtkMapper.newInstance();
mapper.setInputConnection(filter.getOutputPort());

const actor = vtkActor.newInstance();
actor.setMapper(mapper);

renderer.addActor(actor);
renderer.resetCamera();
renderWindow.render();

// -----------------------------------------------------------
// UI control handling
// -----------------------------------------------------------

fullScreenRenderer.addController(controlPanel);
const representationSelector = document.querySelector('.representations');
const resolutionChange = document.querySelector('.resolution');

representationSelector.addEventListener('change', (e) => {
  const newRepValue = Number(e.target.value);
  actor.getProperty().setRepresentation(newRepValue);
  renderWindow.render();
});

resolutionChange.addEventListener('input', (e) => {
  const resolution = Number(e.target.value);
  coneSource.setResolution(resolution);
  renderWindow.render();
});

dist 路径下:

在这里插入图片描述

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <script src="./main.js"></script>
  </body>
</html>

05- build & start

Running the app
After adding the source file, run the app with the webpack dev server.

> npm run start

Navigate to http://localhost:8080, and you should have an interactive 3D visualization of a cone, similar to the SimpleCone example.
在这里插入图片描述


也可以先build,
在这里插入图片描述
此时,dist路径下,就会出现main. js的文件:
在这里插入图片描述

> npm start
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js 是一个用于构建用户界面的 JavaScript 框架,而 vtk.js 是一个用于进行科学可视化的 JavaScript 库。由于 Vue.js 提供了一些强大的工具和组件化的开发模式,因此将 Vue.jsvtk.js 结合使用,可以实现更灵活和交互性强的科学可视化应用。 使用 Vue.jsvtk.js 实现科学可视化的步骤如下: 1. 安装 Vue.jsvtk.js:首先需要在项目中安装 Vue.jsvtk.js。可以通过 npm 命令或者 CDN 访问方式进行安装。 2. 创建 Vue 实例:在 Vue 组件中引入 vtk.js 库并创建一个 Vue 实例。 3. 渲染 vtk.js:在 Vue 实例中编写代码来渲染 vtk.js 图形。可以使用 vtk.js 提供的各种图形组件和工具,如 vtkRenderer、vtkMapper、vtkActor 等。 4. 添加交互功能:使用 Vue.js 提供的事件和方法,为 vtk.js 图形添加交互功能,如旋转、缩放、平移等。可以使用 Vue.js 的指令和绑定机制来实现这些功能。 5. 数据绑定:在 Vue 实例中使用 Vue.js 的数据绑定机制,将数据与 vtk.js 图形中的属性进行绑定。这样,在数据变化时,图形也会相应更新。 6. 样式调整:使用 Vue.js 的样式绑定功能,为 vtk.js 图形添加样式,以便进行外观调整。 7. 包装为组件:将 vtk.js 图形封装为 Vue 组件,以便在其他组件中复用。可以通过 Vue.js 提供的组件通信机制,实现组件之间的交互和数据传递。 通过以上步骤,我们可以在 Vue.js 框架下使用 vtk.js 实现科学可视化应用。这样就可以充分发挥 Vue.js 的组件化和数据驱动的特性,使科学可视化应用更易于开发和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J.CH.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值