blob: cc7a345de1f949bf6455f1f6a880d0f7fa767d7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include "position.h"
#include "../global.h"
Position::Position() {
// inititalisiere die Maussensoren
maussensor0.init(MAUSSENSOR0);
maussensor1.init(MAUSSENSOR1);
// Wir starten in der Mitte, nach vorne gerichtet
x = 0;
y = 0;
ausrichtung = 0;
}
Position::~Position() {
}
// Aktualisiert die internen Variablen x,y und ausrichtung
void Position::Aktualisieren() {
// Lese die Maussensoren ein
uint8 maus0_x = maussensor0.GetX();
uint8 maus0_y = maussensor0.GetY();
uint8 maus1_x = maussensor1.GetX();
uint8 maus1_y = maussensor1.GetY();
// Und berechne die neuen Werte
// ACHTUNG!!!!! Die Funktionen sind noch ungetestet und werden fehler enthalten
x += (maus0_x*sin(ausrichtung+45)+maus1_x*cos(ausrichtung+45))/2;
y += (maus0_y*sin(ausrichtung+45)+maus1_y*cos(ausrichtung+45))/2;
ausrichtung += ((maus0_y + maus1_y)/2)*(360/MAUS_FULL_TURN);
}
// Gibt die X-Koordinate zurück
int Position::GetX() {
return (int)x;
}
// Gibt die Y-Koordinate zurück
int Position::GetY() {
return (int)y;
}
// Gibt die Ausrichtung zurück
int Position::GetAusrichtung() {
return ausrichtung;
}
|