Pokaż wyniki 1 do 6 z 6

Temat: Delphi najbliżej położone liczby.

  1. #1
    Zarejestrowany
    Dec 2006
    Postów
    726

    Domyślnie Delphi najbliżej położone liczby.

    Mam zamiar napisać program w delphim który będzie wybierał 3 najbliższe punkty w okolicy wybranego przeze mnie czyli jest powiedzmy 20 ja wybieram jeden a zostają zaznaczone po zanim jeszcze trzy leżące najbliżej ma ktoś może jakiś pomysł jak to zrobić?
    "dobrzy hakerzy są sławni na cały świat, ale o hakerach geniuszach nikt nic nie wie."

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Najblizej geometrycznie czy jak? Najprosciej twierdzenie pitagorasa zastosowac bo punkty musza miec jakies wspolzedne, wiec liczysz i porownujesz...
    W przypadku lokalizacji 3D zasada podobna tylko liczy sie nieco inaczej...

    Mozesz tez dla zabawy zbudowac maciez odleglosci wszystkich mozliwych punktow na zasadzie kazdy z kazdym - inaczej zbudowac odcinki ale moim zdaniem dopuki nie musisz miec odpowiedzi na prawde natychmiast (odczytanie z maciezy) to marnowanie cykli procesora... mozna to policzyc w ulamku sekundy dla 20 puntkow

    To taki mechanizm typu 'generic' - mozna go dalej optytmalizowac aby np sprawdzal czy w odleglosci X+-1 lub Y+-1 sa jakies punkty (czy ich wspolzedne sa oddalone od naszych o N gdzie N mozna zwiekszac jesli ilosc punktow jest za mala a pozniej liczymy... albo szukamy takich punktow dla ktorych (x,y) = (X-1 do X+1, Y-1 do Y+1) i tak dalej... szukamy zwiekszajac kwadrat w srodku ktorego jestesmy my... Jak znajdziesz 3 punkty lub wiecej dla kazdego liczysz odleglosc starym sposobem...

    To taka pierwsza mysl jak to zrobic Cos jeszcze?

  3. #3
    Zarejestrowany
    Dec 2006
    Postów
    726

    Domyślnie

    Fajnie to brzmi no ale z wykonaniem może być trochę gorzej jutro nad tym postaram się posiedzieć .
    "dobrzy hakerzy są sławni na cały świat, ale o hakerach geniuszach nikt nic nie wie."

  4. #4
    Avatar eMCe
    eMCe jest offline Emil Grzegorz Gubała
    Zarejestrowany
    Dec 2006
    Skąd
    Kielce
    Postów
    1,767

    Domyślnie

    ja bym chyba wybrał metode każdy z kazdym... ale poczekaj aż tu pierzu zajży....
    Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Najprosciej najpierw poczekac na wskazanie interesujacego nas punktu a pozniej zaczac liczyc odleglosci do pozostalych zamiast kazdy-kazdy - strata czasu na 360 pozostalych obliczen (20x20 = 400, 20 bedzie zdublowane, 20 to minimum aby sprawdzic calosc)... jak widzicie mozna oszczedzic 360 przebiegow obliczeniowych juz na poziomie dobierania algorytmu

  6. #6
    Zarejestrowany
    Feb 2007
    Skąd
    Kielce
    Postów
    131

    Domyślnie

    sadze ze podowiedzi juz dostales a jesli nie wiesz na czym to oprzec to polecam GDI windy, proste i nawet dobre. Odwolujesz sie do osi wspolrzednych za klazdym razem, a do tego moze Ci sie przydac: SetMapMode, SetWindowOrgEx (domyslne polozenie 0,0 - lewy gorny rog ekranu), SetWindowExtEx, SetViewportOrgEx,
    "W życiu wszystko ma jakiś sens, tylko trzeba go odnaleźć. No i często ma on odmienne znaczenie dla różnych osób."

Podobne wątki

  1. [DELPHI] Keylogger
    By Macok in forum Delphi/Pascal/Lisp
    Odpowiedzi: 8
    Autor: 11-25-2010, 14:44
  2. Muzyczka w Delphi
    By Osama911 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 0
    Autor: 01-17-2007, 18:49
  3. Mam Pytanie Kurs delphi 7
    By Michel&1991 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 4
    Autor: 01-17-2007, 18:39
  4. [DELPHI]Kompilator - gdzie znajde?
    By Macok in forum Delphi/Pascal/Lisp
    Odpowiedzi: 4
    Autor: 12-20-2006, 15:32
  5. [DELPHI]Kompilator - gdzie znajde?
    By Macok in forum Hacking
    Odpowiedzi: 0
    Autor: 11-11-2006, 11:03

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52