[vtkusers] Distance between 2 points in millimeters (mm)

Dominique Töpfer dominique at toepfer-web.de
Thu Aug 9 13:25:48 EDT 2012


I agree, the loop should work now. But then the error seems to be in 
Seed(). Is it possible, that the order of points provided by the user is 
different from the order in your vtkPoints object? Did you consider the 
image spacing?

On 09.08.2012 18:52, Concetta Piazzese wrote:
> You're right but the problem isn't fixed. I still got wrong distances. 
> The loop was wrong but I think the problem is not in the loop. Now the 
> loop is:
> for (int i=0; i<num; i++)
>     {
>     points->GetPoint(i,punto);
>     points->GetPoint(i+1,punto2);
>
>     double squaredDistance;
>     double dist;
>
>     // Distance
>     squaredDistance = vtkMath::Distance2BetweenPoints(punto, punto2);
>     dist=sqrt(squaredDistance);
>
>     std::cout << "Distance " << dist << std::endl;
>
>     }
>
> ------------------------------------------------------------------------
> Date: Thu, 9 Aug 2012 18:47:08 +0200
> From: dominique at toepfer-web.de
> To: aliens30586 at hotmail.it
> CC: vtkusers at vtk.org
> Subject: Re: [vtkusers] Distance between 2 points in millimeters (mm)
>
> Hi,
>
> I think these lines in the for-loop are wrong:
>
>     points->GetPoint(num-1,punto);
>     points->GetPoint(num,punto2);
>
> You seem to calculate the distance between the same two points in 
> every iteration. You need to use i instead of num here.
>
> Regards,
> Dominique
>
>
> On 09.08.2012 18:34, Concetta Piazzese wrote:
>
>     Hy everyone. I hope somebody can help me!
>     I need to find the distance between 2 points in millimeters like
>     the vtkDistanceWidget does. An user places 10 points and then the
>     program compute the distances. The problem is that I have an array
>     of vtkPoints and I can't use vtkDistanceWidget to find the
>     distances. How I can find the distance? The points positions are
>     inglobal coordinate values. The distance I got are totally wrong.
>     Here is my code:
>
>     int main(int argc, char *argv[])
>     {
>     reader->SetFileName("C:/Tesi/DistanceBetween2Points_build/Debug/Data/Plaque_08.mhd");
>         reader->Update();
>
>         imgconn=reader->GetOutput();
>
>         //Points Placement with vtkSeedWidget. Poins are stored in a
>     vtkPoints called "points"
>         Seed();
>
>         double punto[3];
>         double punto2[3];
>
>         int num=points->GetNumberOfPoints();
>
>         for (int i=0; i<num; i++)
>         {
>         points->GetPoint(num-1,punto);
>         points->GetPoint(num,punto2);
>
>         double squaredDistance;
>         double dist;
>
>         // Distance
>         squaredDistance = vtkMath::Distance2BetweenPoints(punto, punto2);
>         dist=sqrt(squaredDistance);
>
>         std::cout << "Distance " << dist << std::endl;
>
>         }
>
>         return EXIT_SUCCESS;
>     }
>
>     What's the problem? vtkDistanceWidget computes distances using
>     vtkMath::Distance2BetweenPoints. So what am I doing wrong?
>     Thank you!
>
>
>     _______________________________________________
>     Powered bywww.kitware.com  <http://www.kitware.com>
>
>     Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html
>
>     Please keep messages on-topic and check the VTK FAQ at:http://www.vtk.org/Wiki/VTK_FAQ
>
>     Follow this link to subscribe/unsubscribe:
>     http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
> -- 
> Dominique Töpfer, Dipl.-Inform.
> Institute of Medical Physics
> University of Erlangen


-- 
Dominique Töpfer, Dipl.-Inform.
Institute of Medical Physics
University of Erlangen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120809/e654de2b/attachment.htm>


More information about the vtkusers mailing list