Euclidean vzdálenost
Euclidean vzdálenost dvou bodů x = (x1,...,xn) a y = (y1,...,yn) v Euclidean n- prostor je počítán jak| Tabulka s obsahem |
| 1 dvojrozměrná vzdálenost 2 trojrozměrná vzdálenost |
Pro dva 2D body P = [px,py] a Q = [qx,qy], vzdálenost je počítána jak
Přiblížení
Rychlá aproximace 2D vzdálenosti založené na osmiúhlé hranici může být počítána takto. Nechal dx = |px-qx| (absolutní hodnota) a dy = |py-qy|. Jestliže dya ge;dx, aproximated vzdálenost je 0.41dx+ 0.941246dy. (jestliže dydx, vyměnit tyto hodnoty.) rozdíl do přesné vzdálenosti je mezitím - 6 % a + 3 %; více než 85 % všech možných rozdílů být mezitím - 3 % k + 3 %.
Dodržování Waterloo Maple kodexu realizuje toto přiblížení a produkuje spiknutí napravo, s opravdovým kruhem v černé a osmiúhlou přibližnou hranicí v červené:fasthypot: =
unapply (piecewise (absolutní (dx) > absolutní (dy), absolutní (dx) * 0.941246+abs (dy) * 0.41, absolutní (dy) * 0.941246+abs (dx) * 0.41), dx, dy):hypot: = unapply (sqrt (x ^ 2 + y ^ 2), x, y): osnuje [displej] (
osnuje [implicitplot] (fasthypot (x, y) > 1, x = -1.1.. 1.1, y = -1.1.. 1.1, numpoints = 4000), plottools [krouží] ([ 0, 0], 1), olupovat = omezený, tloušťka = 2);
Jiná přiblížení existují také. Oni obecně pokusí se vyhnout se druhé odmocnině, který je nákladná akce v podmínkách doby zpracování, a poskytovat různou chybu: poměr otáček. Používání nad zápisem, dx + dy - 2 * min (dx,dy) dá chybu v pauze 0 % k 12 %. (připsaný k Alanovi Paeth.)
Pro dva 3D body P = [px,py,pz] a Q = [qx,qy,qz], vzdálenost je počítána jak