Nickolay.info. Программы. Laces

Программа генерирует кружевные узоры. Собственно, всё, что нужно, вот (см. в исходнике процедуру Button1Click):

  x:=y0-sign(x0)*sqrt(abs(b*x0-c));
  y:=a-x0;
  x0:=x; y0:=y;

Здесь sign - функция, определяющая знак числа, остальное на Паскале и понятно.

На рисование влияют коэффициенты A, B и C, задаваемые с полей формы, а также установленное бегунком число шагов рисования. Можно менять размеры картинки и сохранить ее в BMP. Прогресс генерации рисунка показывается в строке заголовка окна.

При перекомпиляции программы можно попробовать другую длину полей ввода A, B, C (у меня MaxLength=4). Минимальное (Min) и максимальное (Max) число шагов, а также малый (SmallChange) и большой (LargeChange) шаг прокрутки можно поменять в свойствах бегунка ScrollBar1. Цвет очередной точки, который меняется у меня операторами

  Color1:=Image1.Canvas.Pixels[cx,cy]+1000;
  Image1.Canvas.Pen.Color:=Color1;
  Image1.Canvas.Pixels[cx,cy]:=Color1;

также необязательно вычислять столь грубо (подумайте, почему все выходит в красных тонах?). Можно поиграть с интенсивностями красного, зеленого и синего, как сделано в проекте SuperBubs. Можно начать не с черного, а с белого и наоборот уменьшать интенсивность цветов. В общем, можно очень много чего.

Скриншоты (качество их ниже оригинала из-за формата JPEG!):
Рисунок Laces 1
результат рисования с параметрами по умолчанию
Рисунок Laces 2
параметры могут меняться до значения 9999
Рисунок Laces 3
один из мириадов возможных рисунков

Скачать:
Программа Laces (архив Laces.zip, 123 Кб)
Исходники программы Laces - проект Delphi 3 (архив Laces_src.zip, 5 Кб)

Если Вам удастся сгенерировать симпатичную "салфетку" - присылайте ее саму или параметры. Мне вот при написании этой небольшой доки понравились A=2, B=-2, C=212 и A=-20, B=-20, C=-500 при числе шагов от 50000 и размере картинки от 640x480.

См. также: Superbubs, все открытые программы

Рейтинг@Mail.ru
вверх гостевая; E-mail