000
21.06.2010, 14:57 Uhr
ns
|
hallo,
ich habe ein kleines Programm geschrieben, das auch funktioniert, aber finde es nicht ganz elegant bzw. geschikt progtammiert... könnte jemand mir einen Ratschlag geben, wie ich die
C++: |
class CPoint { public: double x; double y;
CPoint() : x(0), y(0) {}
CPoint(double x, double y) : x(x), y(y) {} ....
};
double f( std::vector<CPoint> points ) { CPoint uLeftCorner, lRigthCorner;
std::pair<double, double> upper = upperCorner(points); upperLeftCorner.x = upper.first; upperLeftCorner.y = upper.second;
std::pair<double, double> lower = lowerCorner(points); ... double r; return r; }
std::pair<double, double> upperCorner(std::vector<CPoint> points) { double min_x = points[0].x; double min_y = points[0].y;
for(unsigned int i = 0; i < points.size(); i++) { min_x = min(min_x, points[i].x); min_y = min(min_y, points[i].y); } return std::pair<double, double> (min_x, min_y); }
std::pair<double, double> lowerCorner(std::vector<CPoint> points) { double max_x = 0.0; double max_y = 0.0;
for(unsigned int i = 0; i < points.size(); i++) { max_x = max(max_x, points[i].x); max_y = max(max_x, points[i].y); } return std::pair<double, double> (max_x, max_y); }
|
also z. b. wenn ich die punkte habe p1(1,5), p2(2,6), p3 (3,1), p4(2,4) dann mochte ich gerne zwei punkte berechnen mit P1(1, 1) und P2(3, 6) P1(X_min, y_min) und P2(x_max, y_max)
ich danke euch im voraus
Bearbeitung von 0xdeadbeef: |
code-Tags repariert und durch cpp-Tags ersetzt
|
Dieser Post wurde am 21.06.2010 um 15:13 Uhr von ns editiert. |