Arbeiten mit Koordinaten x y

Ich muss aus einer Datei zu Lesen die Koordinaten der Punkte. Die Datei sieht wie folgt aus:

x0 y0

x1 y1

....

Dann finden Sie die Mitte und der Durchmesser des kleinsten umschließenden Kreis. Aber ich stucked in der Anfang.
Ich weiß nicht, wie zu halten, koordiniert und entschieden, wählen Sie Arrays von Strukturen. Ich habe gelesen, Koordinaten in der Struktur.
Ich werde dafür sorgen, 4 Bedingungen:

1 - Es gibt einen Punkt, und Sie nicht finden können, den kleinsten umschließenden Kreis.

2 - Es gibt 2 Punkte. Die Aufgabe ist nun, zu finden, die Entfernung zwischen Ihnen und Ihrem Zentrum.

3 - Es gibt 3 Punkte.

4 - Mehr als 3 Punkte. Einsatz spezieller Algorithmus

Ich habe versucht, Vektor. Ich weiß nicht, wie zu verwenden meine Punkte (die Elemente von vector), später in Funktionen, etc.

#include "stdafx.h"
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

//Distance
float distance(){
    return  sqrt((point[0].x * point[1].x) + (point[0].y * point[1].y));
}

struct Points
{
    float x, y;
};

int _tmain(int argc, _TCHAR* argv[])
{
vector<Points> point;
Points tmp;

ifstream fin("Points.txt");

if (!fin.is_open())
    cout << "Cannot open the file \n";
else{
    while (fin >> tmp.x >> tmp.y){
        point.push_back(tmp);
        cout << tmp.x << tmp.y << endl;
    }
    fin.close();

}

return 0;
}
  • Ich sehe kein problem, abgesehen von selbst die Beschränkung auf eine Feste array Größe. Wie ist dieses C++, könnte man eine vector oder einfach list und verwenden push_back zum speichern jedes Ihrer Punkte. Können Sie Bearbeiten Ihre Frage und fügen Sie die Funktion, dass Sie Probleme mit?
  • Ihr problem ist, dass Sie können nicht auf Ihre point-array in Ihrem distance Funktion?
  • Danke, ich habe versucht, Vektor.
  • Ich bearbeitete meinen code. Die Frage ist die gleiche, Sie hatten Recht, ich meinte distance Funktion. Und ich weiß nicht, wie drucken, meine Koordinaten vom Vektor..
InformationsquelleAutor Asm | 2015-05-27
Schreibe einen Kommentar