关于vtk HedgeHog算法的一个问题请教一下各位大佬

暴走の小新 中国矿业大学 码农  2018-01-25 04:19:55
在官网找的一个example,原网址链接https://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/HedgeHog
它里面的函数void CreateData(vtkStructuredGrid* sgrid)我看不明白是什么意思,谁能帮我讲解一下,代码如下,谢谢啦!
void CreateData(vtkStructuredGrid* sgrid)
{
int i, j, k, kOffset, jOffset, offset;
float x[3], v[3], rMin=0.5, rMax=1.0, deltaRad, deltaZ;
float radius, theta;
static int dims[3]={13,11,11};
sgrid->SetDimensions(dims);

// We also create the points and vectors. The points
// form a hemi-cylinder of data.
vtkSmartPointer<vtkFloatArray> vectors =
vtkSmartPointer<vtkFloatArray>::New();
vectors->SetNumberOfComponents(3);
vectors->SetNumberOfTuples(dims[0]*dims[1]*dims[2]);

vtkSmartPointer<vtkPoints> points =
vtkSmartPointer<vtkPoints>::New();
points->Allocate(dims[0]*dims[1]*dims[2]);

deltaZ = 2.0 / (dims[2]-1);
deltaRad = (rMax-rMin) / (dims[1]-1);
v[2]=0.0;
for ( k=0; k<dims[2]; k++)
{
x[2] = -1.0 + k*deltaZ;
kOffset = k * dims[0] * dims[1];
for (j=0; j<dims[1]; j++)
{
radius = rMin + j*deltaRad;
jOffset = j * dims[0];
for (i=0; i<dims[0]; i++)
{
theta = i * vtkMath::RadiansFromDegrees(15.0);
x[0] = radius * cos(theta);
x[1] = radius * sin(theta);
v[0] = -x[1];
v[1] = x[0];
offset = i + jOffset + kOffset;
points->InsertPoint(offset,x);
vectors->InsertTuple(offset,v);
}
}
}
sgrid->SetPoints(points);

sgrid->GetPointData()->SetVectors(vectors);
}
...全文
232 点赞 收藏 5
写回复
5 条回复
暴走の小新 2018年01月25日
引用 2 楼 xuzuning 的回复:
这是 C++ 代码,看不懂很正常 就算看懂了,也不一定就能改成 C# 的
我已经转成c#实现了它的效果,HedgeHog方法里面需要传入vtkStructuredGrid的数据,CreateData()就是创建这个数据,但是我不明白这个函数里的代码是什么意思,是怎么创建出这个数据的
回复 点赞
暴走の小新 2018年01月25日
引用 2 楼 xuzuning 的回复:
这是 C++ 代码,看不懂很正常 就算看懂了,也不一定就能改成 C# 的
我已经转成c#实现了它的效果,HedgeHog方法里面需要传入vtkStructuredGrid的数据,CreateData()就是创建这个数据,但是我不明白这个函数里的代码是什么意思,是怎么创建出这个数据的
回复 点赞
暴走の小新 2018年01月25日
引用 2 楼 xuzuning 的回复:
这是 C++ 代码,看不懂很正常 就算看懂了,也不一定就能改成 C# 的
我已经转成c#实现了它的效果,HedgeHog方法里面需要传入vtkStructuredGrid的数据,CreateData()就是创建这个数据,但是我不明白这个函数里的代码是什么意思,是怎么创建出这个数据的
回复 点赞
xuzuning 2018年01月25日
这是 C++ 代码,看不懂很正常 就算看懂了,也不一定就能改成 C# 的
回复 点赞
xuzuning 2018年01月25日
这是 C++ 代码,看不懂很正常 就算看懂了,也不一定就能改成 C# 的
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告