Bonjour ,

J'ai écris un code plutôt basique pour afficher une courbe 3D, en n'utilisant pas vtkChartXYZ volontairement.

Le code est compilé, une fenêtre s'ouvre cependant rien n'apparaît à l'intérieur, est-ce que quelqu'un pourrait m'aider à comprendre pourquoi ?
Merci beaucoup !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
void Action_Signal3DRepresentation::plot3D(SignalTextFiles * comp, SignalTextFiles * comp1, SignalTextFiles * comp2){
 
	QString compName = comp->getFileName();
	QString compName1 = comp1->getFileName();
	QString compName2 = comp2->getFileName();
 
	/*
	vtkFloatArray* pcoords = vtkFloatArray::New();
	pcoords->SetNumberOfComponents(3);
	pcoords->SetNumberOfTuples(4);
	pcoords->SetTuple3(0, 0.0, 0.0, 0.0);
	pcoords->SetTuple3(1, 1.0, 1.0, 1.0);
	pcoords->SetTuple3(2, 2.0, 2.0, 2.0);
	pcoords->SetTuple3(3, 3.0, 3.0, 3.1);
 
	vtkDoubleArray * data = vtkDoubleArray::New();
	pcoords->GetData(3, 3, 2, 2,data);
	float value = data->GetValue(0);
	*/
 
	int numbPoints = comp->setNumberOfPOints(compName);
	double i;
 
	//Créer le tableau 
	vtkFloatArray* pcoords = vtkFloatArray::New();
	//Définir trois éléments au lieu d'un (pour points de coordonnées 3D)
	pcoords->SetNumberOfComponents(3);
	pcoords->SetNumberOfTuples(numbPoints);
 
	//Récupérer La valeur des signaux, soient les cordonnées x, y, z des points
 
	QList <float> list = comp->setValues(compName);
	QList <float> list1 = comp->setValues(compName1);
	QList <float> list2 = comp->setValues(compName2);
 
 
	for (i = 0.0; i < numbPoints; i++)
	{ 
		//remplir les lignes du tablau
		pcoords->SetTuple3(i, list[i], list1[i], list2[i]);
	}
 
	//On vérirfie que pcoords est rempli avec les bonnes valeurs 
	vtkDoubleArray * data = vtkDoubleArray::New();
	pcoords->GetData(0, 0, 0, 0, data);
	float value = data->GetValue(0);
 
	// Attribuer aux points, leur valeur
	vtkPoints* points = vtkPoints::New();
	points->SetData(pcoords);
	vtkPolyData *poly = vtkPolyData::New();
	poly->SetPoints(points);
 
	// Create the mapper and set the appropriate scalar range
	// (default is (0,1)
	vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();
	mapper->SetInput(poly);
	mapper->SetScalarRange(0, 0.5);
 
 
 
	vtkActor* actor = vtkActor::New();
	actor->SetMapper(mapper);
	actor->GetProperty()->SetColor(0, 1, 0);
	// Create the rendering objects.
	vtkRenderer* ren = vtkRenderer::New();
	ren->AddActor(actor);
	ren->SetBackground(1,1, 1);
 
 
	vtkRenderWindow* renWin = vtkRenderWindow::New();
	renWin->AddRenderer(ren);
	renWin->Render();
 
	vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renWin);
	iren->Initialize();
	iren->Start();
 
}