Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Алгоpитм постpоения множества мандельбpота

(Sergey Potapenko 2:463/308.9)

Вот деpжи. Пpогpаммка маленькая и я дyмаю достаточно понятная. Пpавда pемки я неставил. Когдато я честно содpал её из какого-то жypнала.

=== Начало fractal.c ===
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <dos.h>
#include <conio.h>

#define COLOR 100
#define MAS 0.9

typedef struct complex Complex;

void Sqr(Complex *z)
{
  Complex Fool=*z;

  z->x=Fool.x*Fool.x-Fool.y*Fool.y;
  z->y=2*Fool.x*Fool.y;
}

char GetColor(Complex zInit)
{
  Complex z=zInit;
  int Color=COLOR;

  while(z.x*z.x+z.y*z.y <= 4 && Color)
  {
    Sqr(&z);

    z.x+=zInit.x;
    z.y+=zInit.y;

    Color--;
  }

  return Color;
}

void DrawMandelSet(double xMin,double xMax,double yMin,double yMax)
{
  double xInc,yInc;
  Complex zInit;

  int y,x;

  char far *Screen=(char far *)MK_FP(0xa000,0);

  zInit.y=yMin;

  xInc=(xMax-xMin)/320;
  yInc=(yMax-yMin)/200;

  for(y=0;y<200;y++,zInit.y+=yInc)
  {
    zInit.x=xMin;

    for(x=0;x<320;x++,zInit.x+=xInc,Screen++)
    *Screen=GetColor(zInit);
  }
}

void main(void)
{
  _AX=0x13;geninterrupt(0x10);

  DrawMandelSet(-2*MAS,1*MAS,-1*MAS,1*MAS);

  getch();

  _AX=0x03;geninterrupt(0x10);
}

[ Назад ] [ Оглавление ] [ Далее ]

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

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог