Форум: "Потрепаться";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизГеометрия на плоскости Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c