среда, 13 ноября 2013 г.

Программируем фракталы на Процессинге

Очень красивая программа генерирующая на экране различные деревья, когда вы водите мышкой по экрану. Автор: James Noeckel





Код программы:
float curlx = 0;
float curly = 0;
float f = sqrt(2)/2.0;
float deley = 10;
float growth = 0;
float growthTarget = -1;
  
void setup()
{
  size(900,450);
  /*addMouseWheelListener(new java.awt.event.MouseWheelListener() { 
    public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) { 
      mouseWheel(evt.getWheelRotation());
  }});*/
}
void draw()
{
  background(250);
  stroke(0);
  curlx += (radians(360./height*mouseX)-curlx)/deley;
  curly += (radians(360./height*mouseY)-curly)/deley;
  translate(width/2,height/3*2);
  line(0,0,0,height/2);
  branch(height/4.,17);
  growth += (growthTarget/10-growth+1.)/deley;
}
  
void mouseWheel(int delta)
{
  growthTarget += delta;
}
  
void branch(float len,int num)
{
  len *= f;
  num -= 1;
  if((len > 1) && (num > 0))
  {
    pushMatrix();
    rotate(curlx);
    line(0,0,0,-len);
    translate(0,-len);
    branch(len,num);
    popMatrix();
      
    len *= growth;
    pushMatrix();
    rotate(curlx-curly);
    line(0,0,0,-len);
    translate(0,-len);
    branch(len,num);
    popMatrix();
  }
} 


Мы видим также закомментированную строчку с использованием вызова Java-функции addMouseWheelListener(). Но если вы запустите эту программу из самой среды программирования Процессинг, то можете раскоментировать. Тогда программа будет реагировать на поворот колеса мыши. Что нам может оказаться интересным, так это то, как легко встраиваются Java-функции в Процессинг, наделяя его реальной мощью! Успехов в разборе кода.

Комментариев нет:

Отправить комментарий

| О книге для детей | Почему Процессинг? | Консультации по Skype | Онлайн-кружок |