Autor | Zpráva | ||
---|---|---|---|
Watchick Profil |
#1 · Zasláno: 3. 4. 2009, 21:10:05 · Upravil/a: Watchick
Zdravím, chtěl bych se zeptat:
mám takovouto mapu: Žlutá vesnice je výchozí pozice... (tedy souřadnice 61/3) vzdálenost k 61/1 je "2 políčka" vzdálenost k 62/1 je "2,236 políčka" (počítá se phytágorovou větou tedy 2^2 + 1^2 = hledanavzdalenost^2) vzdálenost k 58/0 je "4,242 políčka" (počítá se phytágorovou větou tedy 3^2 + 3^2 = hledanavzdalenost^2) Potřeboval bych vypsat třeba 300 vesnic (od nejbližších po ty nejdále), + každá má v tabule vlastní typ, a chtěl bych zvolit třeba jen ty, které mají typ < 100, od tech, co jsou nejblize... a vypsat jich třeba 300... jde tedy nějak takto porovnat vesnice hned v databázi, nebo se to musí pročítat a seřadit to až v php, a jak? Díky moc Watchick PS v databazi je treba 20 000 vesnic, tak to procitani asi moc nepřichází v úvahu že?... |
||
AM_ Profil |
#2 · Zasláno: 3. 4. 2009, 22:14:05 · Upravil/a: AM_
určitě to půjde v databázi, vzdálenost je odmocnia z ((x2-x1) na druhou + (y2-y1) na druhou), jak se dělají mocniny v MySQL si najdeš v referenci, to z hlavy nevím...
pak něco jako SELECT (nejaky ty operace) AS vzdalenost FROM neco ORDER BY vzdalenost |
||
TomášK Profil |
#3 · Zasláno: 3. 4. 2009, 22:18:35 · Upravil/a: TomášK
Šlo by tohle? Nebo něco přehlížím v zadání?
$vychozi_x = 61; $vychozi_y = 3; $limit = 300; SELECT *, SQRT(POW((x - $vychozi_x), 2) + POW((y - $vychozi_y), 2)) AS vzdalenost FROM vesnice WHERE typ < 100 ORDER BY vzdalenost LIMIT $limit Edit: zase jsem druhý :( |
||
watchick Profil * |
#4 · Zasláno: 4. 4. 2009, 06:20:21
ok, zkusim, diky jen pro moje info ted uplne nestiham sledovat logickou stranku toho odmocnovani v prikazu... najde to vednice vsemy snery ze?nemela by tam byt absolutni hodnota z Y - vychozy_y?
|
||
Alphard Profil |
#5 · Zasláno: 4. 4. 2009, 07:04:33
watchick:
„nemela by tam byt absolutni hodnota z Y - vychozy_y?“ Nevím, jak přesně to myslíte, ale žádná absolutní hodnota tam být nemusí. Odmocňujeme součet sudých mocnin, není probém. Pokud vás ta vzdálenost nezajímá, nemusí tam ta odmocnina být vůbec. Porovnání bude stejné. |
||
Watchick Profil |
#6 · Zasláno: 4. 4. 2009, 08:12:06
Alphard
Jo, jasně, -2^2 jsou take 4 :) moje chyba :) |
||
Časová prodleva: 15 let
|
0