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 einfachlist
und verwendenpush_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..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Name würde ich die Struktur so etwas wie
Point
eher alsPoints
,da eine einzige Instanz der Struktur struct hält nur ein paar der x -, y-Koordinaten.
Dann einen passenden Abstand-Funktion könnte so etwas wie
Können Sie den Abstand zwischen zwei beliebigen Punkten in Ihrer Eingabe stellen wie diese:
Vielleicht wollen Sie auch Messen Sie den Abstand von Ihrem input Punkte zu
ein Punkt, der nicht in der Menge, wie ein Punkt, wo Sie denken, dass der center
der Kreis könnte. Zum Beispiel,
Wenn es mein code, ich würde wahrscheinlich machen
Point
eine Klasse und geben Sie es einMitglied, Funktion zur Entfernung, so dass ich könnte etwas schreiben, wie
Übrigens, ich könnte name der variable
points
eher alspoint
denn es ist ein Vektor, der hält mehrere Instanzen von
Point
.Wenn Sie beabsichtigen, zu schreiben, Dinge wie
point[i]
viel Euch vielleicht nicht gefälltpoints[i]
, aber wenn Sie sind meist gehen, um STL-Iteratoren über den Vektordann müsste man so etwas wie dieses: