Upload
ngotu
View
221
Download
0
Embed Size (px)
Citation preview
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Wprowadzenie do UML, przykład użycia – kolizja
Bogdan [email protected]
Zakład Podstaw Cybernetyki i RobotykiInstytut Informatyki, Automatyki i Robotyki
Politechnika Wrocławska
Kurs: Programowanie obiektowe
Copyright c©2012 Bogdan Kreczmer
Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest onudostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowanywyłącznie w całości, razem z niniejszą stroną tytułową.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Niniejsza prezentacja została wykonana przy użyciu sys-temu składu LATEX oraz stylu beamer, którego autoremjest Till Tantau.
Strona domowa projektu Beamer:http://latex-beamer.sourceforge.net
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 Manag-ment 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywaniaprojektu systemu.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywaniaprojektu systemu. Może być stosowany do obrazowania, specy-fikowania, tworzenia i dokumentowania artefaktów powstałychpodczas procesu budowy systemu informatycznego.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywaniaprojektu systemu. Może być stosowany do obrazowania, specy-fikowania, tworzenia i dokumentowania artefaktów powstałychpodczas procesu budowy systemu informatycznego.
UML służy do obrazowania, specyfikowania i dokumentowaniasystemów obiektowych.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywaniaprojektu systemu. Może być stosowany do obrazowania, specy-fikowania, tworzenia i dokumentowania artefaktów powstałychpodczas procesu budowy systemu informatycznego.
UML służy do obrazowania, specyfikowania i dokumentowaniasystemów obiektowych.
UML jest przede wszystkim przeznaczony do wspomagania bu-dowy systemów informatycznych.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznychprzedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznychprzedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznychprzedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznychprzedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Przykłady diagramów
Rysunek: Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.Najczęściej używane diagramy:
Przypadków użycia – służy do obrazowania zachowaniasystemu, podsystemu lub klasy w taki sposób, żebyużytkownicy mogli zrozumieć, jak z tego bytu korzystać, aprogramiści mogli go zaimplementować.
Czynności
Klas
Sekwencji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas – służy do obrazowania statycznych aspektówsystemu. Bierze się w nim pod uwagę wymaganiafunkcjonalne (usługi), jakie system powinien udostępniaćswoim użytkownikom.
Sekwencji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4abstrakcyjne.Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji – służy do obrazowania dynamicznych aspektówsystemu. 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram sekwencji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Oznaczenia
Klasa —
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Model klasy w UML
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Model klasy w UML
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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; }};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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; }};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {LZespolona Wsp[2];
public :
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()); }
};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {LZespolona Wsp[2];
public :
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()); }
};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Oznaczenia
Klasa —
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Oznaczenia
Klasa —
Kompozycja —
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Agregacja całkowita
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {LZespolona Wsp[2];
public :
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()); }
};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {LZespolona Wsp[2];
public :
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()); }
};
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Oznaczenia
Klasa —
Kompozycja —
Agregacja —
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Agregacja zwykła
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
Oznaczenia
Klasa —
Kompozycja —
Agregacja —
Zależność —
Powiazanie —
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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 ruchemjednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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 ruchemjednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza – jest odwzorowaniem rzeczywistego świata na jegomodel koncepcyjny
Projektowanie
Konstrukcja
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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.
d(t) =√(x1 − x2)2 + (y1 − y2)2
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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.
d(t) =√(x1 − x2)2 + (y1 − y2)2
{x1(t) = vx,1t + x0,1y1(t) = vy ,1t + y0,1
{x2(t) = vx,2t + x0,2y2(t) = vy ,2t + y0,2
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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.
d(t) =√(x1 − x2)2 + (y1 − y2)2
{x1(t) = vx,1t + x0,1y1(t) = vy ,1t + y0,1
{x2(t) = vx,2t + x0,2y2(t) = vy ,2t + y0,2
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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.
d(t) =√(x1 − x2)2 + (y1 − y2)2
{x1(t) = vx,1t + x0,1y1(t) = vy ,1t + y0,1
{x2(t) = vx,2t + x0,2y2(t) = vy ,2t + y0,2
⇓
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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =√((vx,1 − vx,2)t + (x0,1 − x0,2))2 + ((vy ,1 − vy ,2)t + (y0,1 − y0,2))2
⇓
d(t) =√(vx,12t + x0,12)2 + (vy ,12t + 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =√((vx,1 − vx,2)t + (x0,1 − x0,2))2 + ((vy ,1 − vy ,2)t + (y0,1 − y0,2))2
⇓
d(t) =√(vx,12t + x0,12)2 + (vy ,12t + 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =√((vx,1 − vx,2)t + (x0,1 − x0,2))2 + ((vy ,1 − vy ,2)t + (y0,1 − y0,2))2
⇓
d(t) =√(vx,12t + x0,12)2 + (vy ,12t + 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)dt= 0 −→ vx,12(vx,12t + x0,12) + vy ,12(vy ,12t + y0,12) = 0
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =√((vx,1 − vx,2)t + (x0,1 − x0,2))2 + ((vy ,1 − vy ,2)t + (y0,1 − y0,2))2
⇓
d(t) =√(vx,12t + x0,12)2 + (vy ,12t + 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)dt= 0 −→ vx,12(vx,12t + x0,12) + vy ,12(vy ,12t + y0,12) = 0
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =√((vx,1 − vx,2)t + (x0,1 − x0,2))2 + ((vy ,1 − vy ,2)t + (y0,1 − y0,2))2
⇓
d(t) =√(vx,12t + x0,12)2 + (vy ,12t + 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)dt= 0 −→ vx,12(vx,12t + x0,12) + vy ,12(vy ,12t + y0,12) = 0
t =vx ,12x0,12 + vy ,12y0,12
v 2x ,12 + v 2
y ,12
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Finalne rozwiązanie problemu
d =
((vx ,1 − vx ,2)vx,12x0,12+vy ,12y0,12
v2x,12+v
2y ,12
+ (x0,1 − x0,2))2
+((vy ,1 − vy ,2)vx,12x0,12+vy ,12y0,12
v2x,12+v
2y ,12
+ (y0,1 − y0,2))2
12
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnychTransformacja do lokalnego układu współrzędnych platformy nr 2 związanegoze środkiem okręgu opisanego na obrysie jej korpusu.{
xL(t) = x1(t)− x2(t)yL(t) = y1(t)− y2(t)
{vx,L(t) = vx,1(t)− vx,2(t)vy ,L(t) = vy ,1(t)− vy ,2(t)
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnychTransformacja do lokalnego układu współrzędnych platformy nr 2 związanegoze środkiem okręgu opisanego na obrysie jej korpusu.{
xL(t) = x1(t)− x2(t)yL(t) = y1(t)− y2(t)
{vx,L(t) = vx,1(t)− vx,2(t)vy ,L(t) = vy ,1(t)− vy ,2(t)
Dzięki zastosowanej transformacji rozwiązanie problemu znacznie się upraszcza. Nietrzeba liczyć pochodnej, gdyż w tym przypadku problem jest natury geometrycznej.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadzasię 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× VL|| VL ||
)z |
d = |(r×VL)z |||VL||
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Porównanie rozwiązań
d =
((vx ,1 − vx ,2)vx,12x0,12+vy ,12y0,12
v2x,12+v
2y ,12
+ (x0,1 − x0,2))2
+((vy ,1 − vy ,2)vx,12x0,12+vy ,12y0,12
v2x,12+v
2y ,12
+ (y0,1 − y0,2))2
12
d =| (r × VL)z ||| VL ||
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie – jest odwzorowaniem modelu koncepcyjnegona model implementacji.
Konstrukcja
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Stworzona procedura będzie wykorzystywana w module detekcji kolizji oraz mo-dule planowania trajektrorii.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Diagram przypadków użycia służy do obrazowania zachowania sys-temu, podsystemu lub klasy w taki sposób, żeby użytkownicy moglizrozumieć, jak z tego bytu korzystać, a programiści mogli go zaim-plementować.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Diagram czynności modeluje dynamiczne aspekty systemu. Demon-strują przepływ sterowania od operacji do operacji.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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), jakiesystem powinien udostępniać swoim użytkownikom.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki: Własności: Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności: Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjności
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie odległości
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie odległości
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie odległości
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza 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ż prostejruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębieokręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:platforma (mobilna)
(Po rozwiązaniu analitcznym)Dodatkowe rzeczowniki:
wektor
Własności:ruchpołożenierozmiar
Operacje:sprawdzeniekolizyjnościwyznaczanie 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja – jest odwzorowaniem modelu implementacji nadziałający system.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Plan prezentacji
1 Języki modelowaniaUML – geneza i przeznaczenieUML – DiagramyPodstawowe oznaczenia – diagram klas
2 Problem kolizji dwóch obiektówSformułowanie problemuAnaliza problemu, rozwiązanie analityczneAnaliza obiektowa, projektowanie, konstrukcja
3 Implementacja rozwiązaniaDefinicje klasDefinicja metody sprawdzania kolizji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 lokalnymukładzie współrzędnych platformy nr 2.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 lokalnymukładzie współrzędnych platformy nr 2.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 zplatformy nr 2 do platformy nr 1.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 zplatformy nr 2 do platformy nr 1.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 środkamiplatform.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 środkamiplatform.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 platformz odległością ich największego zbliżenia.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilnaclass 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 platformz odległością ich największego zbliżenia.
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klasDefinicja 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 modelowaniaProblem kolizji dwóch obiektów
Implementacja rozwiązania
Koniec prezentacji
Programowanie obiektowe Wprowadzenie do UML, przykład użycia – kolizja