diff --git a/compass.svg b/compass.svg new file mode 100644 index 0000000..53593c3 --- /dev/null +++ b/compass.svg @@ -0,0 +1,2707 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 280 + + + 290 + + + 300 + + + 310 + + + 320 + + + 330 + + + 340 + + + 350 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 70 + + + 80 + + + 260 + + + 250 + + + 240 + + + 230 + + + 220 + + + 210 + + + 200 + + + 190 + + + 170 + + + 160 + + + 150 + + + 140 + + + 130 + + + 120 + + + 110 + + + 100 + + + + + + + + + + + NW + 315° + + + NE + 45° + + + SE + 135° +   + + + SW + 225° +   + + + N + + + + E + 90° + + + W + 270° + + + S + 180° + + + WSW + 247.5° + + + + + + + + + diff --git a/flockompass.kv b/flockompass.kv index fe95275..db14ad9 100644 --- a/flockompass.kv +++ b/flockompass.kv @@ -62,11 +62,9 @@ FloatLayout: canvas: Color: - rgb: .08, .08, .08 + rgb: .9, .9, .9 Rectangle: size: self.size - Image: - source: 'rose.png' Image: source: 'needle.png' canvas.before: diff --git a/main.py b/main.py index 471f13b..fda3ef8 100644 --- a/main.py +++ b/main.py @@ -79,7 +79,7 @@ class FlockompassApp(App): self.fbearing = atan2(sin(lon2 - lon1) * cos(lat2), cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(lon2-lon1)) - self.fbearing = self.needle_angle - degrees(self.fbearing) + self.fbearing = self.needle_angle - degrees(self.fbearing) + 90 self.fbearing = (self.fbearing + 360) % 360 def center_map_on_gps(self): @@ -100,7 +100,7 @@ class FlockompassApp(App): angle = atan2(y, x) self.last_angle = smoothingFactor * self.last_angle + (1 - smoothingFactor) * angle - needle_angle = degrees(self.last_angle) + needle_angle = degrees(self.last_angle) - 90 # fix animation transition around the unit circle if (self.needle_angle % 360) - needle_angle > 180: @@ -114,13 +114,13 @@ class FlockompassApp(App): if self.cs._anim: self.cs._anim.stop(self) self.cs._anim = Animation(needle_angle=needle_angle, - d=0.1, + d=0.2, t='out_quad') self.cs._anim.start(self) def compass_enable(self): self.cs.facade.enable() - Clock.schedule_interval(self.get_field, 1 / 10.0) + Clock.schedule_interval(self.get_field, 1 / 33.3) def compass_disable(self): self.cs.facade.disable() diff --git a/needle.png b/needle.png index 85a75e5..4952e90 100644 Binary files a/needle.png and b/needle.png differ