[vtkusers] Distance between points

Matias Montroull matimontg at gmail.com
Tue Jan 14 18:53:44 EST 2014


Thanks, I will take into account your suggestion.

Can you run the code with those point samples and tell me what's the
distance you get? I'd like to ensure it works in C++ and then figure out
how to make it work in ActiViz..

Thanks,


On Tue, Jan 14, 2014 at 8:48 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> Hi Matias,
>
> I don't use Activiz, but something about your code confuses me:
> In C++, Distance2BetweenPoints is overloaded for float and double:
>
>   float Distance2BetweenPoints(const float x[3], const float y[3])
>   double Distance2BetweenPoints(const double x[3], const double y[3])
>
> So how does Activiz know which one of these methods to call?
> If it passes a "double" IntPtr to the float-overloaded method, then the
> result is definitely going to be wrong.
>
> Also: I suggest that you include "Activiz" or "C#" in the subject line
> of all your emails to the list.  That will help to attract the attention of
> other Activis users, and they are the ones who are most likely to know
> the answers to questions like this one.
>
>   David
>
>
>
>
> On Tue, Jan 14, 2014 at 4:18 PM, Matias Montroull <matimontg at gmail.com>
> wrote:
> > Hi,
> >
> > I'm running this code and I get distance "infinity"... If I change to
> lower
> > values (1 digit) then it gives a distance..
> > Why?
> >
> >  double[] p0 = new double[] { 10.2, 20.7, 10.4 };
> >    double[] p1 = new double[] { 10.5, 20.5, 10.8};
> >
> >    IntPtr pP0 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(double)) * 3);
> >    IntPtr pP1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(double)) * 3);
> >    Marshal.Copy(p0, 0, pP0, 3);
> >    Marshal.Copy(p1, 0, pP1, 3);
> >
> >    // Find the squared distance between the points.
> >    double squaredDistance = vtkMath.Distance2BetweenPoints(pP0, pP1);
> >
> >    // Take the square root to get the Euclidean distance between the
> points.
> >    double distance = Math.Sqrt(squaredDistance);
> >
> >    // Output the results.
> >    Console.WriteLine("SquaredDistance = " + squaredDistance);
> >    Console.WriteLine("Distance = " + distance);
> >    Marshal.FreeHGlobal(pP0);
> >    Marshal.FreeHGlobal(pP1);
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140114/119eba5b/attachment.html>


More information about the vtkusers mailing list