Wprowadzenie do UML, przyk ad uzycia...

Post on 10-Sep-2018

220 views 0 download

Transcript of Wprowadzenie do UML, przyk ad uzycia...

Języki modelowaniaProblem kolizji dwóch obiektów

Implementacja rozwiązania

Wprowadzenie do UML, przykład użycia – kolizja

Bogdan Kreczmerbogdan.kreczmer@pwr.wroc.pl

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