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

Dominique Töpfer dominique at toepfer-web.de
Thu Aug 9 14:16:34 EDT 2012


Please keep the discussion on the list.

vtkDistanceWidget with the default representation also uses 
sqrt(vtkMath::Distance2BetweenPoints(p1,p2)). Did you check your points 
coordinates? Can you provide the rest of your code?

On 09.08.2012 19:48, Concetta Piazzese wrote:
> Yeah, I considered that. But I still got wrong numbers. When the user 
> places a seed, the vtkSeedCallback stores the point world position 
> (this->SeedRepresentation->GetSeedWorldPosition(i, pos);). Do you know 
> how vtkDistanceWidget computes distance in millimeters?
>
> ------------------------------------------------------------------------
> Date: Thu, 9 Aug 2012 19:25:48 +0200
> From: dominique at toepfer-web.de
> To: aliens30586 at hotmail.it; vtkusers at vtk.org
> Subject: Re: [vtkusers] Distance between 2 points in millimeters (mm)
>
> 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 <mailto:dominique at toepfer-web.de>
>     To: aliens30586 at hotmail.it <mailto:aliens30586 at hotmail.it>
>     CC: vtkusers at vtk.org <mailto: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


-- 
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/61ad238f/attachment.htm>


More information about the vtkusers mailing list