我使用的是Paraview 5.0.1。如果任何解决方案需要更新,我可以尝试。
我想以编程方式获得旋转坐标系中位移和应力的场图(以及相应的PlotOverLine)。
这样做的适当/方便/可能的方法是什么?
到目前为止,我为每个位移和应力分量创建了一个计算器过滤器。 例如,我在2D中使用了带有结果的计算器
(displacement.iHat)*cos(0.7853981625)+(displacement.jHat)*sin(0.7853981625)
(stress_3-stress_0)*sin(45.0*3.14159265/180)*cos(45.0*3.14159265/180)+stress_1*((cos(45.0*3.14159265/180))^2-(sin(45.0*3.14159265/180))^2)
它工作正常,但在几个方面很麻烦:
有一种简单的方法吗?
PS:Transform
过滤器无法实现此目的。它会旋转视图,而不是字段。
答案 0 :(得分:1)
两种解决方案:
丑陋,不合理的解决方案
正确解决方案: 在可编程过滤器中自己计算转换
input = self.GetUnstructuredGridInput();
output = self.GetUnstructuredGridOutput();
output.ShallowCopy(input)
data = input.GetPointData().GetArray("YourArray")
vec = vtk.vtkDoubleArray();
vec.SetNumberOfComponents(3);
vec.SetName("TransformedVectors");
numPoints = input.GetNumberOfPoints()
for i in xrange(0, numPoints):
tuple = data.GetTuple(i)
transform(tuple) # implement the transform in python
vec.InsertNextTuple(tuple)
output.GetPointData().AddArray(vec)