Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
gavrichenko
7 / 7 / 3
Регистрация: 20.07.2012
Сообщений: 132
1

Фрактал по типу множества Жюлиа

20.07.2012, 19:06. Просмотров 5478. Ответов 44
Метки нет (Все метки)

Здравствуйте уважаемые программисты. Проверьте пожалуйста и укажите на ошибки. Нужно получить фрактал по типу множества Жюлиа. Функция f(x)=ch z. Выделил действительную и мнимую часть. Получилось следующее: Re: (e^x+e^(-x))/2*cos y; Im: (e^x-e^(-x))/2*sin y. Но что-то тут не ладится. Помогите плиз.
P.S. Что должно получиться смотрите на прикреплённый рисунок.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
PROGRAM Zadanie_14c;
Uses Graph,Crt;
CONST
  iter=50;
  max=16;
TYPE
  TComplex=Record
            x:Real;
            y:Real;
           End;
VAR
  z,t,c:TComplex;
  x,y,n:Integer;
  Cancel:Boolean;
  gd,gm:Integer;
  mx,my:Integer;
BEGIN
 ClrScr;
 Cancel:=False;
 Randomize;
 gd:=Detect;
 InitGraph(gd,gm,'');
 mx:=GetMaxX div 2;
 my:=GetMaxY div 2;
 For y:=-my To my Do
  For x:=-mx To mx Do
    begin
      n:=0;
      z.x:=x*0.005;
      z.y:=y*0.005;
      c.x:=0.11;
      c.y:=-0.66;
      While (sqr(z.x)+sqr(z.y)<max) and (n<iter) Do
       begin
         t:=z;
         {ch z}
         z.x:=(exp(t.x)+exp(-t.x))/2*cos(t.y);
         z.y:=(exp(t.x)-exp(-t.x))/2*sin(t.y);
         Inc(n);
         If KeyPressed Then Cancel:=True;
       end;
      If n<iter Then PutPixel(mx+x,my+y,8+(n mod 16));
      If Cancel Then Exit;
    end;
 ReadKey;
 CloseGraph;
END.
0
Миниатюры
Фрактал по типу множества Жюлиа  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 19:06
Ответы с готовыми решениями:

Компьютерная графика - Фрактал Ньютона
Задача. Реализовать программу, строящую фрактал с заданными границами расчета...

Сформировать множества А и В по заданному числу элементов для каждого множества
2)Сформировать множества А и В, базовый тип которых -70..30, по заданному числу...

Множества. Из множества латинских букв выделить множество символов, не входящих в ваше имя
из множества латинских букв выделить множество состоящее из символов не...

Множества: Задано множество целых чисел C. Создать два множества, содержащие числа больше 5 и меньше 5.
Задано множество целых чисел C. Создать два множества, содержащие числа больше...

Построение множества Жюлиа
Постройте множество Жюлиа для функции h(z)=f(z)*g(z), где f(z)=z2+0,1+0,1i и...

44
Puporev
Модератор
55066 / 42330 / 29233
Регистрация: 18.05.2008
Сообщений: 100,027
22.07.2012, 07:54 41
Да это само собой, я пишу просто

Pascal
1
2
3
4
5
6
7
8
 sh:=(exp(t.y)-exp(-t.y))/2;
 ch:=(exp(t.y)+exp(-t.y))/2;
 zn:=sqr(ch)-sqr(cos(t.x));
  if zn<>0 then//точки где знаменатель=0, исключаю
    begin
      z.x:=(sin(t.x)*cos(t.x))/zn;
      z.y:=ch*sh/zn;
   end;
Просто данный алгоритм с использованием этих формул почему-то формирует горизонтальную цепочку узоров(см. рисунок), а вместо вертикальной формирует круг стартового цвета, который перекрывает горизонтальную цепочку, при чем все это в узком диапазоне различных коэффициентов. (рис 2.).
Если взять разные коэффициенты по х и y, то рисует только горизонтальные при чем не так как нужно.(рис 3).
0
Миниатюры
Фрактал по типу множества Жюлиа   Фрактал по типу множества Жюлиа   Фрактал по типу множества Жюлиа  

vetvet
Змеюка одышечная
9845 / 4586 / 177
Регистрация: 04.01.2011
Сообщений: 8,570
22.07.2012, 15:29 42
По-моему, ещё и http://www.cyberforum.ru/cgi-bin/latex.cgi?0\lt y\lt 2\pi лучше взять, т.е.
http://www.cyberforum.ru/cgi-bin/latex.cgi?x\ne \pi k \wedge y\ne 2\pi n,\\ k,n\in Z.

Не по теме:

Забыла, что на множестве комплексных чисел гиперфункции и экспонента тоже периодическими являются.

0
Puporev
Модератор
55066 / 42330 / 29233
Регистрация: 18.05.2008
Сообщений: 100,027
22.07.2012, 15:37 43
Сегодня пол дня читал про множества Мандельброта и Жулиа и понял что дальше разжеванного z^2+c с моими познаниями в математике лучше не лезть.
0
vetvet
Змеюка одышечная
9845 / 4586 / 177
Регистрация: 04.01.2011
Сообщений: 8,570
22.07.2012, 15:52 44
Цитата Сообщение от Puporev Посмотреть сообщение
Сегодня пол дня читал про множества Мандельброта и Жулиа и понял что дальше разжеванного z^2+c с моими познаниями в математике лучше не лезть.
Аналогично. Ибо и мои познания в функциональном анализе близки к 0.
Полагаю, что просто поменять функцию в готовом коде недостаточно. Там в зависимости от используются разные оценки расстояния и выбор границ рассматриваемого прямоугольника, и даже количества итераций.
0
Puporev
Модератор
55066 / 42330 / 29233
Регистрация: 18.05.2008
Сообщений: 100,027
22.07.2012, 15:53 45
Цитата Сообщение от vetvet Посмотреть сообщение
Полагаю, что просто поменять функцию в готовом коде недостаточно.
Истинно так.
0
22.07.2012, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2012, 15:53

Множество Жюлиа
Что именно нужно исправить в данном коде, чтобы он заработал на PascalABC.NET?...

фрактал Леви
помогите перевести код в PABC.NET 3.0, пожалуйста. заранее спасибо uses CRT,...

Фрактал (множество) Жюлиа
Привет всем! Достаточно срочно ищется реализация фрактала Жюлиа на с++, может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru