Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 18.03.2010
Сообщений: 24

Для множества точек на плоскости найти диаметр и центр минимальной описанной окружности

18.06.2010, 16:30. Показов 3635. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эх..помогите (надеюсь в последний раз)...Для множества точек плоскости p1(X1,Y1), p2(X2,Y2), ..., pN(Xn,Yn) найти диаметр и центр минимальной описанной окружности.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2010, 16:30
Ответы с готовыми решениями:

Даны два множества точек на плоскости. Найти центр и радиус окружности
Даны два множества точек на плоскости. Найти центр и радиус окружности, проходящей через K (K >=3) точек первого множества и содержащий...

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

Найти радиус и центр окружности, проходящей через N (N>=3) точек первого множества
условие задачи такое " Найти радиус и центр окружности, проходящей через N (N>=3) точек первого множества и содержащей строго внутри себя...

9
Заблокирован
18.06.2010, 16:47
сами решить хоть чуть-чуть пробовали?
0
1 / 1 / 0
Регистрация: 18.03.2010
Сообщений: 24
18.06.2010, 16:50  [ТС]
пробовала...и методичка есть..но не получается(((
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.06.2010, 17:01
rrrFer , а Вы знаете как ее решить? Я что-то не знаю, вот сейчас по инету полазила, поискала алгоритм, но все равно не нашла. Там явно не правильный, что ищем точку с максимально абсциссой, а потом проверяем будет ли окружность, проходящая через нее и другую точку (всех их перебираем) содержать все остальные точки. Но так явно не минимальный радиус получиться.

Добавлено через 6 минут
Интересно, обязана ли эта окружность проходить через 3 точки множества, или гарантированы только 2? По-моему все-таки 3, тогда ясно как делать, только вот координаты центра описанной окружности найти надо
0
Заблокирован
18.06.2010, 17:09
да, решал на С++ ее. Решается через построение окружности по трем точкам. Надо перебрать все возможные комбинации из трех точек, провести через них окружночть, определить радиус и центр. Проверить принадлежность остальных точек множества в кругу ограниченному окружностью(это легко т.к. есть центр и радиус) ну и выбрать комбинацию точек которая будет вмещать все точки множества и иметь минимальный радиус. Надо учесть что алгоритм проведения окружности таков, что если 2 точки имеют одну ординату то получится деление на ноль, чтобы избежать этого надо изменять порядок обхода тройки точек. Т.е. было А-Б-В. А.у=Б.у => переставляем местами Б и В и окружность идет не через А-Б-В, а через А-В-Б, если все точки на одной прямой то окружность провести вообще нелья(тоже надо учесть).
0
1 / 1 / 0
Регистрация: 18.03.2010
Сообщений: 24
18.06.2010, 17:31  [ТС]
а на прологе как? помогите пожалуйста...
0
Заблокирован
18.06.2010, 17:42
Виктория1988, помочь подразумевает что вы что-то пытались сделать сами. Описать ввод множества точек вы вполне можете самостоятельно - ввести 3 списка. Наверно написать правило проверки принадлежит ли одна точка окружности с данным центром и радиусом тоже сможете?
описать правило перебирающее элементы списков и каждый раз вызывающее указанное выше правило нетрудно(найдите функцию вывода списка и замените write на вызов правила - выглядеть будет примерно так, но принимать будет не 1 список а 3 списка). Найдите литературу по построении окружности по 3 точкам - там вроде бы 4 формулы всего(точно не помню) - формулы линейные и проблемы записать их на прологе не вижу. Если вы сделаете все что описано выше, то я помогу перебрать все комбинации из 3 точек и для каждой комбинации вызвать написаные вами правила (думаю тут могут возникнуть проблемы).

Добавлено через 2 минуты
Вот тема, где алгоритм написан на С++ (вдруг вам поможет)
С++, круг минимального радиуса
0
1 / 1 / 0
Регистрация: 18.03.2010
Сообщений: 24
18.06.2010, 18:03  [ТС]
Эх...и на этом спасибо.
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.06.2010, 18:21
rrrFer прав, Вы просто сделайте стандартные предикаты по считыванию и нахождению минимального элемента (да их и найти можно), а также предикат, который по трем точка находит радиус описанной окружности. Оказывается он находится очень просто:
R=abc/4S, а площадь находится по формуле Герона. Т.е потребуется всего 3 правила:
Prolog
1
2
3
r(X,_,X,_,X,_,_):-!,fail.
r(_,Y,_,Y,_,Y,_):-!,fail.
r(X1,Y1,X2,Y2,X3,Y3,R):-S=...
1
Заблокирован
18.06.2010, 18:52
кроме радиуса надо центр найти обязательно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2010, 18:52
Помогаю со студенческими работами здесь

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

Определить радиус и центр такой окружности, проходящей хотя бы через три точки множества точек, что минимальна разность по модулю количества точек, ле
Помогите с программой Условие: На геометрической плоскости дано множество точек. Координаты точек хранятся в текстовом файле. В первой...

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

Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами точек, внутри и снаружи.
Написать программный модуль для решения следующей задачи. Выбрать три различные точки из заданного множества точек на плоскости так,...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru