Programowanie telefonów z Windows Phone 7, cz. 5

Podobne dokumenty
Programowanie telefonów z Windows Phone 7, cz. 2

Programowanie telefonów z Windows Phone 7, cz. 3

Programowanie telefonów z Windows Phone 7, cz. 4

Laboratorium Programowanie urządzeń mobilnych

Laboratorium programowania urządzeń mobilnych

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

GRAFIKA KOMPUTEROWA podstawy matematyczne. dr inż. Hojny Marcin pokój 406, pawilon B5 Tel.

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML:

XAML Extensible Application Markup Language

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

1. Pomocnicze. 2. Po zalogowaniu wybierz Pulpit nawigacyjny (Dashboard).

Rozdział 4 Komponenty gry na przykładzie prostopadłościanu

Język Java część 2 (przykładowa aplikacja)

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie obiektowe

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Programowanie obiektowe i zdarzeniowe wykład 8 grafika i animacja

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie obiektowe i zdarzeniowe

HttpRequest Aplikacja Czat

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Plan wykładu. Akcelerator 3D Potok graficzny

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Lokalizacja Oprogramowania

W odniesieniu do wszystkich zajęć: Ocena dopuszczająca: Uczeń:

Programowanie aplikacji okienkowych Windows

JavaFX. Programowanie Obiektowe Mateusz Cicheński

Język Java część 2 (przykładowa aplikacja)

Laboratorium 10 - Web Services

Budowa aplikacji w technologii.net wykład 11 Animacje

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 3 Składnia języka C# (cz. 2)

Programowanie obiektowe

Ćwiczenie 6 Animacja trójwymiarowa

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Wykład 12. Programowanie serwera MS SQL 2005 w C#

POLITECHNIKA POZNAŃSKA. Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności.

Wykład 1: Wskaźniki i zmienne dynamiczne

Politechnika Poznańska, Instytut Informatyki, SUM-TWO

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Rozwój aplikacji modułowych Paweł Brudnicki. Dodanie modułu

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zad. 6: Sterowanie robotem mobilnym

POLITECHNIKA POZNAŃSKA. Programowanie systemów informatycznych LAB 30h











Spis treści. Część I Przygotowanie środowiska Część II Język C# Wstęp... 9

PROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI DirectX

Szczegółowy opis zamówienia:

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

msgbox("akcja: Początek, argument: " + argument.tostring()); Thread.Sleep(1000); //opóźnienie msgbox("akcja: Koniec"); return DateTime.Now.

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

using System;... using System.Threading;

Systemy wirtualnej rzeczywistości. Sterowanie i wykrywanie kolizji

Programowanie obiektowe i zdarzeniowe

Wybrane działy Informatyki Stosowanej

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Lekcja 1: Origin GUI GUI to Graficzny interfejs użytkownika (ang. GraphicalUserInterface) często nazywany też środowiskiem graficznym

Qt - podstawowe cechy

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Tworzenie gier na urządzenia mobilne

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Grafika komputerowa i wizualizacja. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

4. Oprogramowanie OCR do rozpoznawania znaków 39

Zastosowanie języka SVG w szkole średniej technicznej

Michał Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (3)

Java Podstawy. Michał Bereta

Opis efektów kształcenia dla modułu zajęć

Nie tylko Power Point

Multimedia JAVA. Historia

GRAFIKA KOMPUTEROWA I TWORZENIE STRON WWW

Kryteria oceniania uczniów z informatyki w klasie II gimnazjum

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie obiektowe

Projektowanie graficzne. Wykład 2. Open Office Draw

Klasy i obiekty cz II

Podstawy Windows Phone 7.5

PRZEWODNIK PO PRZEDMIOCIE

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

rodzaj zajęć semestr 1 semestr 2 semestr 3 semestr 4 Razem Lp. Nazwa modułu E/Z Razem W I

Lab 9 Podstawy Programowania

Zaawansowane programowanie w języku C++ Klasy w C++

Transkrypt:

Programowanie telefonów z Windows Phone 7, cz. 5 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój 217A 1/21

Materiał na dziś Silverlight: 1. Transformacje namiastka 3D 2. Animacje samoczynna zmiana właściwości 3. Grafika wektorowa XNA: 4. Transformacje jeszcze raz inaczej 2/21

Projekt Obracanie 3/21

Obracanie GUI 4/21

Obracanie GUI 5/21

Obracanie właściwość W pliku MainPage.xaml definiujemy właściwość Projection. Zamieniamy: <TextBlock (...) /> na: <TextBlock (...) > <TextBlock.Projection> <PlaneProjection x:name="planeprojection" /> </TextBlock.Projection> </TextBlock> 6/21

Obracanie obsługa suwaków W pliku MainPage.xaml.cs, po dwukliku na suwakach, definiujemy funkcje: private void slider1_valuechanged(object sender, RoutedPropertyChangedEventArgs<double> e) { textblock1.projection.setvalue(planeprojection.rotationxproperty, slider1.value); } private void slider2_valuechanged(object sender, RoutedPropertyChangedEventArgs<double> e) { textblock1.projection.setvalue(planeprojection.rotationyproperty, slider2.value); } 7/21

Inne właściwości klasy PlaneProjection 8/21

Obracanie 9/21

Obracanie animacja, automatyzacja Nad definicją LayoutRoot w MainPage.xaml dodajemy zasób Storyboard: <phone:phoneapplicationpage.resources> <Storyboard x:name="obracajx"> <DoubleAnimation Storyboard.TargetName="planeProjection" Storyboard.TargetProperty="RotationX" From="0" To="360" Duration="0:0:5" /> </Storyboard> </phone:phoneapplicationpage.resources> 10/21

Obracanie animacja, automatyzacja private void button1_click(object sender, RoutedEventArgs e) { ObracajX.Begin(); } Po wciśnięciu guzika animowany jest obrót tekstu wokół osi X 11/21

Grafika wektorowa w Silverlight 12/21

Grafika wektorowa w Silverlight 13/21

Grafika statyczna W pliku MainPage.xaml dodajemy do płótna elementy graficzne. Zamieniamy: <Canvas (...) /> na: <Canvas Background="Beige" (...) > <Line X1="50" Y1="50" X2="200" Y2="300" Stroke="Red" /> <Line X1="200" Y1="300" X2="350" Y2="50" Stroke="Blue" StrokeThickness="10" /> <Polyline Points="110 110, 110 150, 150 150, 120 120" Stroke="Green" StrokeThickness="5" /> <Polyline Points=" 50 100, 300 200, 100 300" Stroke="HotPink" StrokeThickness="30" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeLineJoin="Round" /> </Canvas> 14/21

Grafika dynamiczna 15/21

Grafika dynamiczna linie private void button1_click(object sender, RoutedEventArgs e) { SolidColorBrush spod = new SolidColorBrush(); spod.color = Colors.Black; Polyline droga_spod = new Polyline(); droga_spod.points.add(new Point(30, 30)); droga_spod.points.add(new Point(100, 200)); droga_spod.points.add(new Point(200, 200)); droga_spod.stroke = spod; droga_spod.strokethickness = 30.0; canvas1.children.add(droga_spod); } SolidColorBrush wierzch = new SolidColorBrush(); wierzch.color = Colors.Yellow; Polyline droga_wierzch = new Polyline(); droga_wierzch.points.add(new Point(30, 30)); droga_wierzch.points.add(new Point(100, 200)); droga_wierzch.points.add(new Point(200, 200)); droga_wierzch.stroke = wierzch; droga_wierzch.strokethickness = 20.0; canvas1.children.add(droga_wierzch); 16/21

Grafika dynamiczna <Canvas (...) > <Canvas.Projection> <PlaneProjection x:name="obracaj" /> </Canvas.Projection> </Canvas> private void slider1_valuechanged(object sender, RoutedPropertyChangedEventArgs<double> e) { canvas1.projection.setvalue(planeprojection.rotationxproperty, -slider1.value); } 17/21

XNA 18/21

XNA proste transformacje Funkcja spritebatch.draw umożliwia podanie argumentów obrotu i przesunięcia: protected override void Draw(GameTime gametime) { GraphicsDevice.Clear(Color.CornflowerBlue); spritebatch.begin(); spritebatch.draw(texture, textureposition, null, Color.White, texturerotation, texturecenter, 1, SpriteEffects.None, 0); spritebatch.end(); base.draw(gametime); } 19/21

XNA macierz transformacji Generowanie macierzy za pomocą funkcji: Matrix matrix1 = Matrix.CreateTranslation(xOffset, yoffset, 0); Matrix matrix2 = Matrix.CreateScale(xScale, yscale, 1); Matrix matrix3 = Matrix.CreateRotationZ(radians); Składanie transformacji: Matrix matrix = matrix1 * matrix2 * matrix3; Operowanie na elementach macierzy: matrix.mij i = 0, 1, 2, 3 j = 0, 1, 2, 3 Renderowanie grafiki z wykorzystaniem transformacji: spritebatch.begin(spritesortmode.deferred, null, null, null, null, null, matrix);... spritebatch.end(); 20/21

...i na tym koniec piątej części wykładu 21/21