# Interpolation in vtkPolyData

**URL:** https://discourse.vtk.org/t/interpolation-in-vtkpolydata/15043
**Category:** Development
**Tags:** rendering, python, code, proposal, file-formats
**Created:** [December 18, 2024, 7:51am UTC](https://discourse.vtk.org/t/interpolation-in-vtkpolydata/15043 "2024-12-18T07:51:27Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![A.M\_Shahpouri](https://discourse.vtk.org/user_avatar/discourse.vtk.org/a.m_shahpouri/32/6549_2.png) [@A.M\_Shahpouri](https://discourse.vtk.org/u/A.M_Shahpouri)
#### Post date: [December 18, 2024, 7:51am UTC](https://discourse.vtk.org/t/interpolation-in-vtkpolydata/15043/1 "2024-12-18T07:51:27Z")

</div>

Hi everyone .  
I want to create an polydata like this 🙂

 ![Screenshot 2024-12-14 093836](https://discourse.vtk.org/uploads/default/original/2X/b/b0dc363be1f6610d0ede5d3abf1a534ff2611ac5.png)

* * *

I created this Polydata

 ![Screenshot 2024-12-14 093403](https://discourse.vtk.org/uploads/default/original/2X/5/515905f948249707d2720f5637a48363d0311af4.png)

by this code :

```
auto appendPolyData = vtkSmartPointer<vtkAppendPolyData>::New();

for (const auto& slice : contour.Slices) {
    auto points = vtkSmartPointer<vtkPoints>::New();

    // Add points to vtkPoints
    for (const auto& point : slice.Points) {
        points->InsertNextPoint(point.X, point.Y, point.Z);
    }

    // Create a vtkPolyLine
    auto polyLine = vtkSmartPointer<vtkPolyLine>::New();
    polyLine->GetPointIds()->SetNumberOfIds(points->GetNumberOfPoints());
    for (vtkIdType i = 0; i < points->GetNumberOfPoints(); i++) {
        polyLine->GetPointIds()->SetId(i, i);
    }

    // Create a vtkCellArray to hold the polyline
    auto cellArray = vtkSmartPointer<vtkCellArray>::New();
    cellArray->InsertNextCell(polyLine);

    // Create vtkPolyData to hold the geometry and topology
    auto polyData = vtkSmartPointer<vtkPolyData>::New();
    polyData->SetPoints(points);
    polyData->SetLines(cellArray);

    // Add the polyData to the append filter
    appendPolyData->AddInputData(polyData);
}

appendPolyData->Update();

// Map the polyData to graphical primitives
auto mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(appendPolyData->GetOutput());

// Create an actor
auto actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
actor->GetProperty()->SetColor(0, 0, 1); // Set actor color to blue

// Create a renderer and add the actor
auto renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);

// Create a render window
auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);

// Create an interactor
auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
interactor->SetRenderWindow(renderWindow);

// Render and start interaction
renderWindow->Render();
interactor->Start();

renderer->ResetCamera();

```

but between lines of slices are empty .

I tried vtkDelaunay3D but :  
 ![image](https://discourse.vtk.org/uploads/default/original/2X/0/077f3ec7d02537e7892dab2cb4cd4114ad12f0e6.png)

I also tried vtkDelaunay2D

 ![image](https://discourse.vtk.org/uploads/default/original/2X/6/67edb57c6ee908ece81b05fa2b834d68975bc371.png)

But as you can see this need interpolation .

> > > How Can do that?
