Krzywe Lissajous

Aby utworzyć krzywą Lissajous[wymawia się „lisażu”] możemy użyć dwóch wahadeł (ciężarków na sznurku), albo użyć modelu matematycznego do stworzenia komputerowej reprezentacji takich krzywych.

Eksperyment rysujący krzywe:
Kawałek sznurka przymocowujemy do stojaka. Na końcu sznurka przymocowujemy ciężarek. Do ciężarka przymocowujemy sznurek, a na jego końcu drugi ciężarek.
Odchylamy oba ciężarki od położenia równowagi, pierwszy ciężarek ma być odchylony w płaszczyźnie prostopadłej do płaszczyzny ruchu drugiego.
Ruch niższego ciężarka będzie zakreślał coś w rodzaju krzywej Lissajous.

W języku C++, napisałem program wyliczający pozycję wahadła matematycznego w zależności od czasu. Jedno wahadło zmieniało swoją pozycję w osi x, drugie w osi y. Do wyrysowania krzywych w czasie rzeczywistym, użyłem biblioteki graficznej Allegro. Złożenie ruchów dwóch wahadeł pozwalało rysować krzywe na ekranie.

Wygląd krzywych zależał od parametrów początkowych programu, amplitudy, fazy i częstotliwości drgań. Bawiąc się parametrami utworzyłem następujące obrazy:

W rezultacie uzyskałem ciekawe wzory, ale postanowiłem nieco je urozmaicić. W tym celu zmodyfikowałem nieco kod programu, uzależniając funkcyjnie (zwykłą funkcją liniową) amplitudę drgań wahadła od czasu.

Jeśli chcesz, abym dokładniej wyjaśnił coś z tego tematu  możesz zostawić komentarz. 🙂

Eat my face! Skanowanie 3D.

Tworzenie prostych modeli 3D dzięki skanowaniu nie wymaga profesjonalnego studio, drogiego sprzętu, czy płatnego oprogramowania. Dobry efekt można uzyskać niemal wszystkim, co robi zdjęcia. Fotografowany obiekt powinien być nieruchomy, podczas 20-60 zdjęciowej sesji fotograficznej. Wystarczy zdjęcia „wrzucić” do programu i po jakimś(dłuższym) czasie mamy gotowy model. Ja swój obrobiłem w Blenderze, ale poradzi sobie z tym każdy program do modelowania.

Oprogramowanie:
123D Catch – stworzenie modelu ze zdjęć dzięki mocy obiczeniowej cloud computing.
Blender – przerobienie modelu – usunięcie zbędnych wierzchołków.

Cały proces dostarczył mi wiele frajdy.

Jak zrobić skan 3D?
Trzeba zadbać o „dobre” oświetlenie – obiekt powinien być oświetlony równomiernie z każdej strony, nie powinno być na nim ostrych cieni, gdyż 123D catch nie poradzi sobie ze stworzeniem modelu. Nie uda się też model szkła, czy innych przezroczystych, albo odblaskowych materiałów. Należy unikać powtarzających się motywów takich jak kratka. Można za to stworzyć model całego lub tylko fragmentu obiektu, przy czym należy pamiętać o fotografowaniu pod różnymi kątami, bez flasha i bez zooma oraz ustawić małe ISO w aparacie.
Lepiej robić zdjęcia podczas zachmurzenia niż w słoneczny dzień.
Obsługa 123D catch jest prosta, wystarczy utworzyć nowy projekt i dodać do niego zdjęcia.
Powinieneś jednak znać jakikolwiek program do modelowania/obróbki 3D aby ustawić odpowiednią scenę lub przerobić model na gotowy do druku drukarką 3D.

Prosta gra konsolowa ze zgadywaniem liczb.

W grze naszym celem jest zgadywanie liczb z przedziału od 0 do 1000.
Komputer losuje nam liczbę np.(358). My wpisujemy np. 500 po czym otrzymujemy zwrotną informację, czy nasza liczba jest większa, czy mniejsza od wylosowanej: ‚500 to za dużo’.
Po zgadnięciu liczby otrzymujemy punkty według wzoru: ( 10 – liczba strzałów ) * 10.
Po zdobyciu 100 punktów wygrywamy grę.
Grę zaimplementowałem w języku ruby

Mastermind 1.0 – konsolowa gra w języku Ruby

Mastermind 1.0

W grze chodzi o odgadnięcie ukrytego kodu, przy czym komputer zlicza nam ilość prób po której odgadniemy kod.

Taki kod składa się z 4 cyfr od 1 do 4 (cyfry mogą się powtarzać)
Kod jest generowany przez komputer i może wyglądać jak jeden z poniższych:
– 2134
– 4223
– 1332

W pierwotnej wersji gry było maksymalnie 10 prób, a w mojej można zgadywać ile razy się chce. Ale skąd mamy wiedzieć, jak zgadywać aby wygrać? Wykorzystujemy informacje zwrotne od komputera.
Załóżmy sobie, że komputer wylosował kod: 3214
My wpisujemy np. 1234 i w odpowiedzi otrzymujemy ilość cyfr, które występują w kodzie (4) i ile z nich znajduje się na dobrym miejscu (2)
1234 4 2
1324 4 1
1243 4 1
2134 4 1
3214 4 4

Inny przykład:
1234 3 3
2244 2 1
1231 3 3
1232

Odgadłeś kod po 4 próbach.

Grę napisałem w języku ruby. Składa się ona z dwóch plików, o następującym kodzie:

Zmiana poziomu trudności gry:
Aby zmienić długość kodu do zgadnięcia i/lub ilość cyfr z jakich ma się on składać wystarczy w pliku Code.rb zmienić
@@length = 4
@@complexity = 4
na wybrane przez siebie liczby, z tym że:
długość(length) ma być większa od zera,
a druga liczba(poziom skomplikowania) musi być cyfrą większą od zera. Jeśli zmienisz complexity na liczbę dwucyfrową albo większą, program nie będzie działał poprawnie.

Jak uruchomić Mastermind (system windows)?
Instalacja:

Potrzebujesz zainstalować ruby na swoim komputerze.
Można pobrać za darmo z: http://rubyinstaller.org​/downloads/
Zainstaluj odpowiednią dla siebie wersję (polecam pierwszą z góry).

Na pulpicie utwórz katalog „Mastermind„, w którym stworzysz pliki „Code.rb” oraz „Game.rb„.
Przekopiuj do nich powyższy kod.

W systemowej wyszukiwarce wpisujemy cmd. Naszym oczom powinno ukazać się „Wiersz Polecenia” oraz „Start Command Prompt with Ruby”, w które klikamy.
Powinna wyświetlić się nam konsola.
Przechodzimy do miejsca, gdzie mamy naszą grę. Jak?
Polecenie cd Desktop powinno przenieść nas do pulpitu.
Następnie cd Mastermind przeniesie nas do katalogu Mastermind
Wystarczy już wpisać: ruby Game.rb Gra powinna już chodzić. 🙂
W tej wersji, po wygranej, gra nam się wyłączy, aby zagrać jeszcze raz naciśnij strzałkę do góry a następnie enter (w ten sposób wykonasz ostatnie polecenie jakie wpisałeś w konsolę, czyli ruby Game.rb)

Jak widać, ta gra ma prostą budowę, jednak jest wymagająca intelektualnie.

Publikacje – o czym jest ta strona.

Cześć,  jestem Tymon.

Na tej stronie będę publikował różne grafiki stworzone z użyciem darmowego oprogramowania: Blendera i GIMPa.

Będę wrzucał też zdjęcia z ciekawych wydarzeń, takich jak Pyrkon.

Zaprezentuję stworzoną przeze mnie muzykę i video oraz wrzucę moje wykonania utworów innych artystów.

Podejmę współpracę z innymi twórcami i podzielę się z Wami efektami mojej pracy.

stay tuned