Точка извън окръжност
Здравейте, трябва ми малко помощ с една задачка. Става въпрос за m(абсциса и ордината) точки и k окръжности (абсциса, ордината и R). Трябва да определя има ли точка, която не лежи в нито една окръжност.
for (int j = 0; j < m; j++)
{
for (int i = 0; i < k; i++)
{
L = sqrt((x[i] - n[j]) * (x[i] - n[j]) + (y[i] - p[j]) * (y[i] - p[j]));
}
}
Стигнах до тук където изчислявам дали една точка е в окръжност или не, но не мога да измисля как да стани сравнението дали тази точка не лижи в нието една окръжност. Ще се радвам за малко съдействие :)
Благодаря за бележката ще го имам предвид. Аз пробвах с това което ти си написал в началото, но не мога да направя самата проверка. Пробвах с
if (L>R[i])
{
точката е извън окръжноста ;
Br++;
}
if (Br>0)
{
има точка която не лежи в нито една окръжност
}
но тази точка може да се окаже вътрешна за друга окръжност и точно това не мога да се сетя как да я изключа.
Относно променливите, винаги черновите ми са разхвърляни :D ще го направя задължително!
Привет отново, Ами ти беше тръгнал правилно в началото.
const int POINTS_COUNT = ...;
const int CIRCLES_COUNT = ...;
//iterate over all points
for (int pointIndex = 0; pointIndex < POINTS_COUNT; ++pointIndex)
{
bool isPointInsideAnyCircle = false;
//iterate over all the circles for that point
for (int circleIndex = 0; circleIndex < CIRCLES_COUNT; ++circleIndex)
{
//find L with the formula here
if(L >= R)
{
isPointInsideAnyCircle = true;
//break the inner loop - no need to go on
break;
}
}
if(!isPointInsideAnyCircle)
{
//the point is not inside some circle
//do what ever you like with it
std::cout << "point.x: " << pointsX[pointIndex]
<< ", point.y: " << pointsY[pointIndex]
<< "is outside all the circles" << std::endl;
}
}
Благодаря много! Бях пробвал подобен вариант, но не си правих проверката правилно и от там ми излизаше грешен отговор :)
Благодаря още веднъж за отделеното време.