Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2016, 22:35   #1
SpaceLama
 
Регистрация: 21.09.2016
Сообщений: 4
По умолчанию Заполнить окно квадратами (Delphi)

Всем здравствуйте! Вопрос вот в чем. Нужно заполнить форму по всей площади рандомно семью (7) квадратами, т.е. при каждом запуске - квадраты разной величины и на разных местах. Как это можно сделать?(на Delphi)
SpaceLama вне форума Ответить с цитированием
Старый 21.09.2016, 23:10   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Примерно так. Только надо доработать, чтоб квадраты не перекрывали друг друга.
После var Form1..
Код:
implementation
uses Math;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,X1,Y1,t:Integer;
begin
 for i:=1 to 7 do
  begin
   X1:=Random(Width);
   Y1:=Random(Height);
   t:=Random(Min(Width-X1,Height-Y1));
   Canvas.Rectangle(X1,Y1,X1+t,Y1+t);
  end;
end;

initialization
  Randomize;
end.
type_Oleg вне форума Ответить с цитированием
Старый 24.09.2016, 20:17   #3
SpaceLama
 
Регистрация: 21.09.2016
Сообщений: 4
Печаль

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Примерно так. Только надо доработать, чтоб квадраты не перекрывали друг друга.
После var Form1..
Код:
implementation
uses Math;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,X1,Y1,t:Integer;
begin
 for i:=1 to 7 do
  begin
   X1:=Random(Width);
   Y1:=Random(Height);
   t:=Random(Min(Width-X1,Height-Y1));
   Canvas.Rectangle(X1,Y1,X1+t,Y1+t);
  end;
end;

initialization
  Randomize;
end.
В этом то и проблема. К тому же этот алгоритм не совсем корректен, так как рандом может выбрать самую правую или самую нижнюю точку и в этом случае квадрат не отрисуется. Нужно вводить дополнительные условия, но я по не докумекал какие
SpaceLama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с квадратами на паскале Nil09511 Помощь студентам 7 11.11.2014 19:49
Аппроксимация функции наименьшими квадратами ivan.tiran Общие вопросы C/C++ 0 27.11.2013 17:59
Передать из Delphi в Excel и заполнить таблицу! KORT Общие вопросы Delphi 3 20.11.2012 14:44
как заполнить StringGrid (Delphi) kaa1977 Помощь студентам 1 13.11.2009 08:40