![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 1 Dołączył: 14.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam. Natrafiłem na trudny element w programowaniu mojego projektu. Chodzi o sposób rozmieszczania elementów (o polu 1x1) na kwadratowej mapie o dowolnej wielości przykładowo 1000x1000 pól. Elementy mają się rozkładać od środka czyli od elementu o danych x500 y 500. Element = użytkownik, czyli jedno pole na mapie. Elementy muszą rozkładać się po kolei po okręgu. Jak to rozgryść od strony programistycznej? Czy tutaj ma szansę działać jakiś rand() ze sprawdzaniem sporej ilości warunków (bądź małej, jeżeli ktoś mi pomoże rozwiązać ten problem prosto (IMG:style_emoticons/default/smile.gif) ), czy może napotkał się ktoś na jakiś algorytm pomocny przy moim problemie.
Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Doprecyzuj.
JAkiej mapie? Rozumiem że to twoja mapa, jak np. do gry, 1000x1000 jest wyrażone w pixelach? Jakim okręgu? o jakim promieniu? Ten post edytował timon27 16.03.2014, 20:34:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 1 Dołączył: 14.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Może być wyrażone w pikselach, ale nie musi. Po prostu pole 1 na 1 niezaleznie jakiej jednostki, mapa ma 1000 na 1000 jednostek. Okrąg narasta wraz z przyrostem userów, czyli 1 user = 1 punkt na mapie o wielkości 1 na 1. Czym więcej userów tym większy okrąg się rozrasta od środka.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
oto chodzi:
x = axisX + cos(angle) * radius y = axisY + sin(angle) * radius ? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ok.
NAjlepiej na mysql, bo jeśli robisz gre to wiadomo że mysql musisz mieć. Najpierw utwórz tabelę zajęteośći z kolumnami: - współrzędna lewa - współrzędna prawa - odległość od środka - user Następnie wypełnij ją automatem:
Na razie pole user jest puste == nikogo tam nie ma. Gdy będziesz chciał kogoś wsadzić na mapę poszukasz najbliższego środka miejsca: i potem go tam wsadzisz: Ten post edytował timon27 16.03.2014, 21:11:31 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 1 Dołączył: 14.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie wydaje mi sie ciekawe, niestety musze iść spać, bo jutro do pracy, ale wieczorem będę o tym myślał, więc mogę mieć ewentualne pytania, więc liczę na pomoc na PW (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 19:14 |