Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Геометрия на плоскости   Найти похожие ветки 

 
Dyakon_Frost ©   (2005-06-02 05:30) [0]

У меня вопрос:

Дано N- количество точек. Точки заданы парой чисел (x[i],y[i]) и образуют множество. И меняется от 1 до N.
Вводим количество точек, их координаты и радиус (для всех точек один).
Из заданного множества точек на плоскости выбрать две различные точки так, чтобы окружности заданного радиуса с центром в этих точках содержали внутри себя одинаковое количество заданных точек.


 
Defunct ©   (2005-06-02 06:01) [1]

А где вопрос?


 
Dyakon_Frost ©   (2005-06-02 06:25) [2]

Вопрос: Как это реализовать? Причем желательно с выводом правельных точек на Canvas


 
Defunct ©   (2005-06-02 06:51) [3]

> Как это реализовать?

есть 2 пути:
1. Математический. (более точный)
2. Графический. (более простой)

В обоих случаях надо подсчитать количество принадлежащих каждой i-й окружности точек. Выбрать такое множество окружностей, у которых совпадает число принадлежащих им точек.


> Причем желательно с выводом правельных точек на Canvas

это уже обёртка к конфетке. Выводите эти точки хоть вместе с окружностями прямо на принтер.


 
alertus ©   (2005-06-02 08:30) [4]

Вот пример реализации:
procedure TForm1.Button1Click(Sender: TObject);
var
 q:array[0..49] of TPoint;
 i,j,k:integer;
 c:integer;
const
 R = 30; //радиус окружностей
 L = 200; //сторона квадрата, в котором все дело происходит
begin
 image1.Width:=L;
 image1.Height:=L;
 randomize;
 for i:=0 to 49 do begin
   q[i].X:=random(L);
   q[i].Y:=random(L);
 end;

 for i:=0 to 49 do begin
   image1.Canvas.Ellipse(q[i].X-2,q[i].Y-2,q[i].X+2,q[i].Y+2);
 end;

 for i:=0 to 49 do begin
   c:=0; //количество точек, лежащих в пределах R от i-ой точки
   for j:=0 to 49 do begin
     if i=j then continue;
     if sqrt(sqr(q[i].X-q[j].X)+sqr(q[i].Y-q[j].Y))<R then inc(c);
   end;
   listbox1.Items.Add("Номер точки: "+inttostr(i)+", точек в пределах R - "+inttostr(c));
 end;
end;

Нужна Форма, TButton, TImage, TListBox.
Нажимайте на кнопку и из полученного списка в TListBox"е выбирайте точки. Можно нарисовать окружности с заданным количеством точек внутри. Будет красиво.

А зачем такая задача??


 
Dyakon_Frost ©   (2005-06-02 08:35) [5]

Defunct - спасибо! Но пример было бы здорова!
alertus - спасибо за пример!

Курсовик такой!
Я весь день мучаюсь!



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
11-1101068644
Shamansky
2004-11-21 23:24
2005.06.29
Как в Delphi открыть dwg или dxf файлы


10-1094479321
Gavrila
2004-09-06 18:02
2005.06.29
"Нет доступа" при подключении к удаленному Com-серверу?


14-1117371273
Hypercube
2005-05-29 16:54
2005.06.29
Создание пиринговых сетей нового поколения


4-1114577998
bobah
2005-04-27 08:59
2005.06.29
Невидимый курсор мыши


14-1117623005
Pearled
2005-06-01 14:50
2005.06.29
Задачка для любителей математики