通过构建方向向量和段数,隔一段创建一个线段。
vtkRenderer renderer = vtkRenderer.New();
double[] top = new double[] { 50, 50, 50 };
double[] bottom = new double[] { 0, 0, 0 };
//方向向量
double[] disvector = new double[] { top[0] - bottom[0], top[1] - bottom[1], top[2] - bottom[2] };
int l = 10;
//+2是为了跳过一段
for (int i = 0; i < l; i = i + 2)
{
renderer.AddActor(line_create(bottom, disvector, i, l));
}
//创建线段的函数
vtkActor line_create(double[] Bottom, double[] dis_vector, int i, int length)
{
vtkLineSource line = vtkLineSource.New();
vtkPolyDataMapper lineMapper = vtkPolyDataMapper.New();
vtkActor lineActor = vtkActor.New();
line.SetPoint1(Bottom[0] + disvector[0] / length * i, Bottom[1] + disvector[1] / length * i, Bottom[2] + disvector[2] / length * i);
line.SetPoint2(Bottom[0] + disvector[0] / length * (i + 1), Bottom[1] + disvector[1] / length * (i + 1), Bottom[2] + disvector[2] / length * (i + 1));
lineMapper.SetInputConnection(line.GetOutputPort()); // 连接管道
lineActor.SetMapper(lineMapper); // 传递制图器
lineActor.GetProperty().SetColor(0, 1, 0); // 设置“角色”颜色[RGB]
return lineActor;
}
效果如图: