Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak zrobić klikaną mapkę o nieregularnych kształtach w VB?
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002
Jak zrobić klikaną mapkę o nieregularnych kształtach w VB?

Witam!

Nie wiem jak sobie poradzić z tytułowym problemem. Potrzebuję zrobić klikaną mapkę w swoim programie, taką, że jak najadę na jakieś państwo, to ono się podświetli, a jak na nim kliknę, wywołam określoną operację...

Da się coś takiego zrobić w VB?


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


17-02-2005 10:46
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
Adrian



Typ: neutral
Postów: 59
Zarejestrowany: Jan 2005
Ja chyba mam odpowiedz...

Nie wiem czy oto ci chodzi ale wysyłam przykład na Maila .

ps.Chyba nie zaczaiłem co to jest mapka
Prosze powiedz czy oto ci chodziło.


_____________________________________________
+_+ADI SOFTWARE+_+

17-02-2005 11:13
Pokaż profil Adrian  Wyślij email do Adrian   Odwiedź stronę Adrian  
Adrian



Typ: neutral
Postów: 59
Zarejestrowany: Jan 2005

Zapomniałem o podswietleniu :
Dajesz Timera Shepa i Labela :

Private Sub Timer1_Timer()
If Label1.Caption = "X : 735" Then
Shape1.BackColor = &HC0FFFF
Else
Shape1.BackColor = &HFFFFFF



End If


_____________________________________________
+_+ADI SOFTWARE+_+

17-02-2005 11:32
Pokaż profil Adrian  Wyślij email do Adrian   Odwiedź stronę Adrian  
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002

Dziękuję Ci za chęć pomocy, ale nie o to mi chodziło. Potrzebuję, aby użytkownik zobaczył mapę Europy. Najeżdża załóżmy na Ukrainę i cały obszra tego Państwa podświetla się. Nie wiem tylko jak to zrobić bo image jest obszraem kwadratowym i nie uwzględnia nieregulanych, poszarpamych kształtów jakich potrzebuję użyć...


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


17-02-2005 19:55
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
Adrian



Typ: neutral
Postów: 59
Zarejestrowany: Jan 2005

A nie mozesz zrobić tak że będą dwa image jeden z podkresleniem drugi bez.. i np.Jak użytkownik najedzie na panstwo to
imgPodkreslenie.Visible = True
imgNiePOdkerslony.Visible = False

ps.Viper wiem że pewnie to wiesz Ale powiedzieć chyba moge .

                                  Pozdrawiam

[Post edytowany dnia 17-02-2005 22:29 przez Adrian]


_____________________________________________
+_+ADI SOFTWARE+_+

17-02-2005 20:36
Pokaż profil Adrian  Wyślij email do Adrian   Odwiedź stronę Adrian  
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002

Czy ja powiedziałem, że nie możesz? Bez przesady-nie jestem taki wszechwiedzący.

Tylko tyle, że ja chcę wykryć najechanie na Państwo, a nie na miasto...


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


17-02-2005 20:45
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
Adrian



Typ: neutral
Postów: 59
Zarejestrowany: Jan 2005

Wybacz Viper jeżeli= cos nie tak powiedziałem...

Ale wg mnie jesteś profesjonalistą i takie błachostki jak ja mówie wiesz.

                        Pozdrawiam


_____________________________________________
+_+ADI SOFTWARE+_+

17-02-2005 22:32
Pokaż profil Adrian  Wyślij email do Adrian   Odwiedź stronę Adrian  
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002

Adrian . Nie powiedziałeś niczego nie tak, po prostu jest mi niezręcznie gdy ujawniasz, że masz o mnie tak wysokie mniemanie...
Dziękuję-jest mi bardzo miło, chociaż, żeby zasłużyć na miano profesjonalisty musiałbym się pewnie jeszcze wielu rzeczy nauczyć, a na pewno gdybym był aż tak świtny nie pytałbym o tę nieszczęsną mapkę .

Teraz druga sprawa. Dzięki za chęc pomocy, ale chyba wspólnie nic nie wymyślimy...

CZY NAPRAWDĘ NIKT INNY NIE MA ŻADNEGO POMYSŁU!?


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


17-02-2005 22:54
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Ja mam całe 3 pomysły na wykrycie kliknięcia:

1a) Jeśli mapa jest pokolorowana i każdy kraj ma inny kolor - możesz wykryć na podstawie koloru (np. funkcją Point).

1b) Jeżeli są kolorowane ograniczoną liczbą kolorów, możesz spróbować pokolorować je tak, by w danym kwadracie nie było dwóch krajów o tym samym kolorze. Wtedy sprawdzasz kolor i w którym kwadracie* nastąpiło kliknięcie i te na dane pozwalają stwierdzić, na który kraj najechał użytkownik kursorem.

2) Użyć regionów. Po najechaniu na mapę trzeba sprawdzić dla każdego regionu, czy punkt jest jego częścią (funkcja GDI: PtInRegion). Uwaga: pamiętaj, że położenie regionu musi dokładnie powiadać położeniu kraju na mapie, nie tylko kształtowi.

3) Pomysł z regionami jest dobry, ale wymaga stworzenia w pamięci regionów o odpowiednich kształtach, a to jest pracochłonne. Łatwiej jest użyć bitmap odpowiadajacych kształtem i położeniem każdemu krajowi. Sprawdzanie polega wtedy na stwierdzeniu, na której bitmapie w tym miejscu jest kolor czarny**.

* wybrałem kwadrat, bo jest najłatwiejszy do sprawdzenia, ale może być dowolna inna figura, którą potrafisz szybko sprawdzić i nadaje się do tego zastosowania.

** może być dowolny inny kolor - chodzi o kolor, którym będzie narysowany kształt kraju.

Co do zaznaczania: mam 3 pomysły.
1) Po wykryciu najechania narysować wybranym kolorem region o kształcie kraju (jaśniejszy niż normalny kolor przed najechaniem)
2) Podobnie jak poprzednio, ale tym razem użyć bitmapy.
3) Użyć funkcji FloodFill (GDI) w punkcie kliknięcia. Ten pomysł wydaje się najłatwiejszy, bo wogóle nie musisz przeprowadzać wykrywania, które to państwo - poprostu wypełniasz w danym punkcie.

Oczywiscie we wszystkich 3 przypadkach trzeba pamiętać o "odznaczeniu" kraju, gdy użytkownik przeniesie kursor w inny punkt.

(mam nadzieję, ze wyraziłem się jasno )

[Post edytowany dnia 18-02-2005 08:35 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

18-02-2005 08:34
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

...a na przykładzie mapy Polski i województw  jest  w Accessie "coś podobnego" , do ściagnięcia  ze strony domowej Bratków

http://www.bratki.w.v1.pl/ - dział Bitmapy - Mapa Polski

(http://www.bratki.w.v1.pl/Access/06_Bitmapa.htm)

- pt.: "Malowanie obszaru województwa wybranym kolorem."


_____________________________________________
Karolina

18-02-2005 10:48
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1