-
Dependencies: CommandHandler HygroClip2 InterruptBasedEncoder SPI_TFT_ILI9341 mbed-src-no-hal
GraphScale.cpp@4:47fd4584df95, 2016-04-05 (annotated)
- Committer:
- wolfsberger
- Date:
- Tue Apr 05 14:00:51 2016 +0000
- Revision:
- 4:47fd4584df95
- Parent:
- 3:3ef8c2d7b1bf
-
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wolfsberger | 0:9ed7238d49e2 | 1 | #include "GraphScale.h" |
wolfsberger | 0:9ed7238d49e2 | 2 | |
wolfsberger | 0:9ed7238d49e2 | 3 | GraphScale::GraphScale(SPI_TFT_ILI9341 * tft, int x, int y, int width, int height, int min, int max, int scaleSteps) |
wolfsberger | 0:9ed7238d49e2 | 4 | : tft_(tft), x_(x), y_(y), width_(width), height_(height), min_(min), max_(max), scaleSteps_(scaleSteps) |
wolfsberger | 3:3ef8c2d7b1bf | 5 | { |
wolfsberger | 0:9ed7238d49e2 | 6 | } |
wolfsberger | 0:9ed7238d49e2 | 7 | |
wolfsberger | 0:9ed7238d49e2 | 8 | void GraphScale::draw(int color) |
wolfsberger | 0:9ed7238d49e2 | 9 | { |
wolfsberger | 0:9ed7238d49e2 | 10 | int x1 = x_-1; |
wolfsberger | 0:9ed7238d49e2 | 11 | int x2 = x_+width_+1; |
wolfsberger | 0:9ed7238d49e2 | 12 | int y1 = y_-1; |
wolfsberger | 0:9ed7238d49e2 | 13 | int y2 = y_+height_+1; |
wolfsberger | 3:3ef8c2d7b1bf | 14 | |
wolfsberger | 0:9ed7238d49e2 | 15 | tft_->rect(x1, y1, x2, y2, color); |
wolfsberger | 3:3ef8c2d7b1bf | 16 | |
wolfsberger | 4:47fd4584df95 | 17 | //int stepsize = height_ / ((max_-min_) / scaleSteps_); |
wolfsberger | 0:9ed7238d49e2 | 18 | int stepposition = min_; |
wolfsberger | 3:3ef8c2d7b1bf | 19 | |
wolfsberger | 2:81fc8f80fdb4 | 20 | while (stepposition <= max_) |
wolfsberger | 2:81fc8f80fdb4 | 21 | { |
wolfsberger | 2:81fc8f80fdb4 | 22 | float yPos = scaleY(stepposition); |
wolfsberger | 0:9ed7238d49e2 | 23 | tft_->line(x2, yPos, x2+5, yPos, color); |
wolfsberger | 0:9ed7238d49e2 | 24 | tft_->locate(x2+10,yPos-6); |
wolfsberger | 0:9ed7238d49e2 | 25 | tft_->printf("%d",stepposition); |
wolfsberger | 0:9ed7238d49e2 | 26 | stepposition += scaleSteps_; |
wolfsberger | 0:9ed7238d49e2 | 27 | } |
wolfsberger | 2:81fc8f80fdb4 | 28 | } |
wolfsberger | 2:81fc8f80fdb4 | 29 | |
wolfsberger | 2:81fc8f80fdb4 | 30 | float GraphScale::scaleY(float ypos) |
wolfsberger | 2:81fc8f80fdb4 | 31 | { |
wolfsberger | 2:81fc8f80fdb4 | 32 | static float valueRange = static_cast<float>(max_-min_); |
wolfsberger | 2:81fc8f80fdb4 | 33 | static float buttomOfGraph = static_cast<float>(y_+height_); |
wolfsberger | 3:3ef8c2d7b1bf | 34 | |
wolfsberger | 2:81fc8f80fdb4 | 35 | if (ypos < min_) |
wolfsberger | 2:81fc8f80fdb4 | 36 | ypos = min_; |
wolfsberger | 2:81fc8f80fdb4 | 37 | if (ypos > max_) |
wolfsberger | 2:81fc8f80fdb4 | 38 | ypos = max_; |
wolfsberger | 3:3ef8c2d7b1bf | 39 | |
wolfsberger | 2:81fc8f80fdb4 | 40 | float scaled = buttomOfGraph - (height_ * ((ypos-min_) / valueRange)); |
wolfsberger | 3:3ef8c2d7b1bf | 41 | |
wolfsberger | 2:81fc8f80fdb4 | 42 | return scaled; |
wolfsberger | 0:9ed7238d49e2 | 43 | } |