Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Графіка в PascalABC

Реферат Графіка в PascalABC





і інші класифікації фракталів, наприклад поділ фракталів на детерміновані (алгебраїчні і геометричні) і недетермінірованние (стохастичні).


2.2 Реалізація трикутника


1) Відображається у вигляді трикутника, з чотирьох секцій, кожен трикутник має половину ширини і висоти оригіналу. Центральний трикутник інвертується і може розглядатися як отвір в зображенні. Кожен з трьох зовнішніх трикутників є зменшеною версією цілого малюнка з власними центральними отворами. Така схема повторюється нескінченно.


Малюнок 2.3


2) Алгоритм побудови

Існують різні методи побудови трикутника .Однією з них є використання теорії хаосу з трьома аттракторами, розташованими на трьох вершинах рівностороннього трикутника. При переході з поточної позиції в напрямку аттрактора пройдену відстань завжди становить відстань між поточною точкою і обраної вершиною.

Розглянемо кроки для побудови фрактала:

. Визначити три крапки.

. Вибрати стартову позицію.

. Випадково вибрати один з трьох атракторів.

. Перемістити поточну позицію на половину в напрямку позиції аттрактора і намалювати крапку.

. Повернутися до кроку 3.

) Малювання трикутника

Нам знадобитися три методи. Перший для генерації псевдо - випадкових чисел, які будуть використовуватися для визначення напрямку під час кожної ітерації. По - друге, нам необхідно зберегти три позиції рівностороннього трикутника, для цього будемо використовувати структуру Point. Нарешті, ще одна структура Point знадобитися для зберігання поточної позиції. Оголосимо трьох змінні: randomiser=new Random (); Point [] points;

private Point currentLocation;

Розмір трикутника повинен бути, як можна більше, щоб розглянути деталі Щоб визначити найбільший можливий розмір, ми повинні розглядати співвідношення між висотою і шириною будь-якого рівностороннього трикутника. Якщо припустити, що основу трикутника вирівнюється по горизонталі, ширина буде така ж, як довжина однієї зі сторін. Висота матиме ширину, помножена на половину квадратного кореня з трьох. Додамо метод, який розрахує співвідношення:


private double HeightWidthRatio ()

{Math.Sqrt (3)/2;

}

Наступний метод обчислює розмір трикутника, щоб помістити на формі:

private int SideLength ()

{height=(int) Math.Min (

(double) ClientSize.Width, ClientSize.Height/HeightWidthRatio ());

//віднімаємо 2 щоб трикутник примикав до країв. (int) height - 2;

}


Наступний метод буде обчислювати позиції кожного з трьох атракторів, кожен буде розташований у вершині трикутника. Ці значення будуть засновані на розмірі трикутника і медіані клієнтської області форми.

void SetPointLocations (int sideLength)

{

Point midPoint=new Point (ClientSize.Width/2, ClientSize.Height/2);=new Point [3]; [0]=new Point (midPoint.X

, midPoint.Y - (int) (sideLength * HeightWidthRatio ()/2)); [1]=new Point (midPoint.X - sideLength/2

, midPoint.Y + (int) (sideLength * HeightWidthRatio ()/2)); [2]=new Point (midPoint.X + sideLength/2

, midPoint.Y + (int) (sideLength * HeightWidthRatio ()/2));

}


Наступним завданням є створення методу (точніше двох) для розміщення точок.

void PlotPointLocations (Graphics g)

{(Point p in _points)

{(p, g);

}

} void PlotPoint (Point p, Graphics g)

{b=new SolidBrush (Color.Black) ;. FillRectangle (b, pX, pY, 1, 1);

}


Тепер напишемо методи, які використовуються в циклі алгоритмом для малювання фрактала. Метод DrawNextPoint буде контролювати цей процес викликаючи MoveTowardsRandomPoint raquo ;, за яким слідує виклик PlotPoint, щоб поставити крапку в поточній позиції. Нарешті, викликається метод Application.DoEvents для поновлення форми.

Метод MoveTowardsRandomPoint вибирає одну з трьох вершин використовуючи наш об'єкт randomizer.Он якраз і обчислює половину відстані між поточною позицією і вибраним аттрактором:

void DrawNextPoint (Graphics g)

{

MoveTowardsRand...


Назад | сторінка 5 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Використання програми Power Point для створення рекламних роликів
  • Реферат на тему: Медіани трикутника
  • Реферат на тему: Чудові точки трикутника
  • Реферат на тему: Особливості роботи з Power Point
  • Реферат на тему: Діяльність рекламного агентства GLOBAL POINT AGENCY