Wprowadzenie do UML, przykład uzycia – kolizja

Transkrypt

Wprowadzenie do UML, przykład uzycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Wprowadzenie do UML, przykład użycia – kolizja
Bogdan Kreczmer
[email protected]
Zakład Podstaw Cybernetyki i Robotyki
Instytut Informatyki, Automatyki i Robotyki
Politechnika Wrocławska
Kurs: Programowanie obiektowe
c
Copyright2012
Bogdan Kreczmer
Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on
udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany
wyłącznie w całości, razem z niniejszą stroną tytułową.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Niniejsza prezentacja została wykonana przy użyciu systemu składu LATEX oraz stylu beamer, którego autorem
jest Till Tantau.
Strona domowa projektu Beamer:
http://latex-beamer.sourceforge.net
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Główni twórcy: Grady Booch, Ivar Jacobson, James Rumbaugh
1994 – zapoczątkowanie prac nad UML
1995 – pierwsza robocza wersja 0.8
1997 – zaakceptowanie wersji 1.1 przez OMG (Object Managment Group)
1999 – opublikowanie wersji 1.3
2004/2005 – zaakceptowanie wersji 2.0
sierpień 2007 – opublikowanie wersji 2.1.1
Strona projektu: http://www.uml.org
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywania
projektu systemu.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywania
projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych
podczas procesu budowy systemu informatycznego.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywania
projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych
podczas procesu budowy systemu informatycznego.
UML służy do obrazowania, specyfikowania i dokumentowania
systemów obiektowych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
UML jest językiem znormalizowanym, służącym do zapisywania
projektu systemu. Może być stosowany do obrazowania, specyfikowania, tworzenia i dokumentowania artefaktów powstałych
podczas procesu budowy systemu informatycznego.
UML służy do obrazowania, specyfikowania i dokumentowania
systemów obiektowych.
UML jest przede wszystkim przeznaczony do wspomagania budowy systemów informatycznych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznych
przedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznych
przedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznych
przedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
UML – Unified Modeling Language
Przykładowe obszary zastosowań:
tworzenie systemów informatycznych
przedsiębiorstw,
usług bankowych i finansowych,
rozproszone usługi internetowe.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Przykłady diagramów
Rysunek: Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Przykłady diagramów
Rysunek: Diagram klas modelujący strukturę firmy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia – służy do obrazowania zachowania
systemu, podsystemu lub klasy w taki sposób, żeby
użytkownicy mogli zrozumieć, jak z tego bytu korzystać, a
programiści mogli go zaimplementować.
Czynności
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności – modeluje dynamiczne aspekty systemu.
Demonstrują przepływ sterowania od operacji do operacji.
Klas
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas – służy do obrazowania statycznych aspektów
systemu. Bierze się w nim pod uwagę wymagania
funkcjonalne (usługi), jakie system powinien udostępniać
swoim użytkownikom.
Sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy
W wersji 2.0 wyróżnia się 13 rodzaji diagramów głównych i 4
abstrakcyjne.
Najczęściej używane diagramy:
Przypadków użycia
Czynności
Klas
Sekwencji – służy do obrazowania dynamicznych aspektów
systemu. Demonstruje kolejność komunikatów w czasie,
które przesyłają między sobą obiekty.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Ważniejsze diagramy – diagram sekwencji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Oznaczenia
Klasa
—
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Model klasy w UML
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Model klasy w UML
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa Wektor – przykład modelu w UML
class Wektor {
public :
double x, y;
double
Norma( ) const { return
sqrt(x∗x+y∗y); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa Wektor – przykład modelu w UML
class Wektor {
public :
double x, y;
double
Norma( ) const { return
sqrt(x∗x+y∗y); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa LZespolona – przykład modelu w UML
class LZespolona {
public :
double re, im;
LZespolona(double re nowa, double im nowa): re(re nowa), im(im nowa) { }
LZespolona
Sprzezenie( ) const { return
LZespolona
operator + (const LZespolona& Arg2) const ;
LZespolona
operator ∗ (const LZespolona& Arg2) const ;
double Modul2() const { return
LZespolona(re,-im); }
re∗re + im∗im; }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa LZespolona – przykład modelu w UML
class LZespolona {
public :
double re, im;
LZespolona(double re nowa, double im nowa): re(re nowa), im(im nowa) { }
LZespolona
Sprzezenie( ) const { return
LZespolona
operator + (const LZespolona& Arg2) const ;
LZespolona
operator ∗ (const LZespolona& Arg2) const ;
double Modul2() const { return
LZespolona(re,-im); }
re∗re + im∗im; }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
public :
LZespolona
x, y;
WektorZ( ): x(0,0), y(0,0) {}
double Norma( ) const;
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
public :
LZespolona
x, y;
WektorZ( ): x(0,0), y(0,0) {}
double Norma( ) const { return
sqrt((x∗x.Sprzezenie( )+y∗y.Sprzezenie( )).re); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
public :
LZespolona
x, y;
WektorZ( ): x(0,0), y(0,0) {}
double Norma( ) const
{ return
sqrt(x.Modul2( )+y.Modul2( )); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
public :
LZespolona
x, y;
WektorZ( ): x(0,0), y(0,0) {}
double Norma( ) const
{ return
sqrt(x.Modul2( )+y.Modul2( )); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
LZespolona
public :
Wsp[2];
const LZespolona& operator [ ] (unsigned int Ind) const { return
LZespolona& operator [ ] (unsigned int Ind) { return
double Norma( ) const { return
Wsp[Ind]; }
Wsp[Ind]; }
sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
LZespolona
public :
Wsp[2];
const LZespolona& operator [ ] (unsigned int Ind) const { return
LZespolona& operator [ ] (unsigned int Ind) { return
double Norma( ) const { return
Wsp[Ind]; }
Wsp[Ind]; }
sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Oznaczenia
Klasa
—
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Oznaczenia
Klasa
—
Kompozycja
—
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Agregacja całkowita
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
LZespolona
public :
Wsp[2];
const LZespolona& operator [ ] (unsigned int Ind) const { return
LZespolona& operator [ ] (unsigned int Ind) { return
double Norma( ) const { return
Wsp[Ind]; }
Wsp[Ind]; }
sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Klasa WektorZ – przykład modelu w UML
class WektorZ {
LZespolona
public :
Wsp[2];
const LZespolona& operator [ ] (unsigned int Ind) const { return
LZespolona& operator [ ] (unsigned int Ind) { return
double Norma( ) const { return
Wsp[Ind]; }
Wsp[Ind]; }
sqrt((∗this )[0].Modul2()+(∗this )[1].Modul2()); }
};
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Oznaczenia
Klasa
—
Kompozycja
—
Agregacja
—
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Agregacja zwykła
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
Oznaczenia
Klasa
—
Kompozycja
—
Agregacja
—
Zależność
—
Powiazanie
—
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Opis problemu
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem
jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Opis problemu
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej ruchem
jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza – jest odwzorowaniem rzeczywistego świata na jego
model koncepcyjny
Projektowanie
Konstrukcja
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy.Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy. Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy.Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
p
d(t) = (x1 − x2 )2 + (y1 − y2 )2
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy.Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
p
d(t) = (x1 − x2 )2 + (y1 − y2 )2
x1 (t) = vx,1 t + x0,1
y1 (t) = vy ,1 t + y0,1
Programowanie obiektowe
x2 (t) = vx,2 t + x0,2
y2 (t) = vy ,2 t + y0,2
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy.Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
p
d(t) = (x1 − x2 )2 + (y1 − y2 )2
x1 (t) = vx,1 t + x0,1
y1 (t) = vy ,1 t + y0,1
Programowanie obiektowe
x2 (t) = vx,2 t + x0,2
y2 (t) = vy ,2 t + y0,2
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
Rozwiązaniem problemu jest wyznaczenie najmniejszej odległości na jaką zbliżą
się do siebie platformy.Kolizja nie nastąpi jeżeli odległość ta będzie większa niż
suma promieni okręgów opisanych na korpusach obu platform.
p
d(t) = (x1 − x2 )2 + (y1 − y2 )2
x1 (t) = vx,1 t + x0,1
y1 (t) = vy ,1 t + y0,1
x2 (t) = vx,2 t + x0,2
y2 (t) = vy ,2 t + y0,2
⇓
q
d(t) = ((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
⇓
q
d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2
gdzie
vx,12 = vx,1 − vx,2
analogicznie x0,12 , vy ,12 , y0,12 .
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
⇓
q
d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2
gdzie
vx,12 = vx,1 − vx,2
analogicznie x0,12 , vy ,12 , y0,12 .
Szukamy wartość t, dla której funkcja d(.) osiąga minimum.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
⇓
q
d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2
gdzie
vx,12 = vx,1 − vx,2
analogicznie x0,12 , vy ,12 , y0,12 .
Szukamy wartość t, dla której funkcja d(.) osiąga minimum.
dd(t)
=0
dt
−→
vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
⇓
q
d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2
gdzie
vx,12 = vx,1 − vx,2
analogicznie x0,12 , vy ,12 , y0,12 .
Szukamy wartość t, dla której funkcja d(.) osiąga minimum.
dd(t)
=0
dt
−→
vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Analityczne rozwiązanie problemu
d(t) =
q
((vx,1 − vx,2 )t + (x0,1 − x0,2 ))2 + ((vy ,1 − vy ,2 )t + (y0,1 − y0,2 ))2
⇓
q
d(t) = (vx,12 t + x0,12 )2 + (vy ,12 t + y0,12 )2
gdzie
vx,12 = vx,1 − vx,2
analogicznie x0,12 , vy ,12 , y0,12 .
Szukamy wartość t, dla której funkcja d(.) osiąga minimum.
dd(t)
=0
dt
−→
vx,12 (vx,12 t + x0,12 ) + vy ,12 (vy ,12 t + y0,12 ) = 0
t=
vx,12 x0,12 + vy ,12 y0,12
2
vx,12
+ vy2,12
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Finalne rozwiązanie problemu

d =


(vx,1 −
+vy ,12 y0,12
vx,2 ) vx,12vx0,12
2
2
x,12 +vy ,12
+ (vy ,1 −
+ (x0,1 − x0,2 )
+vy ,12 y0,12
vy ,2 ) vx,12vx0,12
2
2
x,12 +vy ,12
Programowanie obiektowe
2
2
+ (y0,1 − y0,2 )
Wprowadzenie do UML, przykład użycia – kolizja
1
2


Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Transformacja do lokalnego układu współrzędnych platformy nr 2 związanego
ze środkiem okręgu opisanego na obrysie jej korpusu.
xL (t) = x1 (t) − x2 (t)
vx,L (t) = vx,1 (t) − vx,2 (t)
yL (t) = y1 (t) − y2 (t)
vy ,L (t) = vy ,1 (t) − vy ,2 (t)
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Zmiana układu współrzędnych
Transformacja do lokalnego układu współrzędnych platformy nr 2 związanego
ze środkiem okręgu opisanego na obrysie jej korpusu.
xL (t) = x1 (t) − x2 (t)
vx,L (t) = vx,1 (t) − vx,2 (t)
yL (t) = y1 (t) − y2 (t)
vy ,L (t) = vy ,1 (t) − vy ,2 (t)
Dzięki zastosowanej transformacji rozwiązanie problemu znacznie się upraszcza. Nie
trzeba liczyć pochodnej, gdyż w tym przypadku problem jest natury geometrycznej.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
Programowanie obiektowe
VL
)z |
|| VL ||
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
Programowanie obiektowe
VL
)z |
|| VL ||
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
Programowanie obiektowe
VL
)z |
|| VL ||
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
Programowanie obiektowe
VL
)z |
|| VL ||
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
Programowanie obiektowe
VL
)z |
|| VL ||
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Rozwiązanie w układzie lokalnym
W lokalnym układzie współrzędnych jednej z platform problem sprowadza
się do wyznaczenia odległości prostej od początku układu współrzędnych.
d =| r sin α |
d = | r sin α | = | r (er × eV )z | = | (r × eV )z | = | (r ×
d
=
VL
)z |
|| VL ||
|(r×VL )z |
||VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Porównanie rozwiązań
d =


 (vx,1
2
+vy ,12 y0,12
− vx,2 ) vx,12vx0,12
+ (x0,1 − x0,2 )
2 +v 2
x,12
+ (vy ,1 −
y ,12
+vy ,12 y0,12
vy ,2 ) vx,12vx0,12
2 +v 2
x,12
y ,12
d=
2
+ (y0,1 − y0,2 )
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
1
2


Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Etapy osiągania rozwiązania
Analiza
Projektowanie – jest odwzorowaniem modelu koncepcyjnego
na model implementacji.
Konstrukcja
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Określenie przypadków użycia
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Określenie przypadków użycia
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Stworzona procedura będzie wykorzystywana w module detekcji kolizji oraz module planowania trajektrorii.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Diagram przypadków użycia służy do obrazowania zachowania systemu, podsystemu lub klasy w taki sposób, żeby użytkownicy mogli
zrozumieć, jak z tego bytu korzystać, a programiści mogli go zaimplementować.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram przypadków użycia
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Diagram czynności modeluje dynamiczne aspekty systemu. Demonstrują przepływ sterowania od operacji do operacji.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram czynności
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Diagram klas służy do obrazowania statycznych aspektów systemu.
Bierze się w nim pod uwagę wymagania funkcjonalne (usługi), jakie
system powinien udostępniać swoim użytkownikom.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
Własności:
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
sprawdzenie
kolizyjności
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Programowanie obiektowe
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
(Po rozwiązaniu analitycznym)
Dodatkowe operacje:
odejmowanie wektorów
iloczyn skalarny
iloczyn wektorowy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
(Po rozwiązaniu analitycznym)
Dodatkowe operacje:
odejmowanie wektorów
iloczyn skalarny
iloczyn wektorowy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
(Po rozwiązaniu analitycznym)
Dodatkowe operacje:
odejmowanie wektorów
iloczyn skalarny
iloczyn wektorowy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
(Po rozwiązaniu analitycznym)
Dodatkowe operacje:
odejmowanie wektorów
iloczyn skalarny
iloczyn wektorowy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Należy zaimplementować procedurę obliczeniową umożliwiającą stwierdzenie,
czy dla dwóch platform mobilnych poruszających się wzdłuż prostej
ruchem jednostajnym zachodzi kolizja lub w jakiej miną się odległości.
Zakładamy, że kolizja zachodzi jeśli jakaś przeszkoda znajdzie się w obrębie
okręgu opisanego na rzucie pionowym korpusu platformy.
Kluczowe rzeczowniki:
platforma (mobilna)
(Po rozwiązaniu analitcznym)
Dodatkowe rzeczowniki:
wektor
Własności:
ruch
położenie
rozmiar
Operacje:
sprawdzenie
kolizyjności
wyznaczanie odległości
(Po rozwiązaniu analitycznym)
Dodatkowe operacje:
odejmowanie wektorów
iloczyn skalarny
iloczyn wektorowy
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
Diagram klas
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Etapy osiągania rozwiązania
Analiza
Projektowanie
Konstrukcja – jest odwzorowaniem modelu implementacji na
działający system.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicje klasy Wektor
class Wektor { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public:
float x, y;
Wektor operator – ( Wektor ) const ;
float operator ∗ ( const Wektor &V ) const { return x∗V.y − y∗V.x; }
float operator & ( const Wektor &V ) const { return x∗V.x + y∗V.y; }
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Wektor::operator − ( Wektor W ) const
{
W.x = x − W.x;
W.y = y − W.y;
return W;
}
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicje klasy Wektor
class Wektor { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public:
float x, y;
Wektor operator – ( Wektor ) const ;
float operator ∗ ( const Wektor &V ) const { return x∗V.y − y∗V.x; }
float operator & ( const Wektor &V ) const { return x∗V.x + y∗V.y; }
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Wektor::operator − ( Wektor W ) const
{
W.x = x − W.x;
W.y = y − W.y;
return W;
}
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicje klasy Wektor
class Wektor { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public:
float x, y;
Wektor operator – ( Wektor ) const ;
float operator ∗ ( const Wektor &V ) const { return x∗V.y − y∗V.x; }
float operator & ( const Wektor &V ) const { return x∗V.x + y∗V.y; }
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Wektor::operator − ( Wektor W ) const
{
W.x = x − W.x;
W.y = y − W.y;
return W;
}
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicje klasy Wektor
class Wektor { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public:
float x, y;
Wektor operator – ( Wektor ) const ;
float operator ∗ ( const Wektor &V ) const { return x∗V.y − y∗V.x; }
float operator & ( const Wektor &V ) const { return x∗V.x + y∗V.y; }
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Wektor::operator − ( Wektor W ) const
{
W.x = x − W.x;
W.y = y − W.y;
return W;
}
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Plan prezentacji
1
Języki modelowania
UML – geneza i przeznaczenie
UML – Diagramy
Podstawowe oznaczenia – diagram klas
2
Problem kolizji dwóch obiektów
Sformułowanie problemu
Analiza problemu, rozwiązanie analityczne
Analiza obiektowa, projektowanie, konstrukcja
3
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
R;
float
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
R;
float
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie prędkości platformy 1 w lokalnym
układzie współrzędnych platformy nr 2.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie prędkości platformy 1 w lokalnym
układzie współrzędnych platformy nr 2.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie współrzędnych wektora poprowadzone z
platformy nr 2 do platformy nr 1.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie współrzędnych wektora poprowadzone z
platformy nr 2 do platformy nr 1.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie najmniejszej odległości między środkami
platform.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Wyliczenie najmniejszej odległości między środkami
platform.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Porównanie rozmiarów sumy obrysów obu platform
z odległością ich największego zbliżenia.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Definicja klasy PlatformaMobilna
class PlatformaMobilna {// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wektor Pozycja;
Wektor Predkosc;
float
R;
public:
bool CzyKolizja( const PlatformaMobilna&, float& ) const ;
...
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna &PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
d=
| (r × VL )z |
|| VL ||
Porównanie rozmiarów sumy obrysów obu platform
z odległością ich największego zbliżenia.
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Prównanie – metody wersus operatory
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc.Odejmij( Predkosc);
Wektor r = PM. Pozycja.Odejmij( Pozycja);
}
d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L));
return d < PM. R+ R;
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Prównanie – metody wersus operatory
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc.Odejmij( Predkosc);
Wektor r = PM. Pozycja.Odejmij( Pozycja);
}
d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L));
return d < PM. R+ R;
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Prównanie – metody wersus operatory
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc.Odejmij( Predkosc);
Wektor r = PM. Pozycja.Odejmij( Pozycja);
}
d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L));
return d < PM. R+ R;
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Definicje klas
Definicja metody sprawdzania kolizji
Prównanie – metody wersus operatory
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc.Odejmij( Predkosc);
Wektor r = PM. Pozycja.Odejmij( Pozycja);
}
d = fabs(r.IloczynWektZ(V L))/sqrt(V L.IloczynSkal(V L));
return d < PM. R+ R;
bool PlatformaMobilna::CzyKolizja( const PlatformaMobilna& PM, float &d) const
{
Wektor V L = PM. Predkosc – Predkosc;
Wektor r = PM. Pozycja – Pozycja;
}
d = fabs(r ∗ V L)/sqrt(V L & V L);
return d < PM. R+ R;
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja
Języki modelowania
Problem kolizji dwóch obiektów
Implementacja rozwiązania
Koniec prezentacji
Programowanie obiektowe
Wprowadzenie do UML, przykład użycia – kolizja

Podobne dokumenty