Dear all,<br><br>Here is a function I write, it calculates the display coordinates of a point set. This function is called after I transform a point set and I pass the pointer of the point set to this function.<br><br><b>void Dist_2DLandmarks(vtkPoints* transformed_points)<br>
{<br> double p_trans[3];<br> vtkPolyData* polydata = vtkPolyData::New();<br> vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();<br> vtkActor* actor = vtkActor::New();<br><br> polydata->SetPoints(transformed_points);<br>
polydata->SetPolys(poly);<br> polydata->GetPointData()->SetScalars(scalars);<br> mapper->SetInput(polydata);<br> actor->SetMapper(mapper);<br> ren->AddActor(actor);<br><br> for (int index = 0; index<sizeof(landmarks)/sizeof(int); index++)<br>
{<br> transformed_points->GetPoint(landmarks[index], p_trans);<br> ren->SetWorldPoint(p_trans);<br> ren->WorldToDisplay();<br> ren->GetDisplayPoint(p_trans);<br> }<br><br> return;<br>
}</b><br><br>What I do before call this function is Scale (0.72, 0.72, 0.72) and Rotate (2.5). The result shows the display coordinates has changed a lot, from (170, 254, 0.4) to (2362, 64, 1.7).<br><br>I don't know what is wrong with it. Can anyone give me some advice? Or write me a demo code would carry out the work?<br>
<br>Thank you very much.<br><br>Best wishes<br>Long<br>