Advertisement
FokaKefir

fraktál

May 21st, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. #include <graphics.h>
  2. #include <cstdio>
  3. #include <iostream>
  4. #include <math.h>
  5.  
  6. #define M_PI 3.14159265358979323846
  7. using namespace std;
  8.  
  9. //KOCH
  10. void koch_fraktal(int h, int k, int szog){
  11.     if(k==0){
  12.         int x=round(h*cos(szog*M_PI/180));
  13.         int y=round(h*sin(szog*M_PI/180));
  14.         linerel(x, y);
  15.     }
  16.     else{
  17.         koch_fraktal(h/3, k-1, szog);
  18.         szog-=60;
  19.         koch_fraktal(h/3, k-1, szog);
  20.         szog+=120;
  21.         koch_fraktal(h/3, k-1, szog);
  22.         szog-=60;
  23.         koch_fraktal(h/3, k-1, szog);
  24.     }
  25. }
  26.  
  27. //FA
  28. void fa_fraktal(int n, double szog, double h){
  29.         if(n==0)
  30.             return;
  31.         //Sleep(100);
  32.         int x=round(h*cos(szog*M_PI/180));
  33.         int y=round(h*sin(szog*M_PI/180));
  34.         linerel(x, y);
  35.         int x1=getx();
  36.         int y1=gety();
  37.         fa_fraktal(n-1, szog-45, h/(1.5));
  38.         moveto(x1, y1);
  39.         fa_fraktal(n-1, szog+45, h/(1.5));
  40. }
  41.  
  42. //MIKOWSKI
  43. void mink_fraktal(int n, int szog, int h){
  44.     if(n==1){
  45.         int x=round(h*cos(szog*M_PI/180));
  46.         int y=round(h*sin(szog*M_PI/180));
  47.         linerel(x, y);
  48.     }
  49.     else{
  50.         mink_fraktal(n-1, szog, h/4);
  51.         szog+=90;
  52.         mink_fraktal(n-1, szog, h/4);
  53.         szog-=90;
  54.         mink_fraktal(n-1, szog, h/4);
  55.         szog-=90;
  56.         mink_fraktal(n-1, szog, h/4);
  57.         //marad a szog
  58.         mink_fraktal(n-1, szog, h/4);
  59.         szog+=90;
  60.         mink_fraktal(n-1, szog, h/4);
  61.         szog+=90;
  62.         mink_fraktal(n-1, szog, h/4);
  63.         szog-=90;
  64.         mink_fraktal(n-1, szog, h/4);
  65.     }
  66.  
  67. }
  68.  
  69.  
  70. //HOPEHELY
  71. void hopehely_rajzol(int h){
  72.     int x1=getx();
  73.     int y1=gety();
  74.  
  75.     int szog=-45;
  76.  
  77.     for(int i=0;i<4;i++){
  78.  
  79.         int x=round(h*cos(szog*M_PI/180));
  80.         int y=round(h*sin(szog*M_PI/180));
  81.         linerel(x, y);
  82.         szog-=90;
  83.         moveto(x1, y1);
  84.     }
  85. }
  86. void hopehely(int n, int h){
  87.     if(n==0)
  88.         return;
  89.     hopehely_rajzol(h);
  90.     int x1=getx();
  91.     int y1=gety();
  92.     int szog=0;
  93.     for(int i=0;i<4;i++){
  94.  
  95.         int x=round(h*cos(szog*M_PI/180));
  96.         int y=round(h*sin(szog*M_PI/180));
  97.         linerel(x, y);
  98.         moveto(x1, y1);
  99.         x=round(h/2*cos(szog*M_PI/180));
  100.         y=round(h/2*sin(szog*M_PI/180));
  101.         linerel(x, y);
  102.         hopehely(n-1, h/3);
  103.         moveto(x1, y1);
  104.         szog-=90;
  105.     }
  106. }
  107.  
  108. int main()
  109. {
  110.     initwindow(1800,1000, "ablak");
  111.     //koch gorbe
  112.     /*
  113.     moveto(100, 900);
  114.     koch_fraktal(2000, 6, 0);
  115.     */
  116.  
  117.     //fa gorbe
  118.     /*
  119.     moveto(700, 900);
  120.     fa_fraktal(15, -90, 300);
  121.     */
  122.  
  123.     //mikowski gorbe
  124.     /*
  125.     moveto(100, 500);
  126.     mink_fraktal(5, 0, 1600);
  127.     */
  128.     getch();
  129.     closegraph();
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement