C для початківців малювання графіка функції, c для початківців

Що ж. Відразу скажу - Я не знаю чому x збільшується на дробове число. При моїх спробах збільшувати його на одиницю графік виходив дуже навіть не гладким і це було погано, тому залишив так як відшукав в просторах інтернету. Щоб почати малювати лінію з якоїсь точки можна буде визначити початкову точку, для чого була використана функція moveto Сам графік будується за допомогою циклічного обчислення, адже для кожного значення x потрібно отримати відповідний йому y. значить, щоб не писати всі ці вирази вручну потрібно використовувати цикл.

Всередині циклу викликається функція lineto. всередині якої написані такі параметри, які можуть збити з пантелику бідного новачка, але лякатися не варто.

  • lineto креслить лінію від поточної позиції до, але не включаючи в неї, зазначеної точки.

Іншими словами при обчисленні значення y ми будемо отримувати деякі точки, а щоб отримати графік, потрібно ці точки з'єднувати лініями.
x * 50 + getmaxx () / 2 Означає, що первісна точка x зміщена до центру екрану по осі x. Цифра 50 тут потрібна тільки для того щоб розширити мальованої графік. Неважко спробувати її змінити або прибрати, щоб побачити еффект.Когда я намагався прибрати цю 50 і додавати до x одиницю замість 0.02 графік малювався жахливо, хоча якщо подумати, то то що написано тут або те що хотів написати я зводиться до того що x додається на одиницю, але щось ось в цьому є чого я зрозуміти поки що на жаль не можу. Точніше розумію, але розумію якось туманно, в повному обсязі і складно для роз'яснень

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

Дякуємо! пишіть далі

Чим менше у нас Х. тим більше точок на лінії ми отримуємо, відповідно більше точок = точніше графік =)

вірніше більше точок з координатами (x * 50 + getmaxx () / 2, getmaxy () / 2 (y * 20)) помістяться на моніторі.

тут вибрано що в одиничному відрізку по Ox поміщається 50 пікселів. а крок за параметром обраний таким чином щоб для кожного пікселя осі х (0.02 * 50 = 1 піксель) розраховувався y.

#include не знаходить пише то помилка що робити. 😥

цей приклад для Borland C ++ 3.1
напевно потрібно ще один приклад шукати.

Не працює. Багато помилок.

Напевно інший компілятор, тому не працює.
А warning - це попередження, а не помилка.

У мене BC и все працює

Напевно інший компілятор, тому не працює. Мій цей приклад тільки для BC ++ 3.1

Ось наприклад, ви оголосили змінну флоат. І передаєте її значення в функцію moveto (), але ця функція може приймати тільки цілі значення. Теж саме з функцією lineto ()

Зручний код. І для Dev-C придався (версія 4.9.9.2)

Дозволю собі дати пояснення по коду:

Пам'ятаємо, нам потрібен графік функції y = x * x, і в коді виконується обчислення y = x * x.

Що це за «додаткові елементи»?

Справа в тому, що система координат графічного вікна строго фіксована, вона відповідає тільки першій чверті математичної декартовій системі. Це означає що на екрані, без «додаткових елементів» ми зможемо дивитися тільки на одну гілку графіка - в позитивній частині осі ОХ. (Звичний, математичний центр системи декартових координат на екрані розміщується в верхньому лівому кутку графічного вікна).

І при цьому графік буде дзеркально відображений вниз - з тієї причини, що у моніторів вважається зворотне (в порівнянні з математичної) напрямок осі ОУ.

Отже: щоб подолати технічні обмеження «комп'ютерної системи координат» потрібно:

1) повернути вісь ОУ в зворотну сторону (просто помножити У на -1)

2) зрушити центр в середину екрану (додати до Х і У половину від ширини і висоти вікна)

3) задати масштаб побудови графіка (застосувати коефіцієнти множення для Х і У).

Ось тепер думаю все зрозуміло:

getmaxx () - функція, яка визначає ширину графічного вікна,

getmaxy () - функція, яка визначає висоту графічного вікна.

50 - множник масштабу по осі ОХ,

20 - множник масштабу по ОУ.

А знак мінус, перед значенням (у * 20), орієнтує графік на екрані у звичному для людини напрямку.

Схожі статті