| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > нахождение точек с целыми координатами в сегменте |
| Автор: Hohhi 28.5.2007, 20:07 |
| Привет всем! Я гтовлюсь к Молавскм экзаменам по информатике по школьному курсу. Вот решаю задачки потихоньку и дошёл до одной, пока идей нет. Вот условие: рассмотрим круги с1и с2 определенные радиусами 1 и 2 соотвтетсвенно, а также декартоввыми координатами центров.Напишите программу, которая вычисляет, сколько точек с целочисленными координатами расположено внутри фигуры, образованный их пересечением ВВод с клавы Радиусы меньше 30, координаты от 50 до 100 вывод:количество Помогите, если есть идея кидайте, листинг не обязателен |
| Автор: valedol 29.5.2007, 16:47 |
| первое решение которое пришло в голову: тупо пребрать все точки вложеным цилом и проверить входит ли эта точка в один круг, если да то вовторой?, если да то увеличиваем счетчик точек (провперять обычным уравнением окружности) |
| Автор: KuZyagroup 30.5.2007, 01:58 | ||||
| 1.Находим две точки пересечения (x1,y1; x2,y2) 2. Далее рассмотрим семейство горизонтальных прямых типа y=k(k-целое), каждая из них либо а) пересекают первый круг в двух точках (k>max(y1,y2)) б) пересекают оба круга (max(y1,y2)>k>mix(y1,y2)) в) пересекают второй круг в двух точках (mix(y1,y2)>k) 3. Для каждой пары точек (xk1,yk1), (xk2,yk2) посчитаем сколько точек с целочисленными координатами расположено между ними по формулe
Где Потолок от Х - найменьшее целое которое не меньше X А [x] - целая часть от X от Х - найбольшее целое не привышающее X Пример
Если в твоей задачи точки ледащие на линиях тоже в счет то используй строгие неравенства |