Autor Wątek: Algorytm umiejscawiania ikon/elemntow gui  (Przeczytany 2590 razy)

Offline maad

  • Użytkownik

# Kwiecień 19, 2006, 13:34:31
Zacząłem, eksperymentalnie, pisać GUI na bazie czegoś na kształt ikonek, na które się klika bądź najeżdża kursorem a wtedy dookoła otwierają się inne ikonki, takie drzewko, na zasadzie wielopoziomowego menu.
Problem jest w umiejscawianiu tych pojawiających się ikonek.
Próbowałem, myślałem, ale nie mam pojęcia jak to ugryźć. Jak poukładać je dookoła, tak aby na siebie nie zachodziły i za ekran nie wyjeżdżały (kwestię animacji pomijam).
Aha, to wszystko w 2D ma być.
Jeśli ktoś ma pomysł na algorytm to byłbym wdzięczny.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Koshmaar

  • Użytkownik
    • Homepage

# Kwiecień 19, 2006, 20:28:28
Więc piszesz pie menu? Zawsze zanim o coś zapytasz, poszukaj na Googlu i Wikipedii (i w linkach zewnętrznych od Wikipedii) ;-)

Poza tym, nie bardzo rozumiem w czym leży twój problem: na każdym poziomie masz X elementów, które musisz dosyć równomiernie rozłożyć wokół koła umieszczonego w jakimś punkcie. Jakaś pętla for się pewnie przyda, jakieś radiany, jakaś liczba PI, jakieś dzielenie itp.

Offline maad

  • Użytkownik

# Kwiecień 19, 2006, 20:58:11
Wlasnie o takie informacje mi chodzilo. Dzieki.
Probowalem czegos szukac, ale nawe nie przychodzily mi do glowy zadne okreslenia, bo to co robie troche rozni sie od pie menu, choc blzej do tego niz do menu w postaci listy.
Sproboje tak jak piszesz, tylko zastanawiam sie, jak to bedzie dzialac kiedy kolejne pod-menu beda rozwijane, trzeba by wyznaczyc jakis kat "zakazany", miejce w ktorym jest poprzedni poziom menu.
Czasem wystarcza 2 slowa aby "zapalila sie zarowka" :)

Offline Koshmaar

  • Użytkownik
    • Homepage

# Kwiecień 19, 2006, 21:02:13

Niezamaco :-)


IMHO niekoniecznie potrzebujesz "kątów zakazanych", może spróbuj stopniowo alphablendować poprzednie poziomy menu przy rozwijaniu następnych, w ten sposób te nowsze będą lepiej się odcinać i żadne skomplikowane algorytmy wyszukiwania wolnego
miejsca nie będą potrzebne.

Offline maad

  • Użytkownik

# Kwiecień 19, 2006, 22:55:03
Tak właśnie było by najładniej i najlepiej, ale API którego używam nie nadaje się za bardzo do przeźroczystości. Ze względu na szybkość.
Natomiast elemeny które są mniej ważne mogą zmieniać rozmiar i kolor.
Cóż, okaże się w praniu.

Offline orzech

  • Użytkownik
    • homepage

# Kwiecień 22, 2006, 21:13:07
Taki off-topic mi się nasunął jak zobaczylem temat tego wątku; dzisiaj w pracy przez 6h ustawiałem przyciski w menu. K$$$$ myślałem, że zejdę. :F Napisałem sobie prosty manager menu, który pozwala tworzyć 'formy' i wstawiać na nie kontrolki (przyciski lub teksty). Powstawiałem sobie wszystko, po czym odpaliłem na innym telefonie i wszystko się posypało bo wyświetlacz miał inny rozmiar, a czcionka (jako bitmapa) się nie skaluje. :FFF Masakra.

... i w tamtej chwili zamarzyłem o napisaniu algorytmu do 'przyjemnego' pozycjonowania kontrolek. O innych rzeczach też marzyłem.

Offline Moriturius

  • Użytkownik

# Maj 04, 2006, 14:18:42
Jeśli chodzi o to menu to mysle ze podmenu mogloby sie otwierac w tym samym miejscu w ktorym bylo menu i po prostu je "zakrywać" (czyli stare nie byłoby rysowane) a w środku tego podmenu bylaby opcja powrotu do góry (znaczy sie nadrzędnego)... Taki sposob wydaje mi sie najprostszy i najwydajniejszy.