[vtkusers] Drawing a simple line graph
beth at portugalmail.pt
beth at portugalmail.pt
Fri Nov 17 08:32:34 EST 2006
Hi,
Yes, I know that Position2 is relative to Position. But evend adjusting other
values, it does not work.
No, I can try to use vtkXYPlotActor, however I do want also to create an area
graph (using a polygon instead a polyline), and for that, I'll have to know
how to work properly with this situation...
Any other tip?
Thanks and best regards,
Elizabeth
Citando John Platt <jcplatt at dsl.pipex.com>:
Hi,
I seem to recall that the Position2 coordinate is relative to Position.
Is there any reason you cannot use vtkXYPlotActor?
John.
-----Original Message-----
From: vtkusers-bounces+jcplatt=dsl.pipex.com at vtk.org
[mailto:vtkusers-bounces+jcplatt=dsl.pipex.com at vtk.org] On Behalf Of
beth at portugalmail.pt
Sent: 16 November 2006 20:53
To: vtkusers at vtk.org
Subject: [vtkusers] Drawing a simple line graph
Hi,
I'm trying to create a simple line graph. For that, I created a polyline
and 2
axis.My piece of code looks like this:
// Create a polyline
vtkPolyData* polydata = vtkPolyData::New();
polydata->SetPoints(polyLinePoints);
polydata->SetLines(line);
// Maps it to 2D
vtkPolyDataMapper2D *mapper = vtkPolyDataMapper2D::New();
mapper->SetInput(polydata);
// Creates an actor, defining its limits according the graph area
defined by
the axes below
vtkActor2D *actor = vtkActor2D::New();
actor->SetMapper(mapper);
actor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport(
);
actor->GetPositionCoordinate()->SetValue(0.05, 0.2);
actor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport
(); // it's not working properly!!!
actor->GetPosition2Coordinate()->SetValue(0.90, 0.9); // it's not
working
properly!!!
actor->GetProperty()->SetColor(1, 0, 0);
// Define axes
vtkCoordinate *coords_x1 = vtkCoordinate::New();
coords_x1->SetValue(0.05, 0.2);
vtkCoordinate *coords_x2 = vtkCoordinate::New();
coords_x2->SetValue(0.95, 0.2);
vtkCoordinate *coords_y1 = vtkCoordinate::New();
coords_y1->SetValue(0.05, 0.2);
vtkCoordinate *coords_y2 = vtkCoordinate::New();
coords_y2->SetValue(0.05, 0.95);
vtkAxisActor2D *axesX = vtkAxisActor2D::New();
axesX->SetPoint1(coords_x1->GetValue());
axesX->SetPoint2(coords_x2->GetValue());
axesX->SetLabelFormat("%3.2f");
axesX->SetFontFactor(1.2);
axesX->SetRange(0, t); // t is the maximum x value in the polyline
points
axesX->SetTitle("Time (s)");
axesX->SetNumberOfLabels(10);
axesX->AdjustLabelsOn();
axesX->LabelVisibilityOn();
axesX->TickVisibilityOn();
vtkAxisActor2D *axesY = vtkAxisActor2D::New();
axesY->SetPoint1(coords_y1->GetValue());
axesY->SetPoint2(coords_y2->GetValue());
axesY->SetLabelFormat("%3.2f");
axesY->SetFontFactor(1);
axesY->SetRange(0, sCardMax); // Máximum y value in polyline points
axesY->AdjustLabelsOn();
axesY->LabelVisibilityOn();
axesY->TickVisibilityOn();
.....the usual stuff....creates the renderer...
rw->AddActor2D(actor);
rw->AddViewProp(axesX);
rw->AddViewProp(axesY);
Well, the line graph is drawn, but the problem is that axes values and
line
values are not matching.
It seems that the GetPosition2Coordinate is not working at all, because
the
mapping of the line to the graph effective area (that is defined by the
limits
of the axes - xmin, ymin and xmax, ymax) is not being done. It just puts
the
polyline at the initial position defined by GetPositionCoordinate, and
draws
it as the output given by the vtkPolyDataMapper2D.
What should I do?
Thanks for any help!
Regards,
Elizabeth
__________________________________________________________
O email preferido dos portugueses agora com
2 000 MB de espaço e acesso gratuito à Internet
http://www.portugalmail.pt/2000mb
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
__________________________________________________________
O email preferido dos portugueses agora com
2 000 MB de espaço e acesso gratuito à Internet
http://www.portugalmail.pt/2000mb
More information about the vtkusers
mailing list