НГУ

Форумы НГУ
Текущее время: Вт ноя 13, 2018 7:24 am

Часовой пояс: UTC + 7 часов




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: MetaPost и фракталы
СообщениеДобавлено: Пн фев 27, 2006 3:01 pm 
Не в сети
Непрерывный писатель

Зарегистрирован: Чт окт 31, 2002 1:18 pm
Сообщения: 5207
Откуда: Евгений
Добрый день

Фрактальные лесопосадки: pdf

MetaPostиспользуется для рисования не сложных картинок для вывода на печать.

Есть идея попробовать с помощью этой технологии порисовать фрактальные изображения - исключительно для красоты. Необходимо что-то вроде нарисованного уже "леса" (векторные рисунки). Что посоветуете?

Код картинки ниже.

Код:
beginfig(1) ;
  u:=1mm; branchrotation := 50;
  offset := 180-branchrotation;
  thinning := 0.7;
  shortening := 0.8;
  def drawit(expr p, linethickness) =
    draw p withpen pencircle scaled linethickness;
  enddef;
  vardef tree(expr A,B,n,size) =
    save C,D,thickness; pair C,D;
    thickness := size;
    C := shortening[B, A rotatedaround(B,
      offset+uniformdeviate(branchrotation))];
    D := shortening[B, A rotatedaround(B,
      -offset-uniformdeviate(branchrotation))];
    if n>0:
      drawit(A--B, thickness);
      thickness := thinning*thickness;
      tree(B, C, n-1, thickness);
      tree(B, D, n-1, thickness);
    else:
      drawit(A--B,thickness);
      thickness := thinning*thickness;
      drawit(B--C, thickness);
      drawit(B--D, thickness);
    fi;
  enddef;

  numeric nbr,nx,ny,ell,size;
  nx:=10;ny:=5;
  pair A;
  for ix:=1 upto nx:
    for iy:=1 upto ny:
      nbr:=4+uniformdeviate 5;
      ell:=nbr*u;
      x:=ix*(1+1/20*normaldeviate);
      y:=iy*(1+1/20*normaldeviate);
      A:=(20u*(x+y*sqrt(2)/2),20u*y*sqrt(2)/2);
      size:=ell/5;
      show ix,iy,A,ell,nbr,size;
      tree(A, A+(0,ell), nbr, size);
    endfor;
  endfor;
endfig;
end.


Скопируйте код в файл tree.mp и скажите mpost на него, а затем mptopdf на результат tree.1

С уважением Евгений


P.S. Если картинок будет достаточно много, то можно в соавторстве попробовать написать статью в журнал LinuxFormat вида: MetaPost и фракталы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 01, 2006 8:33 pm 
Не в сети
Опытный автор

Зарегистрирован: Сб сен 01, 2001 7:00 am
Сообщения: 471
Данный скрипт строит деревья, как некоторые рандомизированные L-Sytem'ы.

На сайте FracInt есть пособие по L-Sytem фракталам с примерами.

Векторной графикой, в т.ч. и с помощью matepost, также можно рисовать
самоподобные кривые и деревья;
некоторые множества Жулиа;
и некоторые предельные множества Клейновых групп.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 02, 2006 8:38 pm 
Не в сети
Опытный автор

Зарегистрирован: Сб сен 01, 2001 7:00 am
Сообщения: 471
Кстати, вот несколько сайтов о незаслуженно забытых в российской части интернета предельных множествах Клейновых групп:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 02, 2006 10:41 pm 
Не в сети
Непрерывный писатель

Зарегистрирован: Чт окт 31, 2002 1:18 pm
Сообщения: 5207
Откуда: Евгений
Спасибо - поразбираюсь.

С уважением Евгений


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 7 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB