c++ euclidean distance -
this code compiles , runs not output correct distances.
for (int z = 0; z < spaces_x; z++) { double dist=( ( (spaces[z][0]-x)^2) + ( (spaces[z][1]-y)^2) ); dist = abs(dist); dist = sqrt(dist); cout << "for x " << spaces[z][0] << " y " << spaces[z][1] << " dist "<< dist << endl; if (dist < min_dist) { min_dist = dist; index = z; } }
does have idea problem be?
the syntax ^ 2
not mean raise power of 2 - means xor. use x * x
.
double dx = spaces[z][0] - x; double dy = spaces[z][1] - y; double dist2 = dx * dx + dy * dy;
Comments
Post a Comment