Hallo zusammen,
ich weiß, es ist peinlich, aber leider habe ich wohl damals in der 9. Klasse bei Trigonometrie nicht richtig aufgepasst und brauche Hilfe .
Es ght um ein kleines elektronisches Projekt - eine analoge Anzeige wird auf einem TFT-Display gezeichnet.
Das Projekt selbst wird in C++ umgesetzt.
Da durch die vorgegebene Skala der Startpunkt des Zeigers ausßerhalb des Displays liegt um den richtigen Winkel zu erwischen, möchte ich nur Zeichnen, was auch wirklich angezeigt wird, das spart wertvolle Resourcen des kleinen Mikrocontrollers.
Gesucht wird nun der Schnittpunkt/Eintrittspunkt des Zeigers oder die mit 'h' markierte Höhe (siehe Bild).
Alle Werte des orangen Dreiecks sind vorhanden und die Displaygröße ist bekannt.
Kann mir bitte Jemand helfen, den Schnittpunkt zu berechnen?
Viele Grüße und ein schönes Wochenende!
PS: Das Display steht hochkannt und ist 240Px breit und 320Px hoch.
PPS: Die Nadel wird so gezeichnet:
ich weiß, es ist peinlich, aber leider habe ich wohl damals in der 9. Klasse bei Trigonometrie nicht richtig aufgepasst und brauche Hilfe .
Es ght um ein kleines elektronisches Projekt - eine analoge Anzeige wird auf einem TFT-Display gezeichnet.
Das Projekt selbst wird in C++ umgesetzt.
Da durch die vorgegebene Skala der Startpunkt des Zeigers ausßerhalb des Displays liegt um den richtigen Winkel zu erwischen, möchte ich nur Zeichnen, was auch wirklich angezeigt wird, das spart wertvolle Resourcen des kleinen Mikrocontrollers.
Gesucht wird nun der Schnittpunkt/Eintrittspunkt des Zeigers oder die mit 'h' markierte Höhe (siehe Bild).
Alle Werte des orangen Dreiecks sind vorhanden und die Displaygröße ist bekannt.
Kann mir bitte Jemand helfen, den Schnittpunkt zu berechnen?
Viele Grüße und ein schönes Wochenende!
PS: Das Display steht hochkannt und ist 240Px breit und 320Px hoch.
PPS: Die Nadel wird so gezeichnet:
C-Quellcode
- #define DEG2RAD 0.0174532925
- void drawNeedle(uint8_t percent) {
- double scale = map(percent, 0, 100, 57, 123);
- double arc = scale * DEG2RAD;
- int16_t x1 = -115 + 193 * sin(arc);
- int16_t y1 = 160 + 193 * cos(arc);
- // blaues Rechteck
- tft.drawRect(0, min(160, y1), x1, max(160, y1) - min(160, y1), ILI9341_BLUE);
- // Nadel
- tft.drawLine(-115, 160, x1, y1, ILI9341_RED);
- }
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „simpelSoft“ ()