-----BEGIN PGP SIGNED MESSAGE-----

Hash: SHA1

Hello list.

I’m a bit stupefied by the different results of this algorithm I

implemented (Euclidean distance for 3 dimensions):

# Calculates the relative distance_to an arbitrary

# Note: The algorithm is not yet optimized for speed.

# Hopefully, it is accurate, though.

def distance_to(actor)

~ # Stub, will use vector math or so to approximate the true distance

~ distance = (self.x - actor.x)^2 + (self.y - actor.y)^2 + (self.z -

actor.z)^2

~ Math::sqrt(distance.abs)

end

actor1 = Gondor::AI::Actor.new(:x => 0,:y => 0,:z => 0)

actor2 = Gondor::AI::Actor.new(:x => 16, :y => 16, :z => 16)

actor1.distance(actor2)

produces: 3.74165738677394

actor1 = Gondor::AI::Actor.new(:x => 1,:y => 1,:z => 1)

actor2 = Gondor::AI::Actor.new(:x => 15, :y => 15, :z => 15)

produces: 4.0

Why is that? From my understanding, these results should be identical

(The algebraic sign is eliminated by exponent 2, everything else is

addition).

Another thing that has me stumped is, that Math::sqrt requires the

absolute, but the result should be positive (addition of positive

algebraic signs).

Do I need to brush up my math more than I thought?

- – Phillip G.

-----BEGIN PGP SIGNATURE-----

Version: GnuPG v1.4.8 (MingW32)

Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfwsX8ACgkQbtAgaoJTgL+4nwCeJ4ICdvn0ruCpxc9U5OTIjV8y

OnsAn1nOr6/Fjk0epFFpb3sYgqHoDVhj

=gHrp

-----END PGP SIGNATURE-----