Diagramy UML, przykład problemu kolizji



Podobne dokumenty
Wprowadzenie do UML, przykład użycia kolizja

Przykład implementacji przeciażeń operatorów problem kolizji

Szablony funkcji i szablony klas

Wprowadzenie do szablonów klas

UML w Visual Studio. Michał Ciećwierz

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji

Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Praca z aplikacją designer

Schemat konstrukcja pliku Makefile

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Podejście obiektowe wprowadzenie

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Szablon klasy std::list

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Qt sygnały i designer

Organizacja kursu, paradygmaty, ogólnie o C i C++

Podstawy Programowania Obiektowego

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Wprowadzenie do UML Rodzaje diagramów Przeglad oprogramowania Zadania Rozwiazania zadań Bibliografia. Warsaw Dziobax

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Klasa, metody, rozwijanie w linii

Czujniki PSD i dalmierze triangulacyjne

Klasa, metody, rozwijanie w linii

UML cz. I. UML cz. I 1/1

Wyliczanie wyrażenia obiekty tymczasowe

Podstawy programowania III WYKŁAD 4

Dalmierze optyczne. Bogdan Kreczmer.

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Programowanie współbieżne i rozproszone

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Unified Modeling Language

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

WPROWADZENIE DO UML-a

Czujniki PSD i dalmierze triangulacyjne

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela

Dia rysowanie diagramów

Lista dwukierunkowa - przykład implementacji destruktorów

Podejście obiektowe - podstawowe pojęcia

Projektowanie interakcji. Jarosław Kuchta

PODSTAWY RACHUNKU WEKTOROWEGO

Hermetyzacja oraz pola i metody statyczne

Zad. 5: Układ równań liniowych liczb zespolonych

Referencje do zmiennych i obiektów

Wartości domyślne, przeciażenia funkcji

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Programowanie Obiektowew języku C++ Zadania L4

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Zad. 6: Sterowanie robotami mobilnymi w obecności przeszkód

Modelowanie i analiza systemów informatycznych

KINEMATYKA I DYNAMIKA CIAŁA STAŁEGO. dr inż. Janusz Zachwieja wykład opracowany na podstawie literatury

Programowanie 2. Język C++. Wykład 3.

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód

Wartości domyślne, szablony funkcji i klas

Szablon klasy std::vector

Zadania z podstaw programowania obiektowego

Spis treúci. 1. Wprowadzenie... 13

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Style programowania - krótki przeglad

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Przesłanianie nazw, przestrzenie nazw

Wartości domyślne, przeciażenia funkcji

Pola i metody statyczne

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Style programowania - krótki przeglad

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Programowanie Obiektowew języku C++ Zadania L4

Michał Adamczyk. Język UML

Diagramy klas. WYKŁAD Piotr Ciskowski

Diagramy czynności Na podstawie UML 2.0 Tutorial

Zasoby, pliki graficzne

Inżynieria oprogramowania Wprowadzenie. WYKŁAD Piotr Ciskowski

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

Diagramy klas. dr Jarosław Skaruz

Język ludzki kod maszynowy

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

Geneza powstania języka C++

Wstęp do programowania obiektowego. Wykład 2

Zeszyty Naukowe UNIWERSYTETU PRZYRODNICZO-HUMANISTYCZNEGO w SIEDLCACH Seria: Administracja i Zarządzanie Nr

UML- Unified Modeling Language Ujednolicony Język Modelowania

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Operacje wejścia/wyjścia odsłona pierwsza

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

PARADYGMATY PROGRAMOWANIA Wykład 3

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Transkrypt:

Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową.

Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net

Plan prezentacji Języki modelowania 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Plan prezentacji Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh 1994 zapoczątkowanie prac nad UML 1995 pierwsza robocza wersja 0.8 1997 zaakceptowanie wersji 1.1 przez OMG (Object Managment Group) 1999 opublikowanie wersji 1.3 2004/2005 zaakceptowanie wersji 2.0 sierpień 2007 opublikowanie wersji 2.1.1 Strona projektu: http://www.uml.org

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas UML jest językiem znormalizowanym, służącym do opisywania projektu systemu.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas UML jest językiem znormalizowanym, służącym do opisywania projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych podczas procesu budowy systemu informatycznego.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas UML jest językiem znormalizowanym, służącym do opisywania projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych podczas procesu budowy systemu informatycznego. UML służy do obrazowania, specyfikowania i dokumentowania systemów obiektowych.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas UML jest językiem znormalizowanym, służącym do opisywania projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych podczas procesu budowy systemu informatycznego. UML służy do obrazowania, specyfikowania i dokumentowania systemów obiektowych. UML jest przede wszystkim przeznaczony do wspomagania budowy systemów informatycznych.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe.

UML Unified Modeling Language UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe.

Plan prezentacji Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Przykłady diagramów UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Rysunek : Diagram klas

Przykłady diagramów UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Rysunek : Diagram klas modelujący strukturę firmy

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne.

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia służy do obrazowania zachowania systemu, podsystemu lub klasy w taki sposób, żeby użytkownicy mogli zrozumieć, jak z tego bytu korzystać, a programiści mogli go zaimplementować. Czynności Klas Sekwencji

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Ważniejsze diagramy diagram przypadków użycia

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności modeluje dynamiczne aspekty systemu. Demonstrują przepływ sterowania od operacji do operacji. Klas Sekwencji

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Ważniejsze diagramy diagram czynności

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas służy do obrazowania statycznych aspektów systemu. Bierze się w nim pod uwagę wymagania funkcjonalne (usługi), jakie system powinien udostępniać swoim użytkownikom. Sekwencji

Ważniejsze diagramy diagram klas UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas

Ważniejsze diagramy UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas W wersji 2.0 wyróżnia się 13 rodzai diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji służy do obrazowania dynamicznych aspektów systemu. Demonstruje kolejność komunikatów w czasie, które przesyłają między sobą obiekty.

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Ważniejsze diagramy diagram sekwencji

Plan prezentacji Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Oznaczenia Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa

Model klasy w UML UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas

Model klasy w UML UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Stereotyp umożliwia twórcy diagramu na zdefiniowanie metaelementu, który pozwala na uszczegółowienie znaczenia określonego elementu poprzez dodanie informacji związanych z jego charakterystyką.

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa Wektor przykład modelu w UML class Wektor { public : double x, y; }; double Norma( ) const { return sqrt(x x+y y); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa Wektor przykład modelu w UML class Wektor { public : double x, y; }; double Norma( ) const { return sqrt(x x+y y); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa LZespolona przykład modelu w UML class LZespolona { public : double re, im; }; LZespolona(double re nowa, double im nowa): re(re nowa), im(im nowa) { } LZespolona Sprzezenie( ) const { return LZespolona(re,-im); } LZespolona operator + (const LZespolona& Arg2) const ; LZespolona operator (const LZespolona& Arg2) const ; double Modul2() const { return re re + im im; }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa LZespolona przykład modelu w UML class LZespolona { public : double re, im; }; LZespolona(double re nowa, double im nowa): re(re nowa), im(im nowa) { } LZespolona Sprzezenie( ) const { return LZespolona(re,-im); } LZespolona operator + (const LZespolona& Arg2) const ; LZespolona operator (const LZespolona& Arg2) const ; double Modul2() const { return re re + im im; }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { public : LZespolona x, y; }; WektorZ( ) { x.re = x.im = 0; y.re = y.im = 0; } double Norma( ) const;

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { public : LZespolona x, y; }; WektorZ( ) { x.re = x.im = 0; y.re = y.im = 0; } double Norma( ) const { return sqrt((x x.sprzezenie( )+y y.sprzezenie( )).re); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { public : LZespolona x, y; }; WektorZ( ) { x.re = x.im = 0; y.re = y.im = 0; } double Norma( ) const { return sqrt(x.modul2( )+y.modul2( )); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { public : LZespolona x, y; }; WektorZ( ) { x.re = x.im = 0; y.re = y.im = 0; } double Norma( ) const { return sqrt(x.modul2( )+y.modul2( )); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { LZespolona public : Wsp[2]; }; const LZespolona& operator [ ] (unsigned int Ind) const { return Wsp[Ind]; } LZespolona& operator [ ] (unsigned int Ind) { return Wsp[Ind]; } double Norma( ) const { return sqrt(( this )[0].Modul2()+( this )[1].Modul2()); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { LZespolona public : Wsp[2]; }; const LZespolona& operator [ ] (unsigned int Ind) const { return Wsp[Ind]; } LZespolona& operator [ ] (unsigned int Ind) { return Wsp[Ind]; } double Norma( ) const { return sqrt(( this )[0].Modul2()+( this )[1].Modul2()); }

Oznaczenia Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa

Oznaczenia Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa Kompozycja

Kompozycja Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { LZespolona public : Wsp[2]; }; const LZespolona& operator [ ] (unsigned int Ind) const { return Wsp[Ind]; } LZespolona& operator [ ] (unsigned int Ind) { return Wsp[Ind]; } double Norma( ) const { return sqrt(( this )[0].Modul2()+( this )[1].Modul2()); }

UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa WektorZ przykład modelu w UML class WektorZ { LZespolona public : Wsp[2]; }; const LZespolona& operator [ ] (unsigned int Ind) const { return Wsp[Ind]; } LZespolona& operator [ ] (unsigned int Ind) { return Wsp[Ind]; } double Norma( ) const { return sqrt(( this )[0].Modul2()+( this )[1].Modul2()); }

Oznaczenia Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa Kompozycja Agregacja

Agregacja Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas

Oznaczenia Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas Klasa Kompozycja Agregacja Zależność Powiązanie

Plan prezentacji Języki modelowania 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Opis problemu Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.

Opis problemu Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy.

Plan prezentacji Języki modelowania 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja

Etapy osiągania rozwiązania Analiza jest odwzorowaniem rzeczywistego świata na jego model koncepcyjny Projektowanie Konstrukcja

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform.

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform.

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform. d(t) = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform. d(t) = (x 1 x 2 ) 2 + (y 1 y 2 ) 2 { x1 (t) = v x,1 t + x 0,1 y 1 (t) = v y,1 t + y 0,1 { x2 (t) = v x,2 t + x 0,2 y 2 (t) = v y,2 t + y 0,2

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform. d(t) = (x 1 x 2 ) 2 + (y 1 y 2 ) 2 { x1 (t) = v x,1 t + x 0,1 y 1 (t) = v y,1 t + y 0,1 { x2 (t) = v x,2 t + x 0,2 y 2 (t) = v y,2 t + y 0,2

Analityczne rozwiązanie problemu Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż suma promieni okręgów opisanych na korpusach obu platform. d(t) = (x 1 x 2 ) 2 + (y 1 y 2 ) 2 d(t) = { x1 (t) = v x,1 t + x 0,1 y 1 (t) = v y,1 t + y 0,1 { x2 (t) = v x,2 t + x 0,2 y 2 (t) = v y,2 t + y 0,2 ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2 d(t) = (v x,12 t + x 0,12 ) 2 + (v y,12 t + y 0,12 ) 2 gdzie v x,12 = v x,1 v x,2 analogicznie x 0,12, v y,12, y 0,12.

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2 d(t) = (v x,12 t + x 0,12 ) 2 + (v y,12 t + y 0,12 ) 2 gdzie v x,12 = v x,1 v x,2 analogicznie x 0,12, v y,12, y 0,12. Szukamy wartość t, dla której funkcja d(.) osiąga minimum.

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2 d(t) = (v x,12 t + x 0,12 ) 2 + (v y,12 t + y 0,12 ) 2 gdzie v x,12 = v x,1 v x,2 analogicznie x 0,12, v y,12, y 0,12. Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) dt = 0 v x,12 (v x,12 t + x 0,12 ) + v y,12 (v y,12 t + y 0,12 ) = 0

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2 d(t) = (v x,12 t + x 0,12 ) 2 + (v y,12 t + y 0,12 ) 2 gdzie v x,12 = v x,1 v x,2 analogicznie x 0,12, v y,12, y 0,12. Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) dt = 0 v x,12 (v x,12 t + x 0,12 ) + v y,12 (v y,12 t + y 0,12 ) = 0

Analityczne rozwiązanie problemu d(t) = ((v x,1 v x,2 )t + (x 0,1 x 0,2 )) 2 + ((v y,1 v y,2 )t + (y 0,1 y 0,2 )) 2 d(t) = (v x,12 t + x 0,12 ) 2 + (v y,12 t + y 0,12 ) 2 gdzie v x,12 = v x,1 v x,2 analogicznie x 0,12, v y,12, y 0,12. Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) dt = 0 v x,12 (v x,12 t + x 0,12 ) + v y,12 (v y,12 t + y 0,12 ) = 0 t = v x,12x 0,12 + v y,12 y 0,12 v 2 x,12 + v 2 y,12

Finalne rozwiązanie problemu d = ( (v x,1 v x,2 ) v x,12x 0,12 +v y,12 y 0,12 v 2 x,12 +v 2 y,12 ( + (v y,1 v y,2 ) v x,12x 0,12 +v y,12 y 0,12 vx,12 2 +v y,12 2 ) 2 + (x 0,1 x 0,2 ) + (y 0,1 y 0,2 ) 1 2 ) 2

Zmiana układu współrzędnych

Zmiana układu współrzędnych

Zmiana układu współrzędnych

Zmiana układu współrzędnych

Zmiana układu współrzędnych Transformacja do lokalnego układu współrzędnych platformy nr 2 związanego ze środkiem okręgu opisanego na obrysie jej korpusu. { xl (t) = x 1 (t) x 2 (t) y L (t) = y 1 (t) y 2 (t) { vx,l (t) = v x,1 (t) v x,2 (t) v y,l (t) = v y,1 (t) v y,2 (t)

Zmiana układu współrzędnych Transformacja do lokalnego układu współrzędnych platformy nr 2 związanego ze środkiem okręgu opisanego na obrysie jej korpusu. { xl (t) = x 1 (t) x 2 (t) y L (t) = y 1 (t) y 2 (t) { vx,l (t) = v x,1 (t) v x,2 (t) v y,l (t) = v y,1 (t) v y,2 (t) Dzięki zastosowanej transformacji rozwiązanie problemu znacznie się upraszcza. Nie trzeba liczyć pochodnej, gdyż w tym przypadku problem jest natury geometrycznej.

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych.

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych.

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych.

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych.

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z

Rozwiązanie w układzie lokalnym W lokalnym układzie współrzędnych jednej z platform problem sprowadza się do wyznaczenia odległości prostej od początku układu współrzędnych. d = r sin α d = r sin α = r(e r e V ) z = (r e V ) z = (r V L V L ) z d = (r V L) z V L

Porównanie rozwiązań d = ( (v x,1 v x,2 ) v x,12x 0,12 +v y,12 y 0,12 v 2 x,12 +v 2 y,12 ( + (v y,1 v y,2 ) v x,12x 0,12 +v y,12 y 0,12 vx,12 2 +v y,12 2 ) 2 + (x 0,1 x 0,2 ) + (y 0,1 y 0,2 ) 1 2 ) 2 d = (r V L) z V L

Plan prezentacji Języki modelowania 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja

Etapy osiągania rozwiązania Analiza Projektowanie jest odwzorowaniem modelu koncepcyjnego na model implementacji. Konstrukcja

Określenie przypadków użycia Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy.

Określenie przypadków użycia Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Stworzona procedura będzie wykorzystywana w module detekcji kolizji oraz module planowania trajektrorii.

Diagram przypadków użycia Diagram przypadków użycia służy do obrazowania zachowania systemu, podsystemu lub klasy w taki sposób, żeby użytkownicy mogli zrozumieć, jak z tego bytu korzystać, a programiści mogli go zaimplementować.

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram przypadków użycia

Diagram czynności Języki modelowania Diagram czynności modeluje dynamiczne aspekty systemu. Demonstruje przepływ sterowania od operacji do operacji.

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram czynności Języki modelowania

Diagram klas Języki modelowania Diagram klas służy do obrazowania statycznych aspektów systemu. Bierze się w nim pod uwagę wymagania funkcjonalne (usługi), jakie system powinien udostępniać swoim użytkownikom.

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy.

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: Własności: Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje:

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości (Po rozwiązaniu analitycznym) Dodatkowe operacje: odejmowanie wektorów iloczyn skalarny iloczyn wektorowy

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości (Po rozwiązaniu analitycznym) Dodatkowe operacje: odejmowanie wektorów iloczyn skalarny iloczyn wektorowy

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości (Po rozwiązaniu analitycznym) Dodatkowe operacje: odejmowanie wektorów iloczyn skalarny iloczyn wektorowy

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości (Po rozwiązaniu analitycznym) Dodatkowe operacje: odejmowanie wektorów iloczyn skalarny iloczyn wektorowy

Diagram klas Języki modelowania Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie, czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości. Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie okręgu opisanego na rzucie pionowym korpusu platformy. Kluczowe rzeczowniki: platforma (mobilna) (Po rozwiązaniu analitcznym) Dodatkowe rzeczowniki: wektor Własności: ruch położenie rozmiar Operacje: sprawdzenie kolizyjności wyznaczanie odległości (Po rozwiązaniu analitycznym) Dodatkowe operacje: odejmowanie wektorów iloczyn skalarny iloczyn wektorowy

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Diagram klas Języki modelowania

Etapy osiągania rozwiązania Definicje klas Definicja metody sprawdzania kolizji Analiza Projektowanie Konstrukcja

Etapy osiągania rozwiązania Definicje klas Definicja metody sprawdzania kolizji Analiza Projektowanie Konstrukcja jest odwzorowaniem modelu implementacji na działający system.

Plan prezentacji Języki modelowania Definicje klas Definicja metody sprawdzania kolizji 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Definicje klasy Wektor Definicje klas Definicja metody sprawdzania kolizji class Wektor { //.......................................................... public: float x, y; Wektor operator ( Wektor ) const ; float operator ( const Wektor &V ) const { return x V.y y V.x; } float operator & ( const Wektor &V ) const { return x V.x + y V.y; } }; //........................................................................ Wektor Wektor::operator ( Wektor W ) const { W.x = x W.x; W.y = y W.y; } return W;

Definicje klasy Wektor Definicje klas Definicja metody sprawdzania kolizji class Wektor { //.......................................................... public: float x, y; Wektor operator ( Wektor ) const ; float operator ( const Wektor &V ) const { return x V.y y V.x; } float operator & ( const Wektor &V ) const { return x V.x + y V.y; } }; //........................................................................ Wektor Wektor::operator ( Wektor W ) const { W.x = x W.x; W.y = y W.y; } return W;

Definicje klasy Wektor Definicje klas Definicja metody sprawdzania kolizji class Wektor { //.......................................................... public: float x, y; Wektor operator ( Wektor ) const ; float operator ( const Wektor &V ) const { return x V.y y V.x; } float operator & ( const Wektor &V ) const { return x V.x + y V.y; } }; //........................................................................ Wektor Wektor::operator ( Wektor W ) const { W.x = x W.x; W.y = y W.y; } return W;

Definicje klasy Wektor Definicje klas Definicja metody sprawdzania kolizji class Wektor { //.......................................................... public: float x, y; Wektor operator ( Wektor ) const ; float operator ( const Wektor &V ) const { return x V.y y V.x; } float operator & ( const Wektor &V ) const { return x V.x + y V.y; } }; //........................................................................ Wektor Wektor::operator ( Wektor W ) const { W.x = x W.x; W.y = y W.y; } return W;

Plan prezentacji Języki modelowania Definicje klas Definicja metody sprawdzania kolizji 1 Języki modelowania UML geneza i przeznaczenie UML Diagramy Podstawowe oznaczenia diagram klas 2 3 Definicje klas Definicja metody sprawdzania kolizji

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie prędkości platformy 1 w lokalnym układzie współrzędnych platformy nr 2.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie prędkości platformy 1 w lokalnym układzie współrzędnych platformy nr 2.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie współrzędnych wektora poprowadzone z platformy nr 2 do platformy nr 1.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie współrzędnych wektora poprowadzone z platformy nr 2 do platformy nr 1.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie najmniejszej odległości między środkami platform.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Wyliczenie najmniejszej odległości między środkami platform.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Porównanie rozmiarów sumy obrysów obu platform z odległością ich największego zbliżenia.

Definicja klasy PlatformaMobilna Definicje klas Definicja metody sprawdzania kolizji class PlatformaMobilna {//..................................................... Wektor Pozycja; Wektor Predkosc; float R; public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ;... }; //............................................................................. bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R; d = (r V L) z V L Porównanie rozmiarów sumy obrysów obu platform z odległością ich największego zbliżenia.

Prównanie metody wersus operatory Definicje klas Definicja metody sprawdzania kolizji bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij(this > Predkosc); } Wektor r = PM. Pozycja.Odejmij(this > Pozycja); d = fabs(r.iloczynwektz(v L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+this > R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R;

Prównanie metody wersus operatory Definicje klas Definicja metody sprawdzania kolizji bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij(this > Predkosc); } Wektor r = PM. Pozycja.Odejmij(this > Pozycja); d = fabs(r.iloczynwektz(v L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+this > R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R;

Prównanie metody wersus operatory Definicje klas Definicja metody sprawdzania kolizji bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij(this > Predkosc); } Wektor r = PM. Pozycja.Odejmij(this > Pozycja); d = fabs(r.iloczynwektz(v L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+this > R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R;

Prównanie metody wersus operatory Definicje klas Definicja metody sprawdzania kolizji bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij(this > Predkosc); } Wektor r = PM. Pozycja.Odejmij(this > Pozycja); d = fabs(r.iloczynwektz(v L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+this > R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc this > Predkosc; } Wektor r = PM. Pozycja this > Pozycja; d = fabs(r V L)/sqrt(V L & V L); return d < PM. R+this > R;