Алгоритм построения простейшего множества Жюлиа - C#

Узнай цену своей работы

Формулировка задачи:

Заранее прошу прощения, если не там пишу..просто действительно нужна помощь. Прошу помочь с созданием простейшего алгоритма построения множества Жюлиа на языке C#(по предложенному алгоритму из книги Пайтгена и Рихтера "Красота фракталов"). Если кто-то может помочь или просто что-то посоветовать отпешитесь пожалуйста. Заранее благодарю. removed@mail.ru

Решение задачи: «Алгоритм построения простейшего множества Жюлиа»

textual
Листинг программы
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <math.h>
 
int main()
{
HWND hWnd = GetConsoleWindow();
HDC hDC = GetDC (hWnd);
int Nx;
int Ny;
int k;
double a=640*0.6;
double b=480*0.6;
double Xk;
double Yk;
double Xk1;
double Yk1;
double Xmin=-2;
double Ymin=-2;
double Xmax=2;
double Ymax=2;
double dX=(Xmax-Xmin)/(a-1);
double dY=(Ymax-Ymin)/(b-1);
 for (Nx=-10;Nx<=a-1;Nx++)
  for (Ny=-10;Ny<=b-1;Ny++)
  {
   Xk=Xmin+Nx*dX;
   Yk=Ymin+Ny*dY;
   k=0;
   while (k<20)
   {
   k=k+1;
   Xk1=2*Xk/3+(Xk*Xk-Yk*Yk)/(3*(Xk*Xk+Yk*Yk)*(Xk*Xk+Yk*Yk));
   Yk1=2*Yk/3-(2*Xk*Yk)/(3*(Xk*Xk+Yk*Yk)*(Xk*Xk+Yk*Yk));
   Xk=Xk1;
   Yk=Yk1;
   }
    if (sqrt((Xk-1)*(Xk-1)+Yk*Yk)<1)
    SetPixel(hDC, Nx,Ny, RGB(0,0,255)); else
     if (sqrt((Xk+1/2)*(Xk+1/2)+(Yk-0.866)*(Yk-0.866))<1)
     SetPixel(hDC, Nx,Ny, RGB(0,255,0)); else
      if (sqrt((Xk+1/2)*(Xk+1/2)-(Yk+0.866)*(Yk+0.866))<1)
      SetPixel(hDC, Nx,Ny, RGB(255,0,0));
    }
    std::cin.get();
}
простейшее в Паскале ABC, думаю, перевести в Си не составит особого труда
uses crt,GraphABC;
const
  n=255;
  max=10;
var
  z,z1,c: complex;
  i,ix,iy: integer;
begin
  cls;
  SetWindowSize(400,300);
  c:=(0.6,0.9);
  for ix:=0 to WindowWidth-1 do
  for iy:=0 to WindowHeight-1 do
  begin
    z:=0.015*(ix-200,iy-140);
    for i:=1 to n do
    begin
      z1:=0.5*z*z+c;
      if abs(z1)>max then break;
      z:=z1;
    end;
    if i>=n then SetPixel(ix,iy,clGreen)
      else SetPixel(ix,iy,RGB(255-i,255-i,255));
  end;
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы