Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2010, 00:08   #1
RamilFaz
 
Регистрация: 07.04.2010
Сообщений: 8
Сообщение Цикл по тройкам

Определить радиус и центр окружности,на которой лежит наибольшее число точек заданного на плоскости множества точек.

Для определения координат центра окружности,проходящей через 3 точки нужно через эти 3 точки провести две прямые....
потом,найти координаты центров отрезков,соединяющих точки....
Провести через центральные точки две прямые,перпедикулярно исходным прямым....
далее нужно найти координаты точек пересечения перпедикуляров....это и будет центр окружности....
это так???

#include<iostream.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
long double X,Y,R,flag;
void find (double X1,double X2,double X3,double Y1,double Y2,double Y3)
{
double Part1,Part2,Part3,Part4;
flag=0;
if(X2-X1==0)
if(X3-X1==0)
Part1=((X2-X1)*(X2+X1)+(Y2-Y1)*(Y2+Y1))/(2.0*(X2-X1));
Part2=((X3-X1)*(X3+X1)+(Y3-Y1)*Y3+Y2))/(2.0*(X3-X1));
Part3=((Y2-Y1)/(X2-X1);
Part3=((Y3-Y1)/(X3-X1);
Y=(Part2-Part1)/(Part4-Part3);
X=Part2-Part4*Y;
R=sqrt(pow((X3-X),2)+pow((Y3-Y),2));
}
void main()
...................................



проверьте пожалуйста,правильно ли я иду,и подскажите как дальше делать.......
RamilFaz вне форума Ответить с цитированием
Старый 08.04.2010, 01:00   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Слишком долго и накладно писать. Лучше поступить по-другому.
Берём первую точку из множества вычисляем расстояние до всех других (а лучше квадрат расстояния, чтоб погрешности при извлечения корня не было), теперь смотрим сколько одинаковых расстояний получилось. Выбираем то расстояние, которое чаще всего встречается.
Теперь всё вышесказанное повторяем в цикле для всех других точек.
Ну и выбираем ту точку, у которой число одинаковых расстояний больше чем у других. Эта точка и будет центром искомой окружности с радиусом равным наиболее часто встречаемому расстоянию для данной точки.
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл While MsJane Помощь студентам 1 26.12.2009 07:49
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
цикл for Hanickii Общие вопросы C/C++ 11 26.09.2009 11:21
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34