Advertisement
Guest User

Untitled

a guest
Sep 25th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. using System.Drawing;
  2. using System;
  3.  
  4. namespace Fractals
  5. {
  6. internal static class DragonFractalTask
  7. {
  8. public static void DrawDragonFractal(Pixels pixels, int iterationsCount, int seed)
  9. {
  10. /*
  11. Начните с точки (1, 0)
  12. Создайте генератор рандомных чисел с сидом seed
  13.  
  14. На каждой итерации:
  15.  
  16. 1. Выберите случайно одно из следующих преобразований и примените его к текущей точке:
  17.  
  18. Преобразование 1. (поворот на 45° и сжатие в sqrt(2) раз):
  19. x' = (x · cos(45°) - y · sin(45°)) / sqrt(2)
  20. y' = (x · sin(45°) + y · cos(45°)) / sqrt(2)
  21.  
  22. Преобразование 2. (поворот на 135°, сжатие в sqrt(2) раз, сдвиг по X на единицу):
  23. x' = (x · cos(135°) - y · sin(135°)) / sqrt(2) + 1
  24. y' = (x · sin(135°) + y · cos(135°)) / sqrt(2)
  25.  
  26. 2. Нарисуйте текущую точку методом pixels.SetPixel(x, y)
  27.  
  28. */
  29.  
  30. var random = new Random(seed);
  31. for (var i = 0; i < iterationsCount; i++)
  32. {
  33. var nextNumber = random.Next(10);
  34.  
  35.  
  36. }
  37.  
  38. }
  39.  
  40. public static double GetFirstXTransformation(double x, double y)
  41. {
  42. return (x * Math.Cos(Math.PI / 4) - y * Math.Sin(Math.PI / 4)) / Math.Sqrt(2);
  43. }
  44.  
  45. public static double GetFirstYTransformation(double x, double y)
  46. {
  47. return (x * Math.Sin(Math.PI / 4) + y * Math.Cos(Math.PI / 4)) / Math.Sqrt(2);
  48. }
  49.  
  50. public static double GetSecondXTransformation(double x, double y)
  51. {
  52. return (x * Math.Sin(Math.PI * 0.75) + y * Math.Cos(Math.PI * 0.75) / Math.Sqrt(2) + 1;
  53. }
  54.  
  55. public static double GetSecondYTransformation(double x, double y)
  56. {
  57. return (x * Math.Sin(Math.PI * 0.75) + y * Math.Cos(Math.PI * 0.75)) / Math.Sqrt(2);
  58. }
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement