Aufgabe 17e
Schwierigkeitsgrad: Schwer
Themen: Objektorientierung
- Aufgabenstellung
- Lösung
Erweitern Sie die Klasse Feder um eine Funktion, die für verschiedene Federn mit verschiedenen Federkonstanten die Federkennlinien als BMP abspeichert. Dabei soll die Auslenkung auf der Horizontalen und die Federkraft auf der Vertikalen dargestellt werden. Nutzen Sie hierfür die, aus der Vorlesung und Übung bekannte, Datei BitmapPlusPlus.hpp.
Hinweis:
void draw_kennlinie(const Feder& feder) {
[…]
y = feder.federkraft(x);
[…]
}
federn.hpp
#include "BitmapPlusPlus.hpp"
federn.cpp
// Methode um die Federkennlinie auf der Bitmap zu zeichnen
void Feder::draw_federkennlinie(bmp::Bitmap& canvas) {
canvas.clear();
for (int x = 0; x < canvas.width(); x++) {
Vektor auslenkung = Vektor(x, 0, 0);
int y = this->federkraft(auslenkung).betrag();
if (y >= canvas.height())
break;
canvas.set(x, canvas.height()-1-y, bmp::Pixel(255, 0, 0));
}
}