Oprócz kursów ze Stanforda (o których tutaj pisałem) pojawiły się dwa - moim zdaniem bardzo ciekawe - kursy online trwające 7 tygodni:
CS 373: PROGRAMMING A ROBOTIC CAR
CS 101: BUILDING A SEARCH ENGINE
Prowadzi je Sebastian Thrun oraz David Evans, i chyba będą darmowe więc warto się zapisać ;)
Zapisy na kurs odbywają się tutaj.
piątek, 27 stycznia 2012
piątek, 20 stycznia 2012
Atraktory, czyli chaos na ekranie
![]() |
| Atraktor De Jong |
Nawet z przyjacielem zrobiliśmy program umożliwiający interakcje z fraktalami i atraktorami (obracanie, przesuwanie, animowanie itd).
Mam zamiar powrócić do tego tematu i podejść do tego z wiedzą, która od tamtej pory nabyłem a tymczasem wrzucam kilka wzorów skopiowane z mojej starej aplikacji ;)
czwartek, 19 stycznia 2012
Bezpośrednia konwersja wielomianu interpolacyjnego w postaci Newtona na postać Beziera
Jednym z zadań jakie miałem do zrobienia wraz z przyjacielem na pracownię (a potem była na ćwiczeniach) z analizy numerycznej dotyczyła konwersji wielomianu w postaci Newtona na postać Beziera. Ciężko coś znaleźć na ten temat w internecie i trochę ciężko było, dlatego postanowiłem napisać tego posta ;)Napisaliśmy konwersję bezpośrednią jak i pośrednią (z wykorzystaniem bazy potęgowej) - opiszę w tym poście tylko tą pierwszą. Ładnie sformatowany pdf (który zawiera również kod) można pobrać tutaj.
Opis problematyki
Niech dany będzie wielomian interpolacyjny w postaci Newtona $L_n$, przy czym $b_k$ oznacza stałe współczynniki a $p_k$ iloraz różnicowy. Poszukujemy jego zapisu w postaci Béziera $B_n$. Wprowadźmy oznaczenia:
\begin{align*}
L_n(x) = \sum_{k=0}^{n}b_k p_k(x) \\
B_n(x) = \sum^n_{k=0}c_kB^n_k(x)
\end{align*}
Chcemy by:
\begin{equation} \label{eq:rownosc}
L_n(x) = B_n(x)
\end{equation}
Zatem problem sprowadza się to do problemu dobrania takich stałych $c_k$, by ta równość zachodziła.
poniedziałek, 12 grudnia 2011
VIP: Inteligentne skalowanie
Obecnie implementuję w C# algorytm Seam Carving. Jest to zaskakująco prosty algorytm "inteligentnego" skalowania. Idea algorytmy polega na usuwaniu szwów o najmniejszej energii, gdzie energię szwu definiuje się ile krawędzi (wysokich częstotliwości) przecina dany szew.
Póki co mam zaimplementowane zmniejszanie i pracuję nad powiększaniem, później dodam możliwość maskowania. Docelowo chciałbym to później przepisać w C++ i Qt.
![]() |
| Stan aplikacji na dziś - po lewej obrazek wejściowy, po prawej - efekt działania programu |
niedziela, 11 grudnia 2011
Stara gierka z gimnazjum
Dzisiaj znalazłem źródła mojej staarej gierki zrobionej w konsoli (C++ i WinAPI) w 2 klasie gimnazjum. Dopiero uczyłem się programować obiektowo w C++ i alokować dynamicznie pamięć :)
Celem gry jest przejechanie jak największej ilości ludzików, omijając niebezpieczne płotki jadąc niezwykle wypasionym samochodem.
Grafika - ASCII art, migotająca bo nie ma podwójnego buforowania a sama rozgrywka jest za wolna - czego wtedy nie potrafiłem rozwiązać, a teraz mi się już nie chce ;)
Źródła do ściągnięcia tutaj, a jak ktoś chce pograć i nie chce mu się kompilować to plik wykonywalny jest tutaj.
środa, 7 grudnia 2011
Zagadka "Skarby" i jej rozwiązanie w prologu
Pierwszym zadaniem na pracownię z programowania było rozwiązanie zagadki "Skarby" z Wiedzy i Życia zaimplementowane w prologu, który idealnie nadaje się do takich zadań.Treść zadania brzmi tak:
Mamy planszę n x m. Cyfra w danym polu oznacza, w ilu sąsiednich kratkach – stykających się z polem z cyfrą bokiem lub rogiem – znajdują się skarby. W kratkach z cyframi skarbów nie ma. Znajdź wszystkie miejsca gdzie mogą być zakopane skarby.
Jak zatem rozwiązać taki problem w prologu? Standardowo: generuj-sprawdź-nawróć.
Amoeba - eksperymentalny wirus
Postanowiłem podzielić się opisem swojego eksperymentu, który miał miejsce kilka lat temu (~4).
W skrócie - stworzyłem prostego robaka polującego na inne ustrojstwa i wprowadziłem go w "ekosystem".
Udostępniam również kod do wglądu (róbta co chceta, ale nie biorę odpowiedzialności ;)) - kod źródłowy Amoeby (VS2k8, C++ oraz WinAPI).
Dla genezy i opisu eksperymentu zapraszam do czytania dalej.
W skrócie - stworzyłem prostego robaka polującego na inne ustrojstwa i wprowadziłem go w "ekosystem".
Udostępniam również kod do wglądu (róbta co chceta, ale nie biorę odpowiedzialności ;)) - kod źródłowy Amoeby (VS2k8, C++ oraz WinAPI).
Dla genezy i opisu eksperymentu zapraszam do czytania dalej.
Subskrybuj:
Posty (Atom)

