sobota, 14 kwietnia 2012

Podstawy XNA i oprogramowywanie sensora Kinect.

Witam wszystkich po dość długiej nieobecności. Ostatnio brakowało mi pomysłów na jakieś ciekawe artykuły, a nie chciałem też pisać o drobnostkach. Wpadłem ostatnio na pomysł podzielenia się swoją wiedzą o programowaniu na Kinect’a.

Kinect jest sensorem ruchu od firmy Microsoft. Jest wyposażony m. in. w kamerę VGA, oraz zestaw do wykrywania załamań promieniowania czerwonego: emiter oraz kamerę z filtrem podczerwieni. Dzięki temu urządzenie jest w stanie spełniać rolę zwykłej kamerki internetowej (przechwytywanie obrazu), jak i określania odległości między sensorem a obiektami przed nim. Dodatkowo oprogramowanie zawiera algorytmy potrafiące ‘wyłapać’ sylwetkę człowieka. Postaram się opisać sposób zaprogramowania w.w. czynności.

czwartek, 13 października 2011

Drobny wykład o konstruktorach klas

Dzisiejszy artykuł poświęcę konstruktorom klas.
Mini-wykład  ten jest skierowany do raczkujących programistów. Proszę więc o wyrozumiałość, jeżeli moje tłumaczenia będą do bólu łopatologiczne.

Przykłady będę pisać w języku C++, jednak logika jest identyczna w każdym języku obiektowym.

Aspekty poruszone w artykule:

* konstruktor klasy
* przeciążanie konstruktorów
* destruktory klas
* destruktory wirtualne
* konstruktor kopiujący
* dynamiczna alokacja pamięci - przeciążanie konstruktora kopiującego

sobota, 10 września 2011

4 podstawowe założenia programowania obiektowego.

Wielu początkujących programistów tworzy kod zupełnie ignorując niektóre z nich; inni stosują je, nie wiedząc tak naprawdę po co. Kluczem do produkowania kodu zdatnego do dalszego przetwarzania jest jednak ich głębsze zrozumienie.


Czy można pisać programy zupełnie ignorując te 4 podstawowe zasady? Można, program skompiluje się, zadziała, może nawet wykona się szybciej niż przy uwzględnianiu tych zalożeń. Problem, jak to zwykle w programowaniu bywa, pojawia się później, gdy dojdą nowe założenia programu. Wówczas modyfikacja kodu niespełniającego ww. założeń często trwa więcej, niż napisanie całego kodu od początku.


Zasady programowania obiektowego (w kolejności alfabetycznej) :


- Abstrakcja
- Dziedziczenie
- Hermetyzacja
- Polimorfizm


Początkowo rozpatrzmy dziedziczenie, abstrakcję oraz polimorfizm, gdyż są one ze sobą ściśle powiązane. Hermetyzację zostawimy sobie na koniec.


Rozpatrywane przykłady będę pisać w języku C++.