Wprowadzenie do UML, przykład uzycia – kolizja
Transkrypt
Wprowadzenie do UML, przykład uzycia – kolizja
Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Wprowadzenie do UML, przykład użycia – kolizja Bogdan Kreczmer [email protected] Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Programowanie obiektowe c Copyright2012 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ą. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Niniejsza prezentacja została wykonana przy użyciu systemu składu LATEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language UML jest językiem znormalizowanym, służącym do zapisywania projektu systemu. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language UML jest językiem znormalizowanym, służącym do zapisywania projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych podczas procesu budowy systemu informatycznego. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language UML jest językiem znormalizowanym, służącym do zapisywania 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language UML jest językiem znormalizowanym, służącym do zapisywania 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas UML – Unified Modeling Language Przykładowe obszary zastosowań: tworzenie systemów informatycznych przedsiębiorstw, usług bankowych i finansowych, rozproszone usługi internetowe. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Przykłady diagramów Rysunek: Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Przykłady diagramów Rysunek: Diagram klas modelujący strukturę firmy Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4 abstrakcyjne. Najczęściej używane diagramy: Przypadków użycia Czynności Klas Sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy – diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy – diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy – diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy W wersji 2.0 wyróżnia się 13 rodzaji 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Ważniejsze diagramy – diagram sekwencji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Oznaczenia Klasa — Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Model klasy w UML Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Model klasy w UML Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 operator + (const LZespolona& Arg2) const ; LZespolona operator ∗ (const LZespolona& Arg2) const ; double Modul2() const { return LZespolona(re,-im); } re∗re + im∗im; } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 operator + (const LZespolona& Arg2) const ; LZespolona operator ∗ (const LZespolona& Arg2) const ; double Modul2() const { return LZespolona(re,-im); } re∗re + im∗im; } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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(0,0), y(0,0) {} double Norma( ) const; }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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(0,0), y(0,0) {} double Norma( ) const { return sqrt((x∗x.Sprzezenie( )+y∗y.Sprzezenie( )).re); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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(0,0), y(0,0) {} double Norma( ) const { return sqrt(x.Modul2( )+y.Modul2( )); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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(0,0), y(0,0) {} double Norma( ) const { return sqrt(x.Modul2( )+y.Modul2( )); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 LZespolona& operator [ ] (unsigned int Ind) { return double Norma( ) const { return Wsp[Ind]; } Wsp[Ind]; } sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 LZespolona& operator [ ] (unsigned int Ind) { return double Norma( ) const { return Wsp[Ind]; } Wsp[Ind]; } sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Oznaczenia Klasa — Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Oznaczenia Klasa — Kompozycja — Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Agregacja całkowita Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 LZespolona& operator [ ] (unsigned int Ind) { return double Norma( ) const { return Wsp[Ind]; } Wsp[Ind]; } sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania 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 LZespolona& operator [ ] (unsigned int Ind) { return double Norma( ) const { return Wsp[Ind]; } Wsp[Ind]; } sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); } }; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Oznaczenia Klasa — Kompozycja — Agregacja — Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Agregacja zwykła Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas Oznaczenia Klasa — Kompozycja — Agregacja — Zależność — Powiazanie — Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Opis problemu 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Opis problemu 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Etapy osiągania rozwiązania Analiza – jest odwzorowaniem rzeczywistego świata na jego model koncepcyjny Projektowanie Konstrukcja Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. p d(t) = (x1 − x2 )2 + (y1 − y2 )2 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. p d(t) = (x1 − x2 )2 + (y1 − y2 )2 x1 (t) = vx,1 t + x0,1 y1 (t) = vy ,1 t + y0,1 Programowanie obiektowe x2 (t) = vx,2 t + x0,2 y2 (t) = vy ,2 t + y0,2 Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. p d(t) = (x1 − x2 )2 + (y1 − y2 )2 x1 (t) = vx,1 t + x0,1 y1 (t) = vy ,1 t + y0,1 Programowanie obiektowe x2 (t) = vx,2 t + x0,2 y2 (t) = vy ,2 t + y0,2 Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, 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. p d(t) = (x1 − x2 )2 + (y1 − y2 )2 x1 (t) = vx,1 t + x0,1 y1 (t) = vy ,1 t + y0,1 x2 (t) = vx,2 t + x0,2 y2 (t) = vy ,2 t + y0,2 ⇓ q d(t) = ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 ⇓ q d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2 gdzie vx,12 = vx,1 − vx,2 analogicznie x0,12 , vy ,12 , y0,12 . Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 ⇓ q d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2 gdzie vx,12 = vx,1 − vx,2 analogicznie x0,12 , vy ,12 , y0,12 . Szukamy wartość t, dla której funkcja d(.) osiąga minimum. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 ⇓ q d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2 gdzie vx,12 = vx,1 − vx,2 analogicznie x0,12 , vy ,12 , y0,12 . Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) =0 dt −→ vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 ⇓ q d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2 gdzie vx,12 = vx,1 − vx,2 analogicznie x0,12 , vy ,12 , y0,12 . Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) =0 dt −→ vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Analityczne rozwiązanie problemu d(t) = q ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2 ⇓ q d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2 gdzie vx,12 = vx,1 − vx,2 analogicznie x0,12 , vy ,12 , y0,12 . Szukamy wartość t, dla której funkcja d(.) osiąga minimum. dd(t) =0 dt −→ vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0 t= vx,12 x0,12 + vy ,12 y0,12 2 vx,12 + vy2,12 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Finalne rozwiązanie problemu d = (vx,1 − +vy ,12 y0,12 vx,2 ) vx,12vx0,12 2 2 x,12 +vy ,12 + (vy ,1 − + (x0,1 − x0,2 ) +vy ,12 y0,12 vy ,2 ) vx,12vx0,12 2 2 x,12 +vy ,12 Programowanie obiektowe 2 2 + (y0,1 − y0,2 ) Wprowadzenie do UML, przykład użycia – kolizja 1 2 Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Zmiana układu współrzędnych Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Zmiana układu współrzędnych Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Zmiana układu współrzędnych Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Zmiana układu współrzędnych Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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) = x1 (t) − x2 (t) vx,L (t) = vx,1 (t) − vx,2 (t) yL (t) = y1 (t) − y2 (t) vy ,L (t) = vy ,1 (t) − vy ,2 (t) Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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) = x1 (t) − x2 (t) vx,L (t) = vx,1 (t) − vx,2 (t) yL (t) = y1 (t) − y2 (t) vy ,L (t) = vy ,1 (t) − vy ,2 (t) Dzięki zastosowanej transformacji rozwiązanie problemu znacznie się upraszcza. Nie trzeba liczyć pochodnej, gdyż w tym przypadku problem jest natury geometrycznej. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 α | Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × Programowanie obiektowe VL )z | || VL || Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × Programowanie obiektowe VL )z | || VL || Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × Programowanie obiektowe VL )z | || VL || Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × Programowanie obiektowe VL )z | || VL || Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × Programowanie obiektowe VL )z | || VL || Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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 (er × eV )z | = | (r × eV )z | = | (r × d = VL )z | || VL || |(r×VL )z | ||VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Porównanie rozwiązań d = (vx,1 2 +vy ,12 y0,12 − vx,2 ) vx,12vx0,12 + (x0,1 − x0,2 ) 2 +v 2 x,12 + (vy ,1 − y ,12 +vy ,12 y0,12 vy ,2 ) vx,12vx0,12 2 +v 2 x,12 y ,12 d= 2 + (y0,1 − y0,2 ) | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja 1 2 Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Etapy osiągania rozwiązania Analiza Projektowanie – jest odwzorowaniem modelu koncepcyjnego na model implementacji. Konstrukcja Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, 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. Stworzona procedura będzie wykorzystywana w module detekcji kolizji oraz module planowania trajektrorii. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 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ć. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram przypadków użycia Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Diagram czynności modeluje dynamiczne aspekty systemu. Demonstrują przepływ sterowania od operacji do operacji. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram czynności Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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: Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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: Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: sprawdzenie kolizyjności Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: sprawdzenie kolizyjności wyznaczanie odległości Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: sprawdzenie kolizyjności wyznaczanie odległości Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Operacje: sprawdzenie kolizyjności wyznaczanie odległości Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas 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 Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja Diagram klas Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Etapy osiągania rozwiązania Analiza Projektowanie Konstrukcja – jest odwzorowaniem modelu implementacji na działający system. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicje klasy Wektor 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; } Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicje klasy Wektor 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; } Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicje klasy Wektor 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; } Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicje klasy Wektor 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; } Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Plan prezentacji 1 Języki modelowania UML – geneza i przeznaczenie UML – Diagramy Podstawowe oznaczenia – diagram klas 2 Problem kolizji dwóch obiektów Sformułowanie problemu Analiza problemu, rozwiązanie analityczne Analiza obiektowa, projektowanie, konstrukcja 3 Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wektor Pozycja; Wektor Predkosc; R; float public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ; ... }; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wektor Pozycja; Wektor Predkosc; R; float public: bool CzyKolizja( const PlatformaMobilna&, float& ) const ; ... }; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie prędkości platformy 1 w lokalnym układzie współrzędnych platformy nr 2. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie prędkości platformy 1 w lokalnym układzie współrzędnych platformy nr 2. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie współrzędnych wektora poprowadzone z platformy nr 2 do platformy nr 1. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie współrzędnych wektora poprowadzone z platformy nr 2 do platformy nr 1. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie najmniejszej odległości między środkami platform. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Wyliczenie najmniejszej odległości między środkami platform. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Porównanie rozmiarów sumy obrysów obu platform z odległością ich największego zbliżenia. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Definicja klasy PlatformaMobilna 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 – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; d= | (r × VL )z | || VL || Porównanie rozmiarów sumy obrysów obu platform z odległością ich największego zbliżenia. Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Prównanie – metody wersus operatory bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij( Predkosc); Wektor r = PM. Pozycja.Odejmij( Pozycja); } d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+ R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Prównanie – metody wersus operatory bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij( Predkosc); Wektor r = PM. Pozycja.Odejmij( Pozycja); } d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+ R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Prównanie – metody wersus operatory bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij( Predkosc); Wektor r = PM. Pozycja.Odejmij( Pozycja); } d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+ R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Definicje klas Definicja metody sprawdzania kolizji Prównanie – metody wersus operatory bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc.Odejmij( Predkosc); Wektor r = PM. Pozycja.Odejmij( Pozycja); } d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L)); return d < PM. R+ R; bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const { Wektor V L = PM. Predkosc – Predkosc; Wektor r = PM. Pozycja – Pozycja; } d = fabs(r ∗ V L)/sqrt(V L & V L); return d < PM. R+ R; Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja Języki modelowania Problem kolizji dwóch obiektów Implementacja rozwiązania Koniec prezentacji Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja