Adjust polar to point and bearing drawing

This commit is contained in:
Joel Wetzell 2020-07-01 13:16:48 -05:00
parent 863bb04091
commit abb4385859
2 changed files with 6 additions and 3 deletions

View File

@ -169,8 +169,9 @@ void GeoMap::paint(Painter& painter) {
display.fill_rectangle({ r.center() - Point(16, 1), { 32, 2 } }, Color::red()); display.fill_rectangle({ r.center() - Point(16, 1), { 32, 2 } }, Color::red());
display.fill_rectangle({ r.center() - Point(1, 16), { 2, 32 } }, Color::red()); display.fill_rectangle({ r.center() - Point(1, 16), { 2, 32 } }, Color::red());
} else { } else {
draw_bearing({ 120, 32 + 144 }, angle_, 10, Color::red()); //coordinates could probably be calculted off screen_rect()?
painter.draw_string({ 120 - ((int)tag_.length() * 8 / 2), 32 + 144 - 32 }, style(), tag_); draw_bearing({ 120, 16 + 48 + 128 }, angle_, 10, Color::red());
painter.draw_string({ 120 - ((int)tag_.length() * 8 / 2), 16 + 48 + 128 - 32 }, style(), tag_);
} }
} }

View File

@ -91,7 +91,9 @@ Rect& Rect::operator-=(const Point& p) {
} }
Point polar_to_point(float angle, uint32_t distance) { Point polar_to_point(float angle, uint32_t distance) {
return Point(sin_f32(DEG_TO_RAD(angle) + (pi / 2)) * distance, -sin_f32(DEG_TO_RAD(angle)) * distance); //polar to compass with y negated for screen drawing
return Point(sin_f32(DEG_TO_RAD(-angle) + pi) * distance,
sin_f32(DEG_TO_RAD(-angle) - (pi / 2)) * distance);
} }
} /* namespace ui */ } /* namespace ui */