IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Множества Мандельброта и Жюлиа, собственно программа постороения
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской
Реальное имя: Игорь

Репутация: -  0  +


Здравия желаю, Товарищи!
Очевидно, эта тема уже обсуждалась, и я прочитал все касательно этих фракталов... НО. Результирующую программу мне так никто не предложил, а сам я еще не дорос, чтобы всю математику фрактала прописать самостоятельно в Паскале.

С множеством Мандельброта все понятно - я, наконец-то, достал информатика, и он дал мне готовую, полностью рабочую программу.
Как я понял, в множестве Мандельброта граница убегания постоянна, а затравочное число изменятся. Тогда в множестве Жюлиа наоборот: затравочное число постоянно, а граница убегания меняется. Верно? (Гсподи! Неужли я такое говорю? wacko.gif )

Тогда достаточно в процедуре рисования множества Мандельброта изменить итерационный процесс и получим множество Жюлиа? Вопрос только в том, как это сделать?
Вот текст процедуры рисования множества Мандельброта:

procedure Mandelbrot_Draw;
{ постpоение множества Мандельбpота }
var
i, j : Integer;
X_New, Y_New,
X_Old, Y_Old : Extended;
r, P, Q : Extended;
Color : Word;
Begin
for i:= 0 to GetMaxX do
for j:= 0 to GetMaxY do
begin
P:= P_min+i*d_p;
Q:= Q_min+j*d_q;
Color:= 0;
X_Old:= 0;
Y_Old:= 0;
repeat
X_New:= X_Old*X_Old - Y_Old*Y_Old + p;
Y_New:= 2*X_Old*Y_Old + q;
Inc (Color);
r:=Sqr(X_New) + Sqr(Y_New);
X_Old:= X_New;
Y_Old:= Y_New;
until (r >= M) or (Color >= GetMaxColor);
if r > M then PutPixel (i,j, Color) else PutPixel (i,j, 0);
if KeyPressed then
case ReadKey of
#27 : Exit;
#32 : PaletteCreate;
end;
end;
{ чистим буфеp клавиатуpы }
while KeyPressed do ReadKey;
End; { Mandelbrot_Draw }


(кстати, у меня работает почему-то быстрее, чем та, которую на нашел на этом форуме в теории)

Как я понял, итерационный процесс, это вот эта штука:

X_New:= X_Old*X_Old - Y_Old*Y_Old + p;
Y_New:= 2*X_Old*Y_Old + q;
Inc (Color);
r:=Sqr(X_New) + Sqr(Y_New);
X_Old:= X_New;
Y_Old:= Y_New;

Которую надо изменить.
Понятно дело придется так же поменять некоторые константы и переменные.
Помогите мне, пожалуйста, преобразовать ЭТУ программу, чтобы она рисовала множества и Мандельброта и Жюлиа. Пропишите за меня процедуру для Жюлиа и объясните, что еще где нужно поменять и как, чтобы все без глюков запускалось.
Мне надо завтра сдать эту задачу, иначе я себе аттестат испорчу.
Помогите, пожалуйста поскорее кто может! Плиз! Я очень надеюсь на вас!
А уж с интерфайсом выбора одного или другого множетсва я сам разберусь.

И еще одна мааленькая просьба.
Если кто-нибудь меня услышит и поможет, киньте пожалуйста мне СМСку <...> (Здесь не доска сообщений. Читай правила!)

Всем заранее спасибо!!

Вот код всей программы (Показать/Скрыть)



Спасибо за внимание! =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.10.2021 17:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name