Мне нужно прочитать из файла координаты точек. Файл выглядит следующим образом:Работа с координатами x y
x0 y0
x1 y1
....
Затем найдите центр и диаметр самого маленького ограждающей круга. Но я застрял в начале. Я не знаю, как удерживать координаты и решил выбрать массив структур. Я прочитал координаты в структуре. Я собираюсь сделать 4 условия:
1 - Существует одна точка, и вы не можете найти наименьший замкнутый круг.
2 - Есть 2 очка. Теперь задача найти расстояние между ними и его центром.
3 - Есть 3 очка.
4 - более 3-х баллов. Использование специального алгоритма
Я попытался использовать вектор. Я не знаю, как использовать свои точки (элементы вектора) в конце функций и т.д.
#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;
}
я не делаю см. проблему, кроме ограничения размера фиксированного массива. Поскольку это C++, вы можете использовать 'vector' или простой' list' и использовать 'push_back' для хранения каждой из ваших точек. Можете ли вы изменить свой вопрос и добавить функцию, с которой вы столкнулись? – usr2564301
Ваша проблема в том, что вы не можете получить доступ к вашему массиву точек в вашей функции 'distance'? – Ventu
Спасибо, я попытался использовать вектор. – Asm