vtk+四面体构建+线框
int main() { int i; static float x[8][3] = { {0,0,0},{1,0,0},{1,1,0},{0,1,0}, {0,0,1},{1,0,1},{1,1,1},{0,1,1} }; static vtkIdType pts[6][4] = { {0,1,2,3},{4,5,6,7},{0,1,5,4}, {1,2,6,5},{2,3,7,6},{3,0,4,7} }; vtkNewcube; vtkNew points; vtkNew polys; vtkNew scalars; vtkNew lines; //for (int i = 0; i < 8; i++) points->InsertPoint(i, x[i]); //for (int i = 0; i < 6; i++) polys->InsertNextCell(4, pts[i]); //for (int i = 0; i < 8; i++) scalars->InsertTuple1(i, i); //cube->SetPoints(points); //cube->SetPolys(polys); ////cube->GetPointData()->SetScalars(scalars); //上底 for (int i = 0; i < 8; i++) points->InsertPoint(i, x[i]); lines->InsertNextCell(5); for (unsigned long i = 0; i < 4; ++i) { lines->InsertCellPoint(i); } lines->InsertCellPoint(0); //下底 lines->InsertNextCell(5); for (unsigned long i = 0; i < 4; ++i) { lines->InsertCellPoint(i + 4); } lines->InsertCellPoint(4); //四周 for (int i = 0; i < 4; i++) { lines->InsertNextCell(2); lines->InsertCellPoint(i); lines->InsertCellPoint(i + 4); } cube->SetPoints(points); cube->SetLines(lines); vtkNew cubeMapper; cubeMapper->SetInputData(cube); cubeMapper->SetScalarRange(0, 7); vtkNew cubeActor; cubeActor->SetMapper(cubeMapper); vtkNew camera; camera->SetPosition(1, 1, 1); camera->SetFocalPoint(0, 0, 0); vtkNew renderer; vtkNew renWin; renWin->AddRenderer(renderer); vtkNew iren; iren->SetRenderWindow(renWin); renderer->AddActor(cubeActor); renderer->SetActiveCamera(camera); renderer->ResetCamera(); renderer->SetBackground(1, 0, 1); renWin->SetSize(300, 300); renWin->Render(); iren->Initialize(); iren->Start(); return 0; }
参考:https://blog.csdn.net/liushao1031177/article/details/120642543