Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
dmal
7 / 7 / 1
Регистрация: 19.02.2013
Сообщений: 140
#1

Фракталы - C++

24.03.2013, 13:25. Просмотров 1173. Ответов 3
Метки нет (Все метки)

Нашел пример кода для рисования снежинки коха и чуть переделал. Но рисует он снежинку как на первом рисунке.
Как построить такую, как на втором рисунке?

C++
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
class KochSnowflake{
    private:
       double t, x, y, p;
       long k;
       long itter;
 
    public:
      inline void Draw(int mx, int my, int rad, TImage *MyImage);
};
 
inline void KochSnowflake::Draw(int mx, int my, int rad, TImage *MyImage){
 
//mx - Ширина окна
//my - Высота окна
//rad - Ширина окна
 
  mx /= 4;       
  my /= 2;
  rad /= 2;
 
  itter = 50000;
 
  Randomize;
  x = 0.0;
  y = 0.0;
  for(k = 1; k <= itter; k++){
    p = random(2);
    t = x;
    if(p <= 0.5){
      x =  0.5 * x + 1 / (2 * pow(3, 0.5)) * y;
      y =  1 / (2 * pow(3, 0.5)) * t - 0.5 * y;
    }
    else{
      x = 0.5 * x - 1 / (2 * sqrt(3)) * y + 0.5;
      y = -1 / (2 * sqrt(3)) * t - 0.5 * y + 1 / (2 * sqrt(3));
    }
    MyImage->Canvas->Pixels[mx + int(rad * x)][my + int(rad * y)] = (TColor) RGB(150, 0, 100);
    MyImage->Canvas->Pixels[mx + int(rad * x)][my - int(rad * y)] = (TColor) RGB(150, 0, 100);
  }
}
Миниатюры
Фракталы  
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 13:25     Фракталы
Посмотрите здесь:

Фракталы Delphi
Фракталы C++
Delphi Фракталы
OpenGL Фракталы
фракталы C++
Фракталы Delphi
Фракталы Lisp
C++ Фракталы, turtle-метода
Фракталы Остров Минковского C++
C++ Перевод кода на с++ с паскаля. Фракталы: Кривая Коха
C++ Фракталы на с++
C# Фракталы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 14:11     Фракталы #2
С помощью рекурсии
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
24.03.2013, 14:38     Фракталы #3
Цитата Сообщение от dmal Посмотреть сообщение
p = random(2);
это что такое.
Есть подозрение, что оно и создаёт ассиметрию. Т.к. принимает значени от 0 до 2.
dmal
7 / 7 / 1
Регистрация: 19.02.2013
Сообщений: 140
24.03.2013, 15:22  [ТС]     Фракталы #4
Цитата Сообщение от sovaz1997 Посмотреть сообщение
С помощью рекурсии
а подробнее можно?
Yandex
Объявления
24.03.2013, 15:22     Фракталы
Ответ Создать тему
Опции темы

Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru