Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 kwi 2025, o 16:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 19 lip 2019, o 18:20 
    Offline
    Użytkownik

    Dołączył(a): 03 sie 2017
    Posty: 94
    Pomógł: 0

    Witam,
    od pewnego czasu próbuję napisać funkcję rysują okrąg na wyświetlaczu. Na razie udało mi się ustalić, że w funkcji mogą być zawarty tylko takie stałe jak położenie środka okręgu X I Y oraz jego promień R. Na początku chciałem zrobić coś takiego, że bym zmniejszał lub zwiększał wartości A i B które oznaczają najdalej wysunie punkty z każdej strony okręgu, jednak doszedłem do wnioski, że tak nie można, gdyż na okręgu tak naprawdę jest nieskonczenie wiele połączonych ze sobą punktów. Wówczas miałbym narysowany okrąg, ale z przerwami.
    Próbowałem kombinować trochę na funkcjach trygonometrycznych i na wzorze który znalazłem w necie[ (x-a)^2+(y-b)^2=r^2)], ale nic konkretnego mi nie wychodzi.

    Jeżeli ktoś wie jak można byłoby to zrobić to proszę o pomoc :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lip 2019, o 18:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lis 2015
    Posty: 219
    Pomógł: 20

    Popacz tutaj
    http://members.chello.at/~easyfilter/bresenham.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2019, o 22:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    witam,
    Bystrzacha napisał(a):
    ...w funkcji mogą być zawarty tylko takie stałe jak położenie środka okręgu X I Y oraz jego promień R. ...

    ponieważ to jest najprostszy sposób na usytuowanie okręgu.
    Należy się zastanowić:
    na jakich współrzędnych na osiach X i Y należy narysować punkty, by powstał zamierzony okrąg.
    musimy wiedzieć gdzie jest jego środek, i jaki jest promień okręgu.
    dodatkowo można oczekiwać grubości linii która będzie reprezentować nasz okrąg, czy musi być wypełniony(kolo)... .
    Jeżeli środek będzie w pozycji "0,0" to wykresem na ekranie będzie wycinek-ćwiartka okręgu.
    Program musi wiedzieć gdzie np. zacząć rysować i z jaką rozdzielczością.
    Poza tym są jeszcze metody na rysowanie pikseli sąsiednich, nie wynikających bezpośrednio z punktów okręgu,
    tylko pośrednio z sąsiednich dla uzyskania lepszego odwzorowania optycznego wrażenia okręgu.
    Tu trzeba się wczytać i zapoznać z koncepcjami autorów takich rozwiązań i sposobem ich realizacji.
    W moim przypadku, jak do tej pory do celów testowych i małych projektów wystarcza podstawowa wersja bez cieni oczywiście z zaokrągleniem wyniku współrzędnych Y na poziomie '+0,5'. chodzi o t żeby program czytając wynik np. '10,8' nie wstawił piksela w pozycji '10' tylko w pozycji '11'.
    Kolejną ważną z punktu widzenia prędkości rysowania(wyliczania) okręgu jest jego symetryczność.
    Jeżeli wyliczysz punkt odsunięty w prawo w osi X i w górę w osi Y od środka, to już masz wyliczone odsunięcie od środka pozostałych czterech punktów w pozostałych kierunkach, a nawet ośmiu.
    Kiedyś próbowałem sam pisać taki kod :roll: , ale po co wymyślać koło od nowa. :)
    Są gotowe rozwiązania, poszukaj pod hasłem np. "algorytmy Bresenhama" albo zerknij na podesłany przez kolegę link.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2019, o 22:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 paź 2014
    Posty: 233
    Lokalizacja: Rzeszów
    Pomógł: 11

    Kiedyś coś takiego popełniłem. Nie potrafię podać źródeł - bo nie zapisałem, ale na wyświetlaczy nokii działało.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Mr. Nobody



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO