18 inline double G(
double x,
double y,
double t)
22 return exp(-(x*x+y*y))*sin(t+3.*x)*cos(4.*y-t);
30 std::vector<double> inpoints;
31 for(
double x = -2; x < 2; x+=0.03)
33 for(
double y = -2; y < 2; y+=0.03)
35 inpoints.push_back(x + vtkMath::Random(-.1, .1));
36 inpoints.push_back(y + vtkMath::Random(-.1, .1));
43 std::vector<double>points;
44 std::vector<int>cells;
49 int npoints=points.size()/2;
50 std::vector<double>values(npoints);
63 auto t0=std::chrono::system_clock::now();
68 griddata->SetSimplexGrid(2,points,cells);
72 contour->SetData(griddata,
"v");
73 contour->SetSurfaceRGBTable(colors,255);
74 contour->SetValueRange(-1,1);
75 auto isolines=std::vector<double>{-0.5,0,0.5};
76 contour->SetIsoLevels(isolines);
77 frame->AddFigure(contour);
83 for (
size_t ipoint=0, ival=0;ipoint<points.size(); ipoint+=2,ival++)
84 values[ival]=
G(points[ipoint+0],points[ipoint+1],t);
86 griddata->SetPointScalar(values,
"v");
90 frame->WritePNG(
"example-simplexcontour2d.png");
93 auto t1=std::chrono::system_clock::now();
94 double xdt=std::chrono::duration_cast<std::chrono::duration<double>>(t1-t0).count();
98 printf(
"Frame rate: %.2f fps\n",(
double)(i1-i0)/4.0);
99 t0=std::chrono::system_clock::now();
static std::shared_ptr< Frame > New()
Create frame with multiple subframes.
static std::shared_ptr< ScalarView > New()
static std::shared_ptr< DataSet > New()
Static constructor of an empty instance.
double G(double x, double y, double t)
std::vector< RGBPoint > RGBTable
void Delaunay2D(const V &points_in, V &points, IV &cells)
Define Frame class providing a window for rendering.