У меня есть набор данных с 10000 строк и 10 столбцов в текстовом файле. Вот некоторые samples-Сравнение данных с определенной строкой и столбцом
# x1 y1 x2 y2 x3 y3 x4 y4 Area
1 0.0000 0.0000 0.8147 0.0000 0.8147 0.1355 0.0000 0.1355 0.1104
2 0.8147 0.0000 1.0000 0.0000 1.0000 0.1355 0.8147 0.1355 0.0251
3 0.8147 0.1355 0.9058 0.1355 0.9058 0.8350 0.8147 0.8350 0.0637
4 0.0000 0.1355 0.8147 0.1355 0.8147 1.0000 0.0000 1.0000 0.7043
5 0.9058 0.1355 1.0000 0.1355 1.0000 0.8350 0.9058 0.8350 0.0659
6 0.9058 0.8350 1.0000 0.8350 1.0000 1.0000 0.9058 1.0000 0.0155
7 0.8147 0.8350 0.9058 0.8350 0.9058 1.0000 0.8147 1.0000 0.0150
Я хотел бы проверить эти точки с помощью этого програмно
#include <iostream>
#include <cmath>
using namespace std;
double CheckPoint(){
double slope, intercept,A, B, C, D,px, py,left, top, right, bottom,dx, dy;
cin >> A; // take from column
cin >> B; // take from column
cin >> C; // take from column
cin >> D; // take from column
cin >> px; // take value from other rows and column and check
cin >> py; // take value from other rows and column and check
dx = C - A;
dy = D - B;
slope = dy/dx;
// y = mx + c
// intercept c = y - mx
intercept = B - slope * A; // which is same as D - slope * C
// For Bounding Box
if(A < C)
{
left = A;
right = C;
}
else
{
left = C;
right = A;
}
if(B < D)
{
top = B;
bottom = D;
}
else
{
top = B;
bottom = D;
}
if(slope * px + intercept > (py - 0.01) &&
slope * px + intercept < (py + 0.01))
{
if(px >= left && px <= right &&
py >= top && py <= bottom)
{
// cout the numbers of common point and the line number
}
else
// cout the numbers of common point and the line number
}
else
// cout no common point;
}
int main()
{
cout<<CheckPoint();
return 0;
}
Сначала я хочу
- принимают значение A от x1
- взять значение B от y1
- возьмите значение C от x2
- возьмите значение D от y2
- и проверьте, есть ли у них какая-либо общая точка с x3, y3, x4 и y4. Но он не будет проверять значения из собственной строки. Этот процесс будет продолжен и для других строк.
Затем я хочу
- принимает значение А из х2
- принимает значение B от y2
- принимает значение C от x3
- принимают значение D от y3
- и проверьте, есть ли у них общая точка с x1, y1, x4 и y4. И, как указано выше, он не будет проверять значение собственной строки, а также применять для строк2, row3 .... и т. Д.
Пример на ответ на замечания
Когда программа взять А = 0,0000 В = 0,0000 С = 0,8147 D = 0,0000, он не будет сравнивать значения с х3 = 0.8147 у3 = 0.1355 x4 = 0.0000 y4 = 0.1355.ie он пропустит строку, из которой он принимает значения x1, y1, x2, y2.
Снова, когда он принимает значения A, B, C, D из второй строки, т.е. 0.A = 8147 B = 0,0000 C = 1,0000 D = 0,0000, затем пропускает значения x3, y3, x4, y4 в строке 2.
Я хотел, чтобы он подсчитывал количество точек совпадения и возвращал число строк, в которых он нашел точку. Как мне это сделать?
Вы спрашиваете, как читать данные из текстового файла? – Aravind
да, данные находятся в текстовом файле. – aries0152
да, но вы спрашиваете, как читать эти данные из файла? или что-то другое? каков твой вопрос? –