当我尝试在VS 2010上构建VTK时,我收到此错误 error MSB6006: "cmd.exe" exited with code 9009. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets 151 6 vtkhdf5
在此之前,我从VS命令提示符成功构建了QT.
我的观点是目录的路径有问题.
我一直在互联网上搜索一段时间,但无法找到解决方法.
我正在尝试制作粒子轨迹的视频.但是,某种程度上我的场景永远不会更新 这是一个非常简单的例子:
from __future__ import absolute_import, division, print_function
from mayavi import mlab
import numpy as np
import math
alpha = np.linspace(0, 2*math.pi, 100)
xs = np.cos(alpha)
ys = np.sin(alpha)
zs = np.zeros_like(xs)
mlab.points3d(0,0,0)
plt = mlab.points3d(xs[:1], ys[:1], zs[:1])
@mlab.animate(delay=100)
def anim():
f = mlab.gcf()
while True:
for (x, y, z) in zip(xs, ys, zs):
print('Updating scene...')
plt.mlab_source.x[0] = x
plt.mlab_source.y[0] = y
plt.mlab_source.z[0] = z
f.scene.render()
yield
anim()
mlab.show()
Run Code Online (Sandbox Code Playgroud)
如果我运行此脚本,它会显示一个包含两个点和动画GUI的窗口.它还在终端上打印连续的"正在更新场景..."消息流.但是,场景根本不显示任何移动.
我究竟做错了什么?
Python 2.7,Mayavi 4.1,VTK 5.8
在VTK中,我可以使用以下代码段将渲染窗口保存为图像.但是,实际上我想直接将它作为一个numpy数组(没有写然后阅读).
im = vtkWindowToImageFilter()
writer = vtkPNGWriter()
im.SetInput(renderWindow)
im.Update()
writer.SetInputConnection(im.GetOutputPort())
writer.SetFileName("file.png")
writer.Write()
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
我正在运行Fedora 17(x64)机器,我尝试安装Mayavi for python via
yum install mayavi
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,除了每次我写一个代码,我称之为mayavi模块(如mlab):
from enthought.mayavi import mlab
Run Code Online (Sandbox Code Playgroud)
它因错误而大叫
********************************************************************************
WARNING: Imported VTK version (5.8) does not match the one used
to build the TVTK classes (5.6). This may cause problems.
Please rebuild TVTK.
********************************************************************************
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,但我不知道如何重建TVTK以匹配VTK的版本.我怀疑这是导致异常行为,但我不能确定.你如何重建TVTK?
我正在尝试为python安装VTK模块,但是我这样做是不成功的.我已经下载了一个VTK tar文件,但是我无法提取它.我能够提取其他tar文件,所以我想这个文件必须有特定的东西.
这是我的错误:
gzip:stdin:压缩数据无效 - 格式违反tar:子返回状态1 tar:错误无法恢复:现在退出
我希望有人可以帮助我.
使用CMake时返回VTK_DIR-NOTFOUND.我正在使用CMake GUI,并且,作为其他路径错误,我可以指向正确的路径.但是,对于VTK不起作用.我指向VTConfig.cmake文件和其他文件所在的目录.也尝试了所有其他VTK目的但没有任何成功.我使用Visual Studio 12 2013 Win 64配置进行生成,但也尝试使用2010.
手动指向路径,
在Linux上构建VTK时,我收到以下错误:
In file included from /usr/include/GL/glx.h:333:0,
from /home/mildred/Work/3DKF/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:31:
/usr/include/GL/glxext.h:480:143: error: ‘GLintptr’ has not been declared
Run Code Online (Sandbox Code Playgroud) 我一直有很多次这个问题.
当我修改a QWidget
之后的某些属性时widget.show()
,小部件将不会更新.大多数情况下,鼠标单击或鼠标离开或进入窗口小部件时,窗口小部件将被更新.但是,如果我离开鼠标,它将不会自动刷新.
到目前为止,我设法通过以下方式处理:
widget.hide()
widget.show()
Run Code Online (Sandbox Code Playgroud)
但这是一个非常脏的修复.是否有更好的方法python
来刷新小部件?
谢谢.
我想从VTK文件中提取一些数据(例如标量)以及它们在网格上的坐标,然后在Matplotlib中处理它.问题是我不知道如何从VTK文件中获取点/单元数据(例如,通过给出标量的名称)并使用vtk_to_numpy将它们加载到numpy数组中
我的代码应如下所示:
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
import numpy as np
from vtk import *
from vtk.util.numpy_support import vtk_to_numpy
# load input data
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName("my_input_data.vtk")
reader.Update()
(...missing steps)
# VTK to Numpy
my_numpy_array = vtk_to_numpy(...arguments ?)
#Numpy to Matplotlib (after converting my_numpy_array to x,y and z)
CS = plt.contour(x,y,z,NbLevels)
...
Run Code Online (Sandbox Code Playgroud)
PS:我知道Paraview可以完成任务,但我正在尝试发布一些数据而无需打开Paraview.任何帮助表示赞赏
编辑1
我发现这个pdf教程对于学习处理VTK文件的基础知识非常有用
我在3D域中有一个标量字段(幸运的是它可以在结构化网格中表示).但是,一个轴域比另外两个轴大得多.
为清楚起见,我的'vts'文件等同于下面的文件:
from pyevtk.hl import gridToVTK
import numpy as np
import random as rnd
# Dimensions
nx, ny, nz = 6, 6, 30
lx, ly, lz = 1.0, 1.0, 10.0
dx, dy, dz = lx/nx, ly/ny, lz/nz
ncells = nx * ny * nz
npoints = (nx + 1) * (ny + 1) * (nz + 1)
# Coordinates
X = np.arange(0, lx + 0.1*dx, dx, dtype='float64')
Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64')
Z = np.arange(0, lz + …
Run Code Online (Sandbox Code Playgroud)