|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.04.2010, 00:08 | #1 |
Регистрация: 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() ................................... проверьте пожалуйста,правильно ли я иду,и подскажите как дальше делать....... |
08.04.2010, 01:00 | #2 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Слишком долго и накладно писать. Лучше поступить по-другому.
Берём первую точку из множества вычисляем расстояние до всех других (а лучше квадрат расстояния, чтоб погрешности при извлечения корня не было), теперь смотрим сколько одинаковых расстояний получилось. Выбираем то расстояние, которое чаще всего встречается. Теперь всё вышесказанное повторяем в цикле для всех других точек. Ну и выбираем ту точку, у которой число одинаковых расстояний больше чем у других. Эта точка и будет центром искомой окружности с радиусом равным наиболее часто встречаемому расстоянию для данной точки. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
цикл 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 |