Budowa aplikacji w technologii.net wykład 11 Animacje

Wielkość: px
Rozpocząć pokaz od strony:

Download "Budowa aplikacji w technologii.net wykład 11 Animacje"

Transkrypt

1 Budowa aplikacji w technologii.net wykład 11 Animacje 1/52 Wykonanie animacji w Windows Forms, MFS, Swingu, etc. opierało się na timerach i własnej funkcji rysującej: 1. Stworzenie timera, który co określoną liczbę milisekund odpala zdarzenie. 2. W reakcji na zdarzenie timera, należy dokonać wymaganych przez animację obliczeń, zmian parametrów, etc. (np. jeśli animujemy obracające się logo zwiększamy kąt obrotu o stały stopień). 3. Następnie unieważniamy zawartość okna. Zmusi to system do wywołania naszej procedury rysującej. 4. W tej procedurze rysujemy kolejną klatkę animacji.

2 2/52 Wiążą się z tym problemy: Procedura rysująca odpowiada za wyświetlanie pikseli, nie kontrolek zatem zawartość animacji musi być rysowana ręcznie (w WPF animacji podlegają dowolne własności elementów). Dodanie kolejnej animacji komplikuje kod (w WPF można składać bardziej złożone animacji z kilku prostszych). Stały framerate (ustawiony w timerze). Jego modyfikacja pociąga za sobą zmianę procedury obliczającej kolejną klatkę. Bardziej złożone sposoby animacji (np. przemieszczanie po ścieżce) wymagają bardziej złożonego kodu (w WPF animacje definiuje się w XAMLu). W WPF model jest prostszy, gdyż okna samo dba o aktualizację swej zawartości, gdy zmienią się własności elementów. Ponadto nie wymaga ręcznej zmiany własności w reakcji na zdarzenia timera. Zamiast tego animacje definiuje się w sposób deklaratywny. Animacja własności Animacja w WPF nie wymaga zajmowania się serią klatek. Zamiast tego określamy jaka własność elementu w jaki sposób ma się zmieniać w czasie. Ograniczenie: animacje dotyczą tylko dependency properties (a co za tym idzie, nie da się uzyskać w ten sposób efektów, których nie osiągniemy modyfikując własności, np. nie można animacją dodawać elementów do okna). Mogą one służyć uatrakcyjnieniu standardowej aplikacji, ale nie nadają się np. do gier.

3 3/52 Podstawy Każda animacja operuje na pojedynczej własności. Animowanie własności wymaga użycia klasy animacji właściwej dla typu tej własności. Klasy animacji: zmieniających pewną wartość na drodze liniowej interpolacji (z wartości From do wartości To lub zwiększając wartość aktualną o By): ByteAnimation ColorAnimation DecimalAnimation DoubleAnimation Int16Animation Int32Animation Int64Animation PointAnimation Point3DAnimation QuarternionAnimation RectAnimation Rotation3DAnimation SingleAnimation SizeAnimation ThicknessAnimation VectorAnimation Vector3DAnimation

4 zmieniających pewną wartość w określonych punktach czasu: BooleanAnimationUsingKeyFrames ByteAnimationUsingKeyFrames CharAnimationUsingKeyFrames ColorAnimationUsingKeyFrames DecimalAnimationUsingKeyFrames DoubleAnimationUsingKeyFrames Int16AnimationUsingKeyFrames Int32AnimationUsingKeyFrames Int64AnimationUsingKeyFrames MatrixAnimationUsingKeyFrames ObjectAnimationUsingKeyFrames PointAnimationUsingKeyFrames Point3DAnimationUsingKeyFrames QuarternionAnimationUsingKeyFrames RectAnimationUsingKeyFrames Rotation3DAnimationUsingKeyFrames SingleAnimationUsingKeyFrames SizeAnimationUsingKeyFrames StringAnimationUsingKeyFrames ThicknessAnimationUsingKeyFrames VectorAnimationUsingKeyFrames Vector3DAnimationUsingKeyFrames 4/52

5 5/52 animacje wykorzystujące ścieżkę (PathGeometry): DoubleAnimationUsingPath MatrixAnimationUsingPath PointAnimationUsingPath Możliwe jest też tworzenie własnych klas animacji. Nie ma klas do animowania własności typu wyliczeniowego (np. HorizontalAlignment). Zazwyczaj nie animuje się też typów referencyjnych (np. Brush zamiast tego używa się np. ColorAnimation, DoubleAnimation do animacji własności pędzla). Animacje w kodzie Wymaga stworzenia obiektu animacji, ustawienia własności i odpalenia jej przy pomocy metody BeginAnimation() (zadeklarowanej w interfejsie IAnimatable). <Grid> <Button Name="cmdPowiększ" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="3" Click="PowiększClick" >Powiększ</Button> </Grid>

6 private void PowiększClick(object sender, RoutedEventArgs e) { DoubleAnimation anim = new DoubleAnimation(); anim.from = cmdpowiększ.actualwidth; anim.to = this.width - 30; anim.duration = TimeSpan.FromSeconds(3); cmdpowiększ.beginanimation(button.widthproperty, anim); } 6/52

7 7/52 From początkowa wartość własności (gdybyśmy ustawili tu stałą wartość, wówczas własność zostałaby zresetowana do niej na początku animacji): anim.from = 160; Jeśli jej nie określimy, animacja zaczyna się od wartości aktualnej (ale musiała być ona wcześniej jawnie ustawiona: w kodzie, w XAMLu lub przez settera, ale nie przez kontener). private void Window_Loaded(object sender, RoutedEventArgs e) { cmdpowiększ.width = cmdpowiększ.actualwidth; } To wartość końcowa. Podobnie jak From, można ją opuścić. Oznaczać to będzie powrót do początkowej wartości (czyli aktualnej wartości, nie licząc animacji). DoubleAnimation anim = new DoubleAnimation(); anim.duration = TimeSpan.FromSeconds(3); cmdpowiększ.beginanimation(button.widthproperty, anim);

8 8/52 Aby to zadziałało, aktualna wartość szerokości już musiała zostać zmodyfikowana przez jakąś animację. Możemy to wykorzystać, aby stworzyć animację powrotu (wykorzystując zdarzenie Completed, oznaczające zakończenie animacji): private void PowiększClick(object sender, RoutedEventArgs e) { } DoubleAnimation anim = new DoubleAnimation(); anim.to = this.width - 30; anim.duration = TimeSpan.FromSeconds(3); anim.completed += anim_completed; cmdpowiększ.beginanimation(button.widthproperty, anim); void anim_completed(object sender, EventArgs e) { DoubleAnimation anim = new DoubleAnimation(); anim.duration = TimeSpan.FromSeconds(3); cmdpowiększ.beginanimation(button.widthproperty, anim); }

9 9/52 Inne rozwiązanie (automatyczny powrót do pierwotnej własności odwrócenie animacji): anim.autoreverse = true; Inne rozwiązanie (powrót do pierwotnej własności bez animacji): anim.fillbehavior = FillBehavior.Stop; Animacja po zakończeniu nadal istnieje i ma wpływ na aktualną wartość własności. Aby zlikwidować wpływ animacji, należy usunąć jej obiekt: cmdpowiększ.beginanimation(button.widthproperty, null); By można użyć, zamiast podawania To. Zmienia własność o podaną wartość. anim.by = 100; odpowiada to: anim.to = cmdpowiększ.width + 100;

10 10/52 Podobny efekt można osiągnąć ustawiając flagę IsAdditive: DoubleAnimation anim = new DoubleAnimation(); anim.from = 0; anim.to = 100; anim.duration = TimeSpan.FromSeconds(3); anim.isadditive = true; cmdpowiększ.beginanimation(button.widthproperty, anim); Duration określamy czas trwania a nie szybkość animacji zatem powiększanie przycisku zawsze będzie trwało 3 sekundy, niezależnie od rozmiaru okna. Uwaga: na własności nie można wykonywać kilku animacja na raz (odpalenie kolejnej, przerywa poprzednią). Może spowodować to wrażenie, że animacja zwolniła gdyż dla nowej animacji znów ustawiono czas trwania 3 sekundy. Można odpalić (niezależnie) animacje różnych własności elementu: cmdpowiększ.beginanimation(button.widthproperty,...); cmdpowiększ.beginanimation(button.heightproperty,...);

11 11/52 Inne własności animacji: BeginTime wymusza opóźnienie rozpoczęcia animacji (TimeSpan). SpeedRatio szybkość animacji, domyślnie 1. AccelerationRatio, DecelerationRatio do animacji nieliniowej, która przyśpiesza na początku, a zwalnia na końcu. Wartości od 0 do 1 określają jaką część czasu trwania ma zająć przyśpieszanie lub zwalnianie. DoubleAnimation anim = new DoubleAnimation(); anim.to = this.width - 30; anim.duration = TimeSpan.FromSeconds(5); anim.accelerationratio = 0.3; anim.decelerationratio = 0.3; cmdpowiększ.beginanimation(button.widthproperty, anim);

12 12/52 RepeatBehavior pozwala powtarzać animację określoną liczbę razy, przez określony czas lub bez końca (RepeatBehavior.Forever). lub: DoubleAnimation anim = new DoubleAnimation(); anim.to = this.width - 30; anim.duration = TimeSpan.FromSeconds(0.5); anim.autoreverse = true; anim.repeatbehavior = new RepeatBehavior(3); cmdpowiększ.beginanimation(button.widthproperty, anim); anim.repeatbehavior = new RepeatBehavior(TimeSpan.FromSeconds(2.5)); Można ustawić flagę IsCumulative, wówczas kolejne powtórzenie animacji rozpocznie się od ostatniego stanu poprzedniej (a nie stanu początkowego działa to jak domyślne ustawienie IsAdditive dla kolejnych powtórzeń).

13 13/52 Animacje w XAMLu Animacja w XAMLu definiowana jest w obiekcie storyboard. Reprezentuje on przebieg animacji, pozwala na grupowanie kilku animacji, kontrolowanie animacji. Ponadto pełni podobną rolę, co wywołanie metody BeginAnimation(). <Storyboard TargetName="cmdPowiększ" TargetProperty="Width"> <DoubleAnimation From="160" To="300" Duration="0:0:5" /> </Storyboard> Inny wariant (TargetName i TargetProperty to własności dołączone): <Storyboard> <DoubleAnimation Storyboard.TargetName="cmdPowiększ" Storyboard.TargetProperty="Width" From="160" To="300" Duration="0:0:5" /> </Storyboard>

14 Do uruchomienia animacji konieczny jest EventTrigger. Jego zadaniem jest odpalenie animacji. (EventTrigger nie musi znajdować sie w Stylu.) <Button Padding="3" HorizontalAlignment="Center" VerticalAlignment="Center" Width="160"> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation To="300" Duration="0:0:5" Storyboard.TargetProperty="Width" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Button.Triggers> Powiększ </Button> Nie musimy określać TargetName wówczas automatycznie użyty zostanie element, w którym zagnieżdżono storyboard. 14/52

15 15/52 W XAMLu nie ma obsługi wyrażeń, dlatego wartość docelowa została ustawiona na stałą. Wartość tę można odczytać z innej własności przy pomocy bindingu:... To="{Binding ElementName=window,Path=Width}"... Jeśli chcemy bardziej złożonych obliczeń, powinniśmy napisać własnego IValueConvertera lub stworzyć własność zależnościową do której będziemy mogli dowiązać i która zajmie się obliczeniami. Poza EventTriggerem możemy również używać PropertyTriggerów: <Style x:key="powiększalski"><style.triggers> <Trigger Property="Button.IsPressed" Value="True"> <Trigger.EnterActions> <BeginStoryboard> <Storyboard> <DoubleAnimation.../> </Storyboard> </BeginStoryboard> </Trigger.EnterActions> </Trigger> </Style.Triggers></Style>

16 16/52... <Button... Style="{StaticResource powiększalski}"> Powiększ </Button> Trigger.EnterActions to akcje wykonywane, w chwili gdy własność przyjmuje wskazaną wartość. Trigger.ExitActions są wykonywane, gdy następuje utrata tej wartości (wracamy do false). Wszystkie animacje umieszczone w storyboard są automatycznie synchronizowane: <Storyboard> <DoubleAnimation Storyboard.TargetProperty="Width" By="100" Duration="0:0:0.5" /> <DoubleAnimation Storyboard.TargetProperty="Height" By="50" Duration="0:0:0.5" /> </Storyboard> Możemy korzystać ze SpeedRatio, aby przyśpieszyć niektóre animacje, BeginTime, aby opóźnić rozpoczęcie innych, etc.

17 17/52 Przykład wykorzystanie do animacji przejścia (między dwoma obrazkami). Obrazki umieszczamy w Gridzie jeden na drugim: <Grid> <Image Source="Gra o tron.jpg" /> <Image Source="Zew Cthulhu.jpg" Name="second" /> </Grid> W momencie ładowania okienka uruchamiamy animację zmieniającą przeźroczystość górnego obrazka: <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard Storyboard.TargetName="second"> <DoubleAnimation Duration="0:0:5" Storyboard.TargetProperty="Opacity" To="0" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Window.Triggers>

18 18/52

19 19/52 Ciekawszym rozwiązaniem jest wykorzystanie i animowanie maski przeźroczystości. <Image Source="Zew Cthulhu.jpg" Name="second"> <Image.OpacityMask> <LinearGradientBrush StartPoint="0,0" EndPoint="1,0"> <GradientStop Offset="0" Color="Transparent" x:name="transparentstop" /> <GradientStop Offset="0" Color="Black" x:name="visiblestop" /> </LinearGradientBrush> </Image.OpacityMask> </Image>... <Storyboard> <DoubleAnimation Storyboard.TargetName="visibleStop" Storyboard.TargetProperty="Offset" From="0" To="1.2" Duration="0:0:6" /> <DoubleAnimation Storyboard.TargetName="transparentStop" Storyboard.TargetProperty="Offset" BeginTime="0:0:1" From="0" To="1" Duration="0:0:5" /> </Storyboard>

20 20/52

21 21/52 WPF daje możliwość kontrolowania animacji przy pomocy następujących klas akcji: PauseStoryboard ResumeStoryboard StopStoryboard (zatrzymanie nie jest równoważne zakończeniu, bo nie zachowuje końcowej wartości własności, a wraca do początkowej) SeekStoryboard (skok do wskazanej pozycji) SetStoryboardSpeedRatio SkipStoryboardToFill (skok do końca) RemoveStoryboard (zatrzymuje i usuwa) Dodajmy przyciski do kontroli animacji: <DockPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" DockPanel.Dock="Bottom"> <Button Name="cmdStart" >Start</Button> <Button Name="cmdPause">Pause</Button> <Button Name="cmdResume">Resume</Button> <Button Name="cmdStop">Stop</Button> </StackPanel> <Grid Margin="3"> <Image.../> <Image.../> </Grid> </DockPanel>

22 22/52 Następnie event trigger do uruchomienia animacji: <Window.Triggers> <EventTrigger SourceName="cmdStart" RoutedEvent="Button.Click"> <BeginStoryboard Name="fadeStoryboardBegin"> <Storyboard>... </Storyboard> </BeginStoryboard> </EventTrigger>... </Window.Triggers>

23 23/52 W podobny sposób event triggery do pozostałych akcji (podajemy tylko jakiego BeginStoryboard mają dotyczyć). Uwaga: jest to nazwa BeginStoryboard a nie Storyboard. <Window.Triggers>... <EventTrigger SourceName="cmdPause" RoutedEvent="Button.Click"> <PauseStoryboard BeginStoryboardName="fadeStoryboardBegin"/> </EventTrigger> <EventTrigger SourceName="cmdResume" RoutedEvent="Button.Click"> <ResumeStoryboard BeginStoryboardName="fadeStoryboardBegin"/> </EventTrigger> <EventTrigger SourceName="cmdStop" RoutedEvent="Button.Click"> <StopStoryboard BeginStoryboardName="fadeStoryboardBegin"/> </EventTrigger> </Window.Triggers>

24 (Możemy to też kontrolować zwyczajnie wywołując metody Stop(), Pause(), Resume(), etc. z obiektu Storyboard. Ale użycie powyższych akcji pozwala nam łatwo uruchamiać i zatrzymywać animację w triggerach, np. po najechaniu myszą na element.) 24/52

25 25/52 Przebieg animacji możemy monitorować przy użyciu poniższych zdarzeń: Completed animacja została zakończona CurrentGlobalSpeedInvalidated zmianie uległa szybkość animacji (oznacza to również pauzę, wznowienie, zmianę pozycji) CurrentStateInvalidated uruchomienie lub zakończenie CurrentTimeInvalidated tyknięcie zegara animacji (również uruchomienie lub zakończenie) RemoveRequested usuwanie animacji Może wykorzystać CurrentTimeInvalidated, by dodać wskaźnik zaawansowania animacji. <DockPanel>... <ProgressBar Name="progres" DockPanel.Dock="Bottom" Height="10" Minimum="0" Maximum="1" />... </DockPanel>

26 26/52 Dodajemy obsługę zdarzenia: <Window.Triggers> <EventTrigger...> <BeginStoryboard...> <Storyboard CurrentTimeInvalidated= "Storyboard_CurrentTimeInvalidated">... </Storyboard> </BeginStoryboard> </Window.Triggers> Nadawcą zdarzenia jest Clock, z którego możemy odczytać postęp animacji: private void Storyboard_CurrentTimeInvalidated(object sender, EventArgs e) { Clock clock = (Clock)sender; if(clock.currentprogress!= null) progres.value = (double)clock.currentprogress; }

27 27/52

28 28/52 Domyślnie animacje działają w 60 klatkach na sekundę. Jeśli animacja jest zbyt wymagająca (intensywnie wykorzystuje przeźroczystość, materiał wideo, duże bitmapy) możemy chcieć ją zmniejszyć, by poprawić wydajność: <Storyboard Timeline.DesiredFrameRate="30">... </Storyboard>

29 29/52 Posługiwanie się animacjami Co animować? Jeśli chcemy, by elementy pojawiały się i znikały: Opacity. Jeśli chcemy przemieszczać elementy: Canvas.Left, Canvas.Top (jeśli kontenerem jest Canvas), ewentualnie Margin lub/i Padding (przy pomocy ThicknessAnimation), ewentualnie MinWidth i MinHeight kolumny lub wiersza w Gridzie. RenderTransform aby przemieszczać (TranslateTransform), obracać (RotateTransform), skalować (ScaleTransform) elementy. Działają szybciej niż animacja własności określających rozmiar czy pozycję. ColorAnimation aby modyfikować własności pędzla.

30 30/52 Animacja transformacji Każdy element ma dwa rodzaje transformacji: RenderTransform (stosowana przed wyświetleniem obiektu) i LayoutTransform (stosowana przed ułożeniem elementów przez kontener). (Animacja nie może stworzyć transformacji, a jedynie animować własności istniejącej.) Przykład: obracający się przycisk. <Button RenderTransformOrigin="0.5,0.5"> <Button.RenderTransform> <RotateTransform/> </Button.RenderTransform> OK </Button>

31 31/52 EventTrigger do uruchomienia animacji: <EventTrigger RoutedEvent="Button.MouseEnter"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty= "RenderTransform.Angle" To="360" Duration= "0:0:1" RepeatBehavior="Forever"/> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger>

32 32/52 I do zakończenia (powrotu do stanu początkowego): <EventTrigger RoutedEvent="Button.MouseLeave"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty= "RenderTransform.Angle" Duration="0:0:0.2"/> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger>

33 33/52 Parametry przycisku możemy ustawić w stylu: <Style TargetType="Button"> <Setter Property="Margin" Value="3" /> <Setter Property="Padding" Value="20,3"/> <Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> <Setter Property="RenderTransform"> <Setter.Value> <RotateTransform></RotateTransform> </Setter.Value> </Setter> <Style.Triggers> <EventTrigger... <EventTrigger... </Style.Triggers> </Style>

34 34/52 Teraz każdy z przycisków będzie używał tej animacji: <StackPanel> <Button>jeden</Button> <Button>dwa</Button> <Button>trzy</Button> <Button>cztery</Button> <Button>pięć</Button> </StackPanel>

35 Jeśli wymienimy RenderTransform na LayoutTransform: 35/52

36 36/52 Aby animować bardziej złożone rodzaje transformacji najlepiej umieścić je w TransformGroup: <Border.RenderTransform> <TransformGroup> <ScaleTransform></ScaleTransform> <RotateTransform></RotateTransform> </TransformGroup> </Border.RenderTransform> Następnie: <DoubleAnimation Storyboard.TargetProperty= "RenderTransform.Children[0].ScaleX".../> <DoubleAnimation Storyboard.TargetProperty= "RenderTransform.Children[0].ScaleY".../> <DoubleAnimation Storyboard.TargetProperty= "RenderTransform.Children[1].Angle".../>

37 37/52 Zamiast animowania transformacji elementu, można rozważyć animację prostokąta wypełnionego VisualBrushem: <Rectangle Name="rectangle"> <Rectangle.Fill> <VisualBrush Visual="{Binding ElementName=element}"/> </Rectangle.Fill> <Rectangle.RenderTransform>... </Rectangle.RenderTransform> </Rectangle>

38 38/52 Animowanie pędzli Kolor pędzla animujemy przy pomocy klasy ColorAnimation. Wymaga stworzenia pędzla: <Ellipse Stretch="Uniform" Margin="3" Name="elipsa"> <Ellipse.Fill> <RadialGradientBrush> <GradientStop Color="Yellow" Offset="0"/> <GradientStop Color="LawnGreen" Offset="1"/> </RadialGradientBrush> </Ellipse.Fill> </Ellipse>

39 39/52 Teraz możemy ustawić jego właściwości: <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetName="elipsa" To="DeepSkyBlue" Storyboard.TargetProperty= "Fill.GradientStops[1].Color" Duration="0:0:1" AutoReverse="True" RepeatBehavior="Forever"/> </Storyboard> </BeginStoryboard>

40 40/52 PointAnimation pozwala przemieszczać punkt (działa to jak DoubleAnimation składowej X i Y). Dzięki temu możemy np. modyfikować kształt figury zbudowanej z punktów. W poniższym przykładzie animujemy centralny punkt gradientu radialnego. <PointAnimation Storyboard.TargetName="elipsa" Storyboard.TargetProperty="Fill.GradientOrigin" From="0.7,0.3" To="0.3,0.7" Duration="0:0:1" AutoReverse="True" RepeatBehavior="Forever" />

41 41/52 Animacja z wykorzystaniem klatek kluczowych Pozwala zdefiniować większą liczbę etapów animacji. Każda klatka ma określoną wartość docelową oraz czas. Można w ten sposób definiować bardziej złożony przebieg animacji (zmian wartości). Przykład: <Grid> <Ellipse Width="20" Height="20" Stroke="Black" Fill="Yellow" Name="elipsa" /> </Grid>

42 42/52 Animacja rozmiaru: <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName= "elipsa" Storyboard.TargetProperty="Width" RepeatBehavior="Forever"> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:0"/> <LinearDoubleKeyFrame Value="200" KeyTime="0:0:1"/> <LinearDoubleKeyFrame Value="200" KeyTime="0:0:2"/> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:3"/> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:4"/> </DoubleAnimationUsingKeyFrames>...

43 43/52... <DoubleAnimationUsingKeyFrames Storyboard.TargetName= "elipsa" Storyboard.TargetProperty="Height" RepeatBehavior="Forever"> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:0"/> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:1"/> <LinearDoubleKeyFrame Value="200" KeyTime="0:0:2"/> <LinearDoubleKeyFrame Value="200" KeyTime="0:0:3"/> <LinearDoubleKeyFrame Value="20" KeyTime="0:0:4"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> Klatki określają węzły animacji punkty, do jakich ma się udać animacja, wartości jakie mamy przyjąć. Dzielą one animację na wykonywane po kolei segmenty.

44 44/52 Poza interpolacją liniową między klatkami kluczowymi, możemy wybrać wartości dyskretne (nie dokonuje interpolacji wartość jest przyjmowana w określonej chwili czasu): <ColorAnimationUsingKeyFrames Storyboard.TargetName="elipsa" Storyboard.TargetProperty="Fill.Color" RepeatBehavior="Forever"> <DiscreteColorKeyFrame Value="Yellow" KeyTime="0:0:0"/> <DiscreteColorKeyFrame Value="Red" KeyTime="0:0:0.3"/> <DiscreteColorKeyFrame Value="Green" KeyTime="0:0:0.6"/> <DiscreteColorKeyFrame Value="Blue" KeyTime="0:0:0.9"/> <DiscreteColorKeyFrame Value="Yellow" KeyTime="0:0:1.2"/> </ColorAnimationUsingKeyFrames> Wartość KeyTime (koniec segmentu animacji) może być również określana procentowo. Możemy używać różnych interpolacji w obrębie jednej animacji.

45 45/52 Dostępny jest jeszcze jeden rodzaj klatek kluczowych: oparte na krzywej Beziera. Używają interpolacji do zmiany wartości, ale zgodnie z krzywą Beziera. Dwa punkty krzywej są stałe (0,0 i 1,1), pozostałe dwa definiowane są przy pomocy KeySpline. <Canvas> <Ellipse Canvas.Top="20"... Name="elipsa1"/> <Ellipse Canvas.Top="60"... Name="elipsa2"/> </Canvas>

46 <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName= "elipsa1" Storyboard.TargetProperty="(Canvas.Left)" RepeatBehavior="Forever"> <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/> <LinearDoubleKeyFrame Value="300" KeyTime="0:0:4"/> <LinearDoubleKeyFrame Value="0" KeyTime="0:0:8"/> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName= "elipsa2" Storyboard.TargetProperty="(Canvas.Left)" RepeatBehavior="Forever"> <SplineDoubleKeyFrame Value="0" KeyTime="0:0:0" /> <SplineDoubleKeyFrame Value="300" KeyTime="0:0:4" KeySpline="0.5,0 0.5,1"/> <SplineDoubleKeyFrame Value="0" KeyTime="0:0:8" KeySpline="0.2, ,0.2"/> </DoubleAnimationUsingKeyFrames> </Storyboard> 46/52

47 47/52 Animation easing Efekt nieliniowy na początku lub końcu zmiany wartości. Pozwala na bardziej naturalne animacje. Własność może np. łagodniej zbliżać się do wartości docelowej lub oscylować przez jakiś czas wokół niej. <Storyboard...> <DoubleAnimation Storyboard.TargetName="cmdGrow" Storyboard.TargetProperty="Width" To="400" Duration="0:0:1.5"> <DoubleAnimation.EasingFunction> <ElasticEase EasingMode="EaseOut" Oscillations="10"/> </DoubleAnimation.EasingFunction> </DoubleAnimation> </Storyboard> EasingMode (EaseOut, EaseIn, EaseInOut) określa, czy efekt ma być stosowany na początku czy końcu animacji.

48 48/52 Dostępne funkcje: BackEase pozwala na przestrzelenie się (własność początkowo osiąga wartość przekraczającą docelową), by potem powoli dorównać ElasticEase efekt sprężystości (przestrzelenie i słabnąca oscylacja) BounceEase podobnie jak wyżej, ale bez przestrzelenia CircleEase, CubicEase, QuadraticEase, QuarticEase, QuinticEase, SineEase, PowerEase, ExponentialEase steruje początkowym przyśpieszeniem i końcowym zwolnieniem przy użyciu różnych funkcji Możemy to też stosować do klatek kluczowych wymaga odpowiedniego typu klatki: <PointAnimationUsingKeyFrames... > <LinearPointKeyFrame.../> <EasingPointKeyFrame...> <EasingPointKeyFrame.EasingFunction> <CircleEase></CircleEase> </EasingPointKeyFrame.EasingFunction> </EasingPointKeyFrame> <LinearPointKeyFrame.../> <LinearPointKeyFrame.../> </PointAnimationUsingKeyFrames>

49 Animacje oparte na ścieżkach Używają geometrii, by określić ustawianą przez animację wartość. Przeważnie stosowane do określania położenia (ale mogą działać dla dowolnych własności jej wartość odczytywana jest ze zdefiniowanej ścieżki). Zaczynamy od zdefiniowania geometrii: <Window.Resources> <PathGeometry x:key="gwiazda" Figures="M 95,20 L 160,150 L 20,70 L 180,60 L 50,160 Z"/>... </Window.Resources> Następnie możemy jej użyć do animacji położenie elipsy: <Storyboard> <DoubleAnimationUsingPath Storyboard.TargetName="elipsa3" Storyboard.TargetProperty="(Canvas.Left)" PathGeometry="{StaticResource gwiazda}" Duration="0:0:5" RepeatBehavior="Forever" Source="X" /> <DoubleAnimationUsingPath Storyboard.TargetName="elipsa3" Storyboard.TargetProperty="(Canvas.Top)" PathGeometry="{StaticResource gwiazda}" Duration="0:0:5" RepeatBehavior="Forever" Source="Y"/> </Storyboard> 49/52

50 50/52 Efekty WPF dysponuje zestawem efektów wizualnych, które możemy nadać dowolnemu elementowi. Są dwie grupy efektów: BitmapEffects (mniej wydajne) oraz Effects. Przykład: <Label...> <Label.BitmapEffect> <OuterGlowBitmapEffect GlowColor="Yellow" GlowSize="20" Opacity="0.5"/> </Label.BitmapEffect> Hello world! </Label> <Button...> <Button.Effect> <BlurEffect Radius="5"/> </Button.Effect> OK </Button>

51 51/52 BitmapEffects: BlurBitmapEffect rozmycie (własności Radius, KernelType) BevelBitmapEffect efekt wypukłej krawędzi (własności BevelWidth, EdgeProfile, LightAngle, Relief, Smoothness) EmbossBitmapEffect efekt wyżłobienia (własności LightAngle, Relief) OuterGlowBitmapEffect efekt halo (GlowColor, GlowSize, Noise, Opacity) DropShadowBitmapEffect efekt cienia (Color, Direction, Noise, Opacity, ShadowDepth, Softness) BitmapEffectGroup pozwala łączyć kilka efektów Effects: BlurEffect rozmycie (własności Radius, KernelType, RenderingBias) DropShadowEffect efekt cienia (własności BlurRadius, Color, Direction, Opacity, ShadowDepth, RenderingBias) ShaderEffect pozwala zastosować efekt pixel shadera (należy wskazać gotowy, skompilowany plik) Oczywiście efekty (ich własności) też możemy animować.

52 52/52 Frame-Based Animation WPF pozwala również tworzyć własną, dowolną animację przez ręczne generowanie zawartości kolejnych ramek. Należy obsłużyć statyczne zdarzenie CompositionTarget.Rendering. Będzie ono podnoszone cyklicznie (aby pobrać zawartość ramki do wyrenderowania). CompositionTarget.Rendering += RenderFrame; Naszym zadaniem jest dostarczenie zawartości: poprzez manipulację elementami okna, dodawanie nowych, etc. private void RenderFrame(object sender, EventArgs e) {... Ellipse ellipse = new Ellipse(); ellipse.width =...; ellipse.height =...; ellipse.fill =...; canvas.children.add(ellipse);... }

Programowanie obiektowe i zdarzeniowe wykład 8 grafika i animacja

Programowanie obiektowe i zdarzeniowe wykład 8 grafika i animacja Programowanie obiektowe i zdarzeniowe wykład 8 grafika i animacja Grafika Kształty Najprostszy sposób rysowania własnej zawartości w WPF, to wykorzystanie kształtów. Shapes klasy reprezentujące linie,

Bardziej szczegółowo

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej Jarosław Kuchta Podstawy Programowania Obiektowego Podstawy grafiki obiektowej Zagadnienia Grafika proceduralna grafika obiektowa Grafika WPF dualizm XAML C# Właściwości obiektów graficznych edycja właściwości

Bardziej szczegółowo

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

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML: Lab8 WPF Zad1 : - lista z językami i flagami + wiązanie danych z obiektu przerabiana na ComboBox - fisheye przegląd obrazków lupa (obrazki umieszczone na sztywno) - wyświetlenie galerii zdjęć zapisanej

Bardziej szczegółowo

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

Spis treści. Część I Przygotowanie środowiska... 11. Część II Język C#... 19. Wstęp... 9 Spis treści Wstęp... 9 Część I Przygotowanie środowiska... 11 Rozdział 1. Przygotowanie środowiska Orcas... 13 Pobieranie aplikacji... 14 Pobieranie alternatywnego instalatora... 15 Instalacja... 15 Konfiguracja

Bardziej szczegółowo

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

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego 1/34 Wymagania wstępne: Znajomość podstaw programowania. Efekty kształcenia: Umiejętność tworzenia prostych aplikacji

Bardziej szczegółowo

Modele zawartości. WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość

Modele zawartości. WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość WPF Programowanie w środowisku Windows Wykład 8-1 Kontrolki Modele zawartości WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość Wykład 8-2 używane przez: Button, ButtonBase,

Bardziej szczegółowo

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

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

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. Tematy zajęć: 1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. 2. Posługiwanie się podstawowymi kontrolkami. 3. Własności i zdarzenia w WPF. 4. Zadania aplikacji. Okna. 5. Polecenia. Zasoby.

Bardziej szczegółowo

XAML Extensible Application Markup Language

XAML Extensible Application Markup Language XAML Extensible Application Markup Language Opis i zastosowania... Maciej Poniedziałek WfiIS IS rok 5 XAML: Język oparty o XML zoptymalizowanym do opisu bogatych, wizualnych interfejsów, takich jak tworzone

Bardziej szczegółowo

Windows Presentation Foundation

Windows Presentation Foundation Windows Presentation Foundation Tworzenie interfejsu użytkownika Współpraca projektanta i programisty (XAML) Interfejsy atrakcyjniejsze graficznie (np. 3D) Aplikacje internetowe (XBAP) Użycie Layoutów

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania

Bardziej szczegółowo

6.4. Efekty specjalne

6.4. Efekty specjalne 6.4. Efekty specjalne Rozdział ten będzie poświęcony efektom specjalnym, które również znalazły swoje zastosowanie w programie MS PowerPoint 2007. Pierwszym typem efektów jaki zostanie poddany naszej analizie

Bardziej szczegółowo

Silverlight. Od podstaw

Silverlight. Od podstaw Silverlight. Od podstaw Autor: Pawe³ Maciejewski, Pawe³ Redmerski ISBN: 978-83-246-1984-9 Tytu³ orygina³u: COM+ Developer's Guide Format: 158x235, stron: 208 Silverlight nowy sposób na tworzenie aplikacji

Bardziej szczegółowo

Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika

Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika Projekt logo: Armella Leung, www.armella.fr.to Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika Spis treści Spis treści... 1 Instalacja... 2 Posługiwanie się pluginem...

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

GRAFIKA WEKTOROWA. WYKŁAD 1 Wprowadzenie do grafiki wektorowej. Jacek Wiślicki Katedra Informatyki Stosowanej

GRAFIKA WEKTOROWA. WYKŁAD 1 Wprowadzenie do grafiki wektorowej. Jacek Wiślicki Katedra Informatyki Stosowanej GRAFIKA WEKTOROWA WYKŁAD 1 Wprowadzenie do grafiki wektorowej Jacek Wiślicki Katedra Informatyki Stosowanej Grafika rastrowa i wektorowa W grafice dwuwymiarowej wyróżnia się dwa rodzaje obrazów: rastrowe,

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

Laboratorium programowania urządzeń mobilnych

Laboratorium programowania urządzeń mobilnych Laboratorium programowania urządzeń mobilnych Wprowadzenie Hierarcha klas dla aplikacji typu Silverlight tworzonej przez Visual Studio jest następująca: Obsługa ekranu W urządzeniach z Windows Phone 7

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Programowanie aplikacji internetowych 2014/2015 Instrukcja laboratoryjna cz.3 Technologia Silverlight cz.1 Prowadzący: Tomasz Goluch Wersja: 4.1 I. Szablon aplikacji oparty o platformę nawigacyjną. Cel:

Bardziej szczegółowo

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony Ustawienia ogólne Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony Panel główny programu System Sensor (tylko dla wersja V2, V3, V4) Panel główny programu System

Bardziej szczegółowo

Przewodnik po soczewkach

Przewodnik po soczewkach Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym

Bardziej szczegółowo

Przetwarzanie grafiki rastrowej na wektorową

Przetwarzanie grafiki rastrowej na wektorową Przetwarzanie grafiki rastrowej na wektorową Inaczej wektoryzacja, lub trasowanie, czyli zastąpienie rysunku rastrowego rysunkiem wektorowym. Wykonanie: Piotr Dróżdż Podstawowe różnice między grafiką wektorową,

Bardziej szczegółowo

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne

Bardziej szczegółowo

Programowanie w technologii.net wykład 4 Aplikacja i okna

Programowanie w technologii.net wykład 4 Aplikacja i okna Programowanie w technologii.net wykład 4 Aplikacja i okna 1/30 Aplikacja Aplikacja WPF jest reprezentowana przez instancję klasy System.Windows.Application. pilnuje ona kiedy program się uruchamia i kończy

Bardziej szczegółowo

Sieciowe Technologie Mobilne. Laboratorium 2

Sieciowe Technologie Mobilne. Laboratorium 2 Sieciowe Technologie Mobilne Laboratorium 2 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 2 Na dzisiejszym laboratorium skupimy się na implementacji

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

Jak uzyskać efekt 3D na zdjęciach z wykorzystaniem programu InkScape

Jak uzyskać efekt 3D na zdjęciach z wykorzystaniem programu InkScape Jak uzyskać efekt 3D na zdjęciach z wykorzystaniem programu InkScape Program InkScape jest bezpłatnym polskojęzycznym programem grafiki wektorowej do pobrania ze strony http://www.dobreprogramy.pl/inkscape,program,windows,12218.html.

Bardziej szczegółowo

Szybkie tworzenie grafiki w GcIde

Szybkie tworzenie grafiki w GcIde Szybkie tworzenie grafiki w GcIde Opracował: Ryszard Olchawa Poniższy opis dotyczy aplikacji okienkowej w systemie Windows lub Linux bazującej na obiektowej bibliotece rofrm stworzonej w środowisku GcIde.

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c.

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Compas 2026 Vision Instrukcja obsługi do wersji 1.07 Compas 2026 Vision Instrukcja obsługi do wersji 1.07 1 2 Spis treści Integracja...5 1.Compas 2026 Lan...5 Logowanie...7 Użytkownicy...8 Raporty...10 Tworzenie wizualizacji Widoki...12 1.Zarządzanie widokami...12

Bardziej szczegółowo

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW Celem ćwiczenia jest wstępne przygotowanie do wykonania projektu opakowania transportowego poprzez zapoznanie się z programem Corel

Bardziej szczegółowo

Skalowanie i ustawianie arkuszy/układów wydruku w AutoCAD autor: M. Motylewicz, 2012

Skalowanie i ustawianie arkuszy/układów wydruku w AutoCAD autor: M. Motylewicz, 2012 1 z 72 Rysunek rysujemy w skali rzeczywistej tzn. jeżeli pas ruchu ma szerokość 3,5m to wpisujemy w AutoCAD: 3,5 jednostki (mapa oczywiście również musi być wstawiona w skali 1:1). Opisany w dalszym ciągu

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/05_03/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 Ręczne zakładanie kont użytkowników (D1) Jak ręcznie założyć konto w systemie

Bardziej szczegółowo

Systemy multimedialne 2015

Systemy multimedialne 2015 Systemy multimedialne 2015 Nazwa nowej warstwy nie ma znaczenia pod względem funkcjonalnym. Warto jednak ją nadać, łatwiej możemy się wtedy poruszać po bardziej rozbudowanym projekcie. Domyślny rozmiar

Bardziej szczegółowo

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Systemy wirtualnej rzeczywistości. Komponenty i serwisy Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki

Bardziej szczegółowo

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Multimedia i interfejsy. Ćwiczenie 5 HTML5 Multimedia i interfejsy Ćwiczenie 5 HTML5 Celem ćwiczenia jest poznanie nowych elementów wprowadzonych w HTML 5, do których należą m.in. video oraz canvas. Poniższy opis przedstawia sposób użycia tych

Bardziej szczegółowo

Jarosław Kuchta. Podstawy Programowania Obiektowego. ćwiczenie 10. Podstawy grafiki w WPF

Jarosław Kuchta. Podstawy Programowania Obiektowego. ćwiczenie 10. Podstawy grafiki w WPF Jarosław Kuchta Podstawy Programowania Obiektowego ćwiczenie 10 Podstawy grafiki w WPF Wprowadzenie W tym ćwiczeniu rozpoczniemy tworzenie gry Wall Demolition. Jest to odmiana gry Blockout. W grze występuje

Bardziej szczegółowo

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy Opracowanie: dr hab. Marzena Nowakowska, dr Maria Szczepańska, mgr Grażyna Gębal MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy 1. Opracować formularz Pracownicy edycja wg wzorca przedstawionego na

Bardziej szczegółowo

Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja Paweł Paduch paduch@tu.kielce.pl 25-05-2013 Rozdział 1 Wstęp Dzisiejsze zajęcia będą kontynuacją implementowania interfejsu. Skupimy się

Bardziej szczegółowo

I. Wstawianie rysunków

I. Wstawianie rysunków I. Wstawianie rysunków Wstawiane rysunku Bez parametrów: Tekst alternatywny Tytuł obrazka

Bardziej szczegółowo

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS Autor prezentacji: Michał Kołkowski Promotor: prof dr. hb. Włodzisław Duch SPIS TREŚCI 1. Ogólnie o Canvasie 2. Utworzenie szablonu do pracy z Canvas

Bardziej szczegółowo

Podstawy pozycjonowania CSS

Podstawy pozycjonowania CSS Podstawy pozycjonowania CSS Żeby pokazać w jaki sposób przeglądarka rozkłada elementy na stronie posłużę się prostym przykładowym fragmentem kodu html. div id="before"

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

23. ZEGAR SŁONECZNY - ANIMACJA

23. ZEGAR SŁONECZNY - ANIMACJA 23. ZEGAR SŁONECZNY - ANIMACJA klatki: Przykładowy scenariusz: 10-25 przesunięcie cyfry 12 25-40 przesunięcie gnomonu 5-40 zmiany Pola widzenia kamery - zbliżenia 45-80 podskakujące, rosnące cyfry 80-90

Bardziej szczegółowo

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski: Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące

Bardziej szczegółowo

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Cz. 4. Animacje, przejścia, pokaz slajdów Dzięki animacjom nasza prezentacja może stać się bardziej dynamiczna, a informacje, które chcemy przekazać,

Bardziej szczegółowo

PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF.

PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF. PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF. Aby go zainstalowad należy rozpakowad pakiet o nazwie PyX-0.10 do odpowiedniego katalogu. Będzie on dostępny

Bardziej szczegółowo

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty. Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny

Bardziej szczegółowo

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe. Programowanie Wizualno-Obiektowe (studia zaoczne - inżynieria komputerowa) Zajęcia z Delphi 5, program 1 Temat: Zadanie: Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków

Bardziej szczegółowo

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać: Temat 8: Rodzaje kamery. Ustawienia kamery. Animacja ruchu kamery. Aby prześledzić różne możliwości zastosowania kamery zbudujemy najpierw jakąś ciekawą scenę. Ćwiczenie 053 Otwórz nowy plik. Z menu programu

Bardziej szczegółowo

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum Grażyna Koba Grafika komputerowa materiały dodatkowe do podręcznika Informatyka dla gimnazjum Rysunki i animacje w Edytorze postaci 1. Rysunek w Edytorze postaci Edytor postaci (rys. 1.) jest częścią programu

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania Spis treści Konfiguracja programu...3 Odczyt pomiarów...4 Wzorcowanie...6 Edycja ręczna...7 Edycja automatyczna...7 Konfiguracja...10 Konfiguracja

Bardziej szczegółowo

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

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

1. Opis okna podstawowego programu TPrezenter.

1. Opis okna podstawowego programu TPrezenter. OPIS PROGRAMU TPREZENTER. Program TPrezenter przeznaczony jest do pełnej graficznej prezentacji danych bieżących lub archiwalnych dla systemów serii AL154. Umożliwia wygodną i dokładną analizę na monitorze

Bardziej szczegółowo

Prezentacje multimedialne w Powerpoint

Prezentacje multimedialne w Powerpoint Prezentacje multimedialne w Powerpoint Ćwiczenie 1. Tworzenie prezentacji multimedialnej. POMOC DO ĆWICZENIA Dostęp do pomocy w programie: menu Pomoc Microsoft Office PowerPoint Pomoc. Aby ustawić tło

Bardziej szczegółowo

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1. Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1

Bardziej szczegółowo

Umieszczanie grafiki w dokumencie

Umieszczanie grafiki w dokumencie Umieszczanie grafiki w dokumencie Najczęstszym sposobem wstawiania grafiki do dokumentu jest wybranie z górnego menu polecenia Wstaw-->Obraz--Z pliku W tym oknie podajemy lokalizacje pliku, który zostanie

Bardziej szczegółowo

Edytor tekstu OpenOffice Writer Podstawy

Edytor tekstu OpenOffice Writer Podstawy Edytor tekstu OpenOffice Writer Podstawy Cz. 3. Rysunki w dokumencie Obiekt Fontwork Jeżeli chcemy zamieścić w naszym dokumencie jakiś efektowny napis, na przykład tytuł czy hasło promocyjne, możemy w

Bardziej szczegółowo

Rysunek 1: Okno z lista

Rysunek 1: Okno z lista 1 Urzadzenie RFID Urządzenie RFID, umożliwia użytkownikom systemu kontrolę dostępu do wydzielonych przez system stref, na podstawie odczytywanych TAG ów (identyfikatora przypisanego do użytkownika) z czytników

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Specyfikacja techniczna form reklamowych

Specyfikacja techniczna form reklamowych Specyfikacja techniczna form reklamowych www.olsztyn.tvp.pl Rozmiar, waga, format reklam Forma reklamowa Maksymalna waga Rozmiar [px] Format pliku Billboard 50 kb 750x100 gif, jpg, swf Double billboard

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania Veronica Wizyjny system monitorowania obiektów budowlanych Instrukcja oprogramowania 1 Spis treści 1. Aplikacja do konfiguracji i nadzoru systemu Veronica...3 1.1. Okno główne aplikacji...3 1.2. Edycja

Bardziej szczegółowo

Michał Witkowski. Michal.witkowski.bb@gmail.com. www.linkedin.com/in/themichalwitkowski

Michał Witkowski. Michal.witkowski.bb@gmail.com. www.linkedin.com/in/themichalwitkowski Michal.witkowski.bb@gmail.com www.linkedin.com/in/themichalwitkowski Efekt przejscia Jedną z nowości jaką została dodana w CSS jest właściwość transi:on. Wspomniana właściwość pozwala nam utworzyć pewien

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych

Laboratorium Systemów Operacyjnych Laboratorium Systemów Operacyjnych Użytkownicy, Grupy, Prawa Tworzenie kont użytkowników Lokalne konto pozwala użytkownikowi na uzyskanie dostępu do zasobów lokalnego komputera. Konto domenowe pozwala

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Animacje cz. 2. Rysujemy koło zębate

Animacje cz. 2. Rysujemy koło zębate Animacje cz. 2 1. Do wykonania poniższej animacji będziemy potrzebować dodatkowego desenia. Znajduje się on w folderze z instrukcją, żeby program Gimp mógł z niego skorzystać musimy wskazać mu ścieżkę

Bardziej szczegółowo

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zjazd 1 GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zaznaczenia Aby zacząć profesjonalnie rysować w programie GIMP należy opanować tematykę zaznaczeń. Zaznaczenia (inaczej maski) służą do zaznaczania obszarów

Bardziej szczegółowo

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów...

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów... Spis treści Konwencje zastosowane w książce...5 Dodawanie stylów do dokumentów HTML oraz XHTML...6 Struktura reguł...9 Pierwszeństwo stylów... 10 Klasyfikacja elementów... 13 Sposoby wyświetlania elementów...

Bardziej szczegółowo

Kurs Adobe Photoshop Elements 11

Kurs Adobe Photoshop Elements 11 Kurs Adobe Photoshop Elements 11 Gladiatorx1 Gradient 2014-12- 27 Spis treści Gradient... 2 Opcje narzędzia... 2 Edytor gradientów... 8 Wypełnianie dokumentów i zaznaczeń gradientem... 12 Wykonał gladiatorx1

Bardziej szczegółowo

DODAJEMY TREŚĆ DO STRONY

DODAJEMY TREŚĆ DO STRONY DODAJEMY TREŚĆ DO STRONY SPIS TREŚCI Pasek narzędzi i wyszukiwarka aplikacji... 2 Dodawanie portletów... 3 Widok zawartości stron... 4 Zawartość portletu... 5 Ikonki wybierz oraz dodaj zawartość stron...

Bardziej szczegółowo

Ustalanie dostępu do plików - Windows XP Home/Professional

Ustalanie dostępu do plików - Windows XP Home/Professional Ustalanie dostępu do plików - Windows XP Home/Professional Aby edytować atrybuty dostępu do plikow/ katalogow w systemie plików NTFS wpierw sprawdź czy jest Wyłączone proste udostępnianie czyli przejdź

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Sieciowe Technologie Mobilne. Laboratorium 4

Sieciowe Technologie Mobilne. Laboratorium 4 Sieciowe Technologie Mobilne Laboratorium 4 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 4 Urozmaicone zostaną animacje potworów, aby odpowiadały

Bardziej szczegółowo

SYLABUS ECCC MOD U Ł : C S M2 GR A F I K A KO M P U T E R O W A PO Z I O M: PO D S T A W O W Y (A)

SYLABUS ECCC MOD U Ł : C S M2 GR A F I K A KO M P U T E R O W A PO Z I O M: PO D S T A W O W Y (A) SYLABUS ECCC MOD U Ł : C S M2 GR A F I K A KO M P U T E R O W A PO Z I O M: PO D S T A W O W Y (A) GRUPA KOMPETENCJI KOMPETENCJE OBJĘTE STANDARDEM ECCC 1. Teoria grafiki komputerowej 1.1. Podstawowe pojęcia

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e Rozpoczynamy prace w GIMP-e 1. Odpalamy program GIMP szukamy go albo na pulpicie albo w programach (ikonka programu widoczna w prawym górnym rogu). 2. Program uruchamia się na początku widzimy tzw. Pulpit

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

VinCent Administrator

VinCent Administrator VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów

Bardziej szczegółowo

PROGRAMOWANIE WINDOWS PRESENTATION FOUNDATION (AVALON) W JĘZYKACH XAML ORAZ C#

PROGRAMOWANIE WINDOWS PRESENTATION FOUNDATION (AVALON) W JĘZYKACH XAML ORAZ C# ZESZYTY NAUKOWE 93-107 Zbigniew ROSIEK PROGRAMOWANIE WINDOWS PRESENTATION FOUNDATION (AVALON) W JĘZYKACH XAML ORAZ C# Streszczenie W grudniu 2005 roku firma Microsoft zaprezentowała zestaw nowych bibliotek

Bardziej szczegółowo

Grafika w aplikacjach lp. Jak zmienić kolor tła?

Grafika w aplikacjach lp. Jak zmienić kolor tła? Grafika w aplikacjach lp W tym rozdziale znajdziesz informacje jak osadzić w tworzonym programie zdjęcia, rysunki, wykresy i inne elementy graficzne. W środowisku lp autor ma dostęp do następujących obiektów

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Styles, Templates, Skins & Themes

Styles, Templates, Skins & Themes Styles, Templates, Skins & Themes Co jest co? Style zgrupowane ustawienia właściwości Template nowe Visual Tree dla kontrolki Skin zestaw styli dla całej aplikacji Theme schemat wyglądu obowiązujący w

Bardziej szczegółowo

Sposoby zwiększania efektywności systemu Windows

Sposoby zwiększania efektywności systemu Windows Grzegorz Trześniewski kl 1Tia 26.05.08r. Sposoby zwiększania efektywności systemu Windows Prof. Artur Rudnicki Uruchamiianiie ii zamykaniie Należy monitorować oprogramowanie ładowane podczas uruchamiania

Bardziej szczegółowo

Retusz i kolorowanie starej fotografii

Retusz i kolorowanie starej fotografii Retusz i kolorowanie starej fotografii Otwieramy starą fotografię. Powielamy warstwę tła. Klikamy na nazwie warstwy prawym przyciskiem myszki i z menu wybieramy Powiel warstwę (Duplicate Layer) lub używamy

Bardziej szczegółowo

Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia.

Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia. Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia. I. Wstęp Moduł Sprawdziany, służy do przekazywania w łatwy sposób, drogą elektroniczną zasad zaliczania przedmiotów oraz wyników kartkówek czy

Bardziej szczegółowo

INTERAKTYWNA KOMUNIKACJA WIZUALNA

INTERAKTYWNA KOMUNIKACJA WIZUALNA INTERAKTYWNA KOMUNIKACJA WIZUALNA 1 Animacja i edytor ruchu 2 Animacja klatka po klatce Edycja wielu klatek animacji jednocześnie i tryb przenikania się klatek Automatyczna animacja kształtu Wskaźniki

Bardziej szczegółowo

TURBINA WIATROWA NXT. Rozpocznij

TURBINA WIATROWA NXT. Rozpocznij Turbina Wiatrowa NXT Turbina Wiatrowa NXT Opis Zadanie polega na badaniu możliwości generowania prądu przez turbinę wiatrową poprzez analizę mocy wyjściowej urządzenia [W]. Eksperymentalnie sprawdzony

Bardziej szczegółowo

REKLAMA INTERNETOWA WYMAGANIA TECHNICZNE

REKLAMA INTERNETOWA WYMAGANIA TECHNICZNE WYMAGANIA TECHNICZNE y form reklamowych dostępnych w serwisach www.gazetaolsztynska.pl i wm.pl SPIS TREŚCI 3 SPIS TREŚCI Zasady ogólne...................................str. 4 1. Baner tradycyjny................................str.

Bardziej szczegółowo

Biblioteka Windows Forms

Biblioteka Windows Forms Biblioteka Windows Forms Aplikacje Windows Forms Aplikacje sterowane zdarzeniami Rysowanie oparte na GDI+ "Obudowane" kontrolki Win32 "Elementy" do budowy aplikacji Przestrzeń nazw System.Windows.Forms

Bardziej szczegółowo

BAZY DANYCH Formularze i raporty

BAZY DANYCH Formularze i raporty BAZY DANYCH Formularze i raporty Za pomocą tabel można wprowadzać nowe dane, przeglądać i modyfikować dane już istniejące. Jednak dla typowego użytkownika systemu baz danych, przygotowuje się specjalne

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI ZEGARKA ANALOGOWEGO

INSTRUKCJA OBSŁUGI ZEGARKA ANALOGOWEGO INSTRUKCJA OBSŁUGI ZEGARKA ANALOGOWEGO Ustawienie czasu 1. Wyciągnij koronkę do pozycji 2. 2. Obracaj koronkę w prawo lub w lewo tak aby odpowiadała wybranym przez Ciebie preferencjom. 3. Przywróć koronkę

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1 Viatoll Calc Instrukcja użytkownika Strona 1 Spis treści 1 Wstęp...3 2 Opis panelu głównego...3 2.1 Menu aplikacji...4 2.2 Tabela z trasami...5 2.3 Strona kalkulatora viatoll...6 2.4 Pasek statusu...7

Bardziej szczegółowo

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Laboratorium OiOSE. Programowanie w środowisku MS Visual C++ 1 Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Organizacja i Oprogramowanie Systemów Elektronicznych Michał Kowalewski

Bardziej szczegółowo