Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal]Графика


Автор: ford 22.5.2008, 20:49
Даны 2 конечных непересекающихся множества точек на плоскости. Определить окружность, проходящую через k^! (k≥3) точек каждого из множеств. smile 

Автор: Wedafl 24.5.2008, 02:39
 Решение нужно именно на паскале? или может быть можно и на дельфи
 ИМХО задача чисто математическая, вообще рисовать необязательно, найти надо уравнение окружности.

Код

Решение
Пусть M это первое множество, M2 второе множество.
Тогда из уравнения окружности получим уравнение
    (XMn - X)^2 + (YMn - Y)^2 = Z

Где:
 XMn - абсцисса точки n из множества M
 YMn - ордината точки n из множества M 
 X - абсцисса центра искомой окружности
 Y - ордината центра искомой окружности
 Z - квадрат радиуса искомой окружности

Для M мы можем составить множество МУ систем уравнений 
вида
 (XMn  - X)^2 + (YMn  - Y)^2 = Z
 (XMn1 - X)^2 + (YMn1 - Y)^2 = Z
 (XMn2 - X)^2 + (YMn2 - Y)^2 = Z
Где количество элементов равно (N^3 - N)/3

Решив MY получим множество уравнение окружности МО
  (X - A)^2 + (Y - B)^2 = R^2 
Где
 A = X; B = Y; R = sqrt(Z) из MУ
Если МО не пусто то:
 Если K>3 то попытаемся найти еще К-3 точек из М удовлетворяющих какому либо уравнению из МО,
 те уравнения  для которых не найдено таких точек исключаем из МО. 
 Пытаемся найти еще К точек из М1 удовлетворяющих какому либо уравнению из МО, те уравнения
 для  которых не найдено таких точек исключаем из МО. 
 Множество МО будет содержать искомые уравнения окружностей, если множество пусто то для данных
 условий невозможно построить окружность.  


Ну а нарисовать точки и окружность это уже дело техники smile 



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)