Tutoriale do Blendera, czyli jak szybko poznać tajniki aplikacji

Hej, od mojego poprzedniego wpisu minęło już trochę czasu. Zacząłem już wcześniej pisać kilka postów, jednak póki co żaden z nich nie osiągnął stanu pozwalającego na publikację.

Do tego wpisu zainspirował mnie m. in. news na stronie głównej dobrychprogramów informujący o wydaniu nowej wersji aplikacji znanej pod nazwą Blender. Program ten można określić jako wielofunkcyjny program pozwalający na tworzenie grafiki 3D, a także składanie wyrenderowanych scen jeden film.

Bardziej szczegółowy opis funkcjonalności dostępnych w Blenderze, a także klika innych informacji można znaleźć w dedykowanym mu artykule na polskiej stronie Wikipedii.

Po wstępie do wstępu czas na wstęp właściwy :P.

Wstęp

Problem dla początkującego użytkownika zwykle związany jest z poznaniem interfejsu, chociaż i tak w wersji 2.5 został on trochę przeprojektowany.

HTML5 w tworzeniu gier (cz. 3)

Hej,

inne zajęcia trochę odciągnęły mnie od blogowania, jednak po dłuższym czasie napisałem trzecią, jak na razie ostatnią część (mini)cyklu o HTML5 i wykorzystywaniu jego możliwości w połączeniu z Java Scriptem do tworzenia prostych gier. Czas więc odnaleźć na dysku nieco przykurzony programik z opadającymi płatkami śniegu i brać się do jego rozbudowy :).

Poprzednie części minikursu możecie znaleźć wśród wcześniejszych postów:
część l., pokazująca jak stworzyć szkielet strony z elementem canvas (płótnem) i wykonywać na nim proste operacje za pomocą języka Java Script
część ll., prezentującą jak zmienić opadające kółka w płatki śniegu i dodać odrobinę interaktywności ;)

Dziś zmodyfikujemy nieznacznie zaimplementowaną wcześniej obsługę klawiatury, dodamy do gry zasady oraz umożliwimy odgrywanie dźwięków.

HTML5 w tworzeniu gier (cz. 2)

Hej,

przepraszam za dłuższą przerwę, ale ostatnio miałem trochę mniej czasu na pisanie niniejszego tutoriala. W dzisiejszej części cyklu o HTML5 i JS w tworzeniu interaktywnych treści pozostaniemy w zimowym klimacie, ale nieco przekształcimy stworzoną wcześniej aplikację w bardziej interaktywną :).

Tło

Na początku zajmiemy się graficzną stroną naszego dzieła ;). Zamiast nijakiego, jednokolorowego tła wstawimy piękny gradient :).

Wartości poszczególnych kolorów będziemy podawać w 24-bitowym formacie #rrggbb (tzw. Hex, format heksadecymalny lub szesnastkowy), gdzie rr, gg, bb to odpowiednio czerwona, zielona i niebieska składowa koloru. Wszystkie wartości są wyrażane za pomocą dwucyfrowych liczb w systemie szesnastkowym, co umożliwia podanie wartości z przedziału .

Uwaga
Można również spotkać się z zapisem 32-bitowym, który zawiera o dwa znaki więcej na początku, oznaczające wartość przezroczystości piksela (kanału alfa).

HTML5 w tworzeniu gier (cz. 1) wersja zaktualizowana

Hej,

jakiś czas temu zainteresowałem się HTML5, a w szczególności znanym już i lubianym ;) elementem Canvas, który w połączeniu z JavaScriptem wydaje się być znośnym narzędziem do tworzenia interaktywnych elementów, a nawet prostych gier. Wobec szumu, który przez jakiś czas trwał (i być może cały czas trwa) wokół HTML5, jego możliwości i konkurencyjności dla technologii Flash, wygląda to na temat, któremu warto się przyjrzeć.

W kilku częściach tego tutoriala postaram się pokazać jak stworzyć proste gry lub dema ilustrujące poszczególne możliwości HTML5. Do implementacji odpowiedniego zachowania strony użyję języka JavaScript. Można więc ten artykuł potraktować jako minitutorial obu z wyżej wymienionych.

Już na wstępie chcę zaznaczyć, że nie zamierzam wykazywać wyższości tego rozwiązania nad Flashem. Uważam, że HTMLowi jeszcze trochę brakuje, żeby mógł z nim konkurować, więc obie technologie mogą współistnieć jeszcze przez dość długi czas. Nie o tym będzie ten artykuł (a przynajmniej jego dalsza część :P).

Generowanie dokumentów w postaci plików PDF

Hej,

utrzymując tematykę generowania dokumentów z poprzedniego posta zdecydowałem się napisać co nieco o tworzeniu plików w formacie PDF.

Rozpatrzmy dwa scenariusze:
- generowanie dokumentu bezpośrednio w postaci PDF
- konwersja dokumentu z innego formatu

Nie zamierzam przedstawiać tu przekroju przez wszystkie znane lub dostępne rozwiązania i wymieniać ich wad czy zalet. Chciałbym opisać natomiast kilka znanych mi sposobów, które mogą być używane w większości praktycznych zastosowań.

Generowanie dokumentu

W tym przypadku istnieje przynajmniej kilka darmowych bibliotek, którymi możemy posłużyć. Niektóre wyraźnie różnią się od innych, skupiając się na odmiennych aspektach generacji dokumentu. Dzięki temu możemy wybrać bibliotekę, która najbardziej odpowiada naszym oczekiwaniom.

Wymienię tutaj trzy z nich:

- iText / iTextSharp
Są to biblioteki dla programów napisanych w oparciu o .NET lub język Java. Udostępniają narzędzia ułatwiające m.

Office Automation VS OpenXML SDK

Hej,

Dynamiczne generowanie dokumentów jest funkcjonalnością, którą czasem chcielibyśmy dodać w swoim programie. Jeśli np.: implementujemy aplikację wspomagającą redagowanie tekstu warto byłoby umożliwić eksport stworzonego dokumentu do formatu obsługiwanego przez Worda w celu dalszej edycji.

Kiedy już podejmiemy decyzję o dodaniu możliwości wygenerowania dokumentu, zaczniemy poszukiwać sposobu jego implementacji. Możliwości są różne i zależą od formatu pliku, który chcemy uzyskać. Wśród dostępnych rozwiązań warte uwagi wydaje się użycie mechanizmu automatyzacji udostępnianego przez pakiet Office lub stworzenie dokumentów w oparciu OpenXML SKD. W tym artykule postaram się przybliżyć zalety i wady każdego z nich. Będę się opierał na informacjach dotyczących głównie generowania dokumentów Worda, ponieważ z nim miałem głównie do czynienia :).

Automation for Office (Office Interop)

Jeśli posiadasz zainstalowany pakiet Office, możesz do generacji dokumentów wykorzystać API, które udostępnia np.: Word.

Napisz to krócej czyli jak uprościć swój kod

Podczas pisania aplikacji czasem zdarza się, że potrzebujemy zrealizować jakąś prostą operację. W niektóre z takich przypadków wymagają jednak nie dodania jednej linii kodu, lecz np.: całej pętli. W .NET, szczególnie od wersji 3.5, możemy wspomóc się składnią i udostępnianymi mechanizmami, które pozwalają skrócić zapis nawet dla dość skomplikowanych operacji.

Na wstępie chcę zaznaczyć, że żadnych wielkich odkryć tu nie będzie :P. Celem tego artykułu jest natomiast zebranie w jednym miejscu kilku sposobów, którymi można się wspomóc w prostych zadaniach programistycznych. Dzięki temu możemy skupić się na ważnych częściach kodu zamiast tracić czas na klepanie fragmentów pomocniczych ;).

Operator ?
Pierwszy sposób jest znany pewnie każdemu, kto napisał chociaż kilka programów w języku C++ lub C#. Mowa o operatorze ?, zwanym też operatorem trójargumentowym lub operatorem warunkowym.

Pozwala on zastąpić kod:
int v; if (condition) v = value_for_true(); else v = value_for_false();

jedną linią:

Iterowanie po wartościach enuma w .NET.

Hej,

tytuł tego newsa może brzmieć nieco dziwacznie, jednak ostatnio potrzebna mi była dokładnie taka metoda, pozwalająca przejrzeć w pętli wszystkie możliwe wartości dostępne w pewnym wyliczeniu. Dla ustalenia uwagi niech będzie to wyliczenie CodeLanguages.

enum CodeLanguage { CSharp, VBNet, FSharp }

Pierwsze rozwiązanie, które znalazłem było dość proste i polegało na wykorzystaniu statycznej metody GetValues udostępnianej przez klasę Enum.

foreach (CodeLanguage cLang in Enum.GetValues(typeof(CodeLanguage))) { ... }

Z taką funkcją można już łatwo stworzyć typowaną metodę, która pozwoli zwrócić kolekcję wartości dla dowolnego enuma.

public static IEnumerable<T> GetEnumValues<T>() { if (!typeof(T).IsSubclassOf(typeof(Enum))) { throw new Exception("Podany typ to nie enumeracja."); } return (T[])Enum.GetValues(typeof(T)); }

INSERT INTO Blog (Tytuł) VALUES ('Pierwszy post')

Witam na moim blogu wszystkich zainteresowanych programowaniem i grafiką komputerową, a także podróżników, którzy w swej wędrówce poprzez niezliczone strony internetowe zabłąkali się aż tutaj ;).

Od dawna jestem czytelnikiem dobrychprogramów i nie ukrywam, że nie tylko często czytam artykuły, lecz również korzystam z bazy dostępnych programów. Dziś publikuję pierwszy post na blogu, co oznacza, że postanowiłem skorzystać też z funkcji dostępnych dla zarejestrowanych użytkowników :D.

Jak wskazuje tytuł, chciałbym poświęcić w publikowanych postach trochę uwagi programowaniu aplikacji, w szczególności w technologiach związanych z .NET (chociaż nie tylko, jak również widać po tytule ;)) oraz grafice komputerowej 3D. Wszelkie inne informacje i ciekawe nowinki, na które natknę się przeglądając newslettery itd. również mogą się tu pojawić :).

Blog ten więc ma być poświęcony nie jednej konkretnej tematyce, lecz raczej technologiom i IT w szerokim tego słowa znaczeniu, tak więc każdy będzie mógł znaleźć tu coś dla siebie :).

Zaglądajcie, wkrótce pierwszy news :).

Pozdrawiam,

Łukasz