Mundarija:

Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): 8 qadam
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): 8 qadam

Video: Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): 8 qadam

Video: Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): 8 qadam
Video: Grafik dizayn darsidan lavhalar 2024, Noyabr
Anonim
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism)
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism)

Matematika, ko'pchiligingiz uchun foydasiz ko'rinadi. Kundalik hayotimizda eng ko'p ishlatiladigan - qo'shish, ayirish, ko'paytirish va bo'lish. Ammo, agar siz dastur yordamida yaratishingiz boshqacha. Qancha ko'p bilsangiz, shunchalik ajoyib natijaga erishasiz.

1 -qadam: harakat va funktsiya

Sizga ta'mingizni oshirish uchun sizga noma'lum bir nechta rasmlarni ko'rsatishga ijozat bering.

Bu nima? Endi bu savolni birinchi bo'lib saqlang va siz bilasiz va undan foydalanasiz.

Oxirgi bobda biz statik grafikani dinamikaga aylantira oladigan funktsiyalarni sozlash va funktsiyalarni chizishni o'rgandik. Biroq, bu harakat formati juda oddiy. Biz o'z grafikamizni o'ziga xos belgilar bilan ishlatish uchun ilgari o'zlashtirgan funktsional bilimlarimizdan foydalanamiz.

Yuqoridagi rasmlardan nechta funktsiyani taniy olasiz? Ularning harakat bilan qanday aloqasi bor? Keling, undan kvadrat funktsiyani olaylik, tasodifiy ba'zi parametrlarni qo'shamiz va nima bo'lishini ko'ramiz. Masalan, y = x² / 100.

Funktsiya tasviri shunday ko'rinadi. Quyidagi kodni nusxa ko'chiring.

[cceN_cpp theme = "tong"] suzuvchi x, y; void setup () {size (300, 300); fon (0); x = 0; } void draw () {urish (255); strokeWeight (2); y = kuch (x, 2) / 100.0; // Pow funktsiyasi belgilangan raqamning ninchi kuchiga qaytadi. (x, 2) x ning kvadratini ifodalaydi. Birinchi parametr - asosiy raqam, ikkinchisi - indeks. nuqta (x, y); x ++; } [/cceN_cpp]

Yugurish effekti

Keyin sin funksiyasini tanlang. Formula: y = 150 + sin (x).

Quyidagi kodni nusxalash.

[cceN_cpp theme = "tong"] suzuvchi x, y; void setup () {size (300, 300); fon (0); x = 0; } void draw () {y = balandlik/2 + sin (radianlar (x)) * 150; // Funktsiya radian x ni burchakka aylantiradi. x ++; qon tomir (255); strokeWeight (2); nuqta (x, y); } [/cceN_cpp]

Yugurish effekti

Bu kodni ishlatgandan keyin olingan grafik. Va bu ularning harakat izlari. Birinchisiga qaraganda, natija aniq. Funktsiya tasviri aslida harakat iziga mos keladi! Bu etarlicha sodda. Siz faqat x, y qiymatini koordinataga almashtirishingiz kerak. Biz chizgan oldingi trek y = x² / 100 funktsiyasi grafigiga teng. Ikkinchi trek y = 150 + sin (x) funktsiyasi grafigiga teng. Ammo dasturda y o'qining yo'nalishi qarama -qarshi. Shunday qilib, asl grafik bilan taqqoslaganda, yo'l teskari bo'ladi. O'ylaymanki, sizning boshingizda uzoq vaqtdan beri o'ylanib yurgan ba'zi qiyin savollar darhol hal qilinadi. Ajablanarlisi shundaki, biz ilgari o'rgangan bu ajoyib funktsiyalarni grafik harakatini boshqarish uchun ishlatish mumkin!

2 -qadam: yozish funktsiyasi

Men quyida tez -tez ishlatiladigan bir nechta funktsiyalarni sanab o'tdim. Umid qilamanki, bu funksiyalarni kompyuter tomonidan tanib bo'ladigan kodga o'zgartirishga yordam beradi.

Shuning uchun dasturda quyidagi formula yoziladi:

y = x² → y = pow (x, 2) yoki y = sq (x)

y = x³ → y = pow (x, 3)

y = xⁿ → y = pow (x, n)

y = 4ⁿ → y = pow (4, n)

y = logₑ² → y = log (2)

y = e² → y = exp (2)

y = √5 → y = sqrt (5)

Siz tasodifiy funktsiyani dasturga yozishingiz va uning harakat izi qanday bo'lishini ko'rishingiz mumkin. Qiymat maydonini va ta'rifi domenini hisobga olishni unutmang, aks holda sizning ekraningiz tugaydi.

Trigonometrik funktsiya

Keling, trigonometrik funktsiyalarning ba'zi yozuvlarini bilib olaylik.

Shuni e'tiborga olish kerakki, dasturda burchakka nisbatan funktsiya parametrini kiritish radianni qabul qiladi. Shunday qilib, sin90 ° gunohga yoziladi (PI 2). Agar siz bu usulni bilmasangiz, burchakni radianga aylantirish uchun randian funktsiyalaridan foydalanib, sin (radian (90) yozishingiz mumkin.

Funktsiya darajalarini ishlatish nisbatan qarama -qarshi. U radianni burchakka aylantirishi mumkin. Chop etish (daraja (PI/2)) ni to'g'ridan -to'g'ri tahrir qilish maydoniga kiriting va nima olishingizni ko'ring.

3 -qadam: Trigonometrik funktsiyali grafik harakatini boshqarish

Bu erda siz grafik harakatining haqiqiy ta'sirini ko'rishingiz mumkin.

[cceN_cpp theme = "tong"] suzuvchi x, y; void setup () {size (700, 300); } void draw () {background (234, 113, 107); y = sin (radian (x)) * 150 + 150; x ++; noStroke (); ellips (x, y, 50, 50); } [/cceN_cpp]

Sin funktsiyasi davriy funktsiyadir. Uning minimal qiymati - 1, maksimal qiymati - 1. Ekran balandligi - 300. Y = sin (radian (x)) * 150 + 150 ga tegishli, shuning uchun y qiymatining o'zgarish diapazoni 0 ichida yaxshi nazorat qilinadi. 300 ga.

Aylanma aylana

Xo'sh, biz nihoyat ushbu bobda eng muhim qismga keldik. Dasturda aylana yo'lini qanday chizish mumkin? Uni ko'rsatish uchun funktsiyalardan qanday foydalanish kerak? Sizga maqolaning boshida ko'rgan ikkita rasmni ko'rsatishga ijozat bering.

Aslida ular aylana koordinatasi va trigonometrik funktsiya o'rtasidagi bog'liqlikni vizual ravishda ochib berishdi. Yuqoridagi rasmlardagi harakat doimiy ravishda o'zgarib turadigan mustaqil o'zgaruvchi driven tomonidan boshqariladi. Chap - bu gunoh va kos funktsiyasining tasviri, va o'ng tomon xaritadan so'ng dumaloq harakatni bildiradi. Juda aqlli emasmi? Bu endi sirli emas. Buni amalga oshirish uchun kodni ishlatishingiz mumkin.

Oddiy misol:

[cceN_cpp theme = "tong"] suzuvchi x, y, r, R, burchak; void setup () {size (300, 300); r = 20; // Doira diametri R = 100; // Harakat yo'li radiusi x = 0; burchak = 0; y = balandlik/2; } void draw () {background (234, 113, 107); tarjima qilish (kenglik/2, balandlik/2); // Asl nuqtani ekran markaziga o'tkazing. noStroke (); x = R * cos (burchak); y = R * sin (burchak); ellips (x, y, r, r); burchak += 0,05; } [/cceN_cpp]

Qarang! Aylanadigan aylana paydo bo'ladi! Bu erda mustaqil o'zgaruvchining burchagi doimiy ravishda oshmaydi (rasmda θ ga teng). Bu burchak uchun turadi. Ularning orasida xy nisbatan ko'paytirilgan koeffitsientga ega, bu aylana harakati radiusining kengayishiga olib keladi (R radius uchun). Agar R ko'paytirilmasa, uning harakat yo'li -1 dan 1 gacha chegaralanadi.

Nima uchun ortib borayotgan x dan foydalanmaslik kerak? Funktsiyaning o'ziga xos xususiyatiga ko'ra, ta'rif doirasidagi har qanday x unga mos keladigan yagona yga ega. To'rtburchaklar o'lchovli tekis koordinatali tizimda siz aylanani to'g'ridan -to'g'ri chizish uchun "oddiy funktsiyani" topa olmaysiz. Ya'ni, biz bu formatdan boshqa foydalana olmaymiz.

y = (x ning noma'lum ifodasi?);

x ++;

Shuning uchun biz o'z fikrimizni o'zgartirishimiz kerak. Mustaqil o'zgaruvchi sifatida boshqa burchakni tanlang va keyin gorizontal va vertikal koordinataga aylantirish uchun sin va cos funktsiyasidan foydalaning.

x = R * cos (burchak);

y = R * sin (burchak);

burchak += 0,05;

Ba'zilaringiz nima uchun aylana harakati yo'lini ko'rsatishi mumkinligi haqida o'ylashingiz mumkin. Trigonometrik funktsiya ta'rifiga ko'ra, biz bu funktsiyani qarama -qarshi tomonning gipotenuzaga nisbatini osonlikcha tushuntira olamiz; cos funktsiyasi - qo'shni gipotenuzaga nisbati. Doira nuqtasi qayerda bo'lishidan qat'iy nazar, r (radius) o'zgarishsiz qoladi. Shunday qilib, biz x koordinatasi va y koordinatasi ifodasini yakunlashimiz mumkin.

Bu matematik ko'rsatma emasligi sababli, men sizga trigonometrik funktsiya haqida ko'proq ma'lumotni ko'rsatishni to'xtataman. Agar siz buni bilishni xohlasangiz yoki unutib qo'ysangiz, uni qayta ko'rib chiqishga urinib ko'rishingiz mumkin.

Albatta, agar siz uni to'liq tushuna olmasangiz, hamma narsa yaxshi. Faqat aylana chizish uchun undan qanday foydalanishni bilish kerak. Bu ham "dasturlash g'oyasi" ning bir turi. Keyinchalik, biz tez -tez ma'lum bir funktsiyani amalga oshirish uchun boshqalar tomonidan mavjud bo'lgan ba'zi modullarni chaqiramiz. Buni batafsil bilishga o'zingizni majburlamang.

Biroq, sin va cos funktsiyasi keng tarqalgan. Agar siz yuqori darajadagi ijod qilishni xohlasangiz, uni yaxshilab bilishga harakat qilganingiz ma'qul. Agar bu savolning o'zi matematik bilimlarni o'zlashtirishga undasa, sizni qiziqroq narsalar kutib turibdi.

Bu trigonometrik funktsiyaga yaqin rasmlar.

4 -qadam: Harakat koordinatalari tizimi

Oldingi effektlar grafik koordinatalarning o'zgarishi bilan bog'liq. Koordinata tizimining o'zi statikdir. Aslida biz harakat ta'sirini amalga oshirish uchun koordinatali harakatni amalga oshirishimiz mumkin. Bu xuddi plyajdagi odamlar qayiqdagi boshqa odamlarni tomosha qilishiga o'xshaydi. Qayiqda bo'lgan odamlar uchun qayiq statikdir. Ammo qayiqning o'zi harakatlansa -chi, qayiqdagilar u bilan birga harakat qiladilar. Avvalgi holatlar "qayiqda yugurayotgan odamlar" haqida. Aslida, qayiq qimirlamayapti. Quyida koordinata tizimini o'zgartirish uchun umumiy vazifalar keltirilgan.

Tarjima funktsiyasi

Tarjima funktsiyasi, biz ilgari aytgan edik, grafikning koordinata tizimini gorizontal ravishda siljitish uchun ishlatiladi.

Chaqiruv formati:

tarjima qilish (a, b)

Birinchi parametr, piksellar uchun x o'qining ijobiy yo'nalishiga o'tishni anglatadi. Ikkinchi parametr - b o'qi uchun y o'qining ijobiy yo'nalishiga o'tish.

Ikkala kodni solishtiring va farqni topishga harakat qiling. (Kodni soddalashtirish uchun biz funktsiya hajmini o'chirib tashlashimiz mumkin, ekran kengligi va balandligi standart sifatida 100).

Ishlatishdan oldin:

ellips (0, 0, 20, 20);

Biz ishlatganimizdan keyin:

tarjima qilish (50, 50);

ellips (0, 0, 20, 20);

Funktsiyani aylantirish

Chaqiruv formati:

aylantirish (a)

U koordinata tizimini aylantirish uchun ishlatiladi. Agar parametr ijobiy bo'lsa, u asl nuqtani markaziy nuqta sifatida tanlaydi va soat yo'nalishi bo'yicha aylanadi. Parametr kiritish radianni ishlatish uchun trigonometrik funktsiya bilan bir xil.

Ishlatishdan oldin:

ellips (50, 50, 20, 20);

Ishlatilgandan keyin:

aylantirish (radianlar (30));

ellips (50, 50, 20, 20);

Dasturning ta'siri - aylanani koordinata markazi nuqtasi atrofida soat yo'nalishi bo'yicha 30 daraja aylantirish.

Funktsiya shkalasi

Chaqiruv formati:

o'lchov (a)

Bu funksiya koordinata tizimini kichraytirishi mumkin. Qiymat o'lchov uchun. Agar parametr 1dan oshsa, kattalashtiring; agar u 1dan past bo'lsa, uni kattalashtiring.

Ishlatishdan oldin:

ellips (0, 0, 20, 20);

Ishlatilgandan keyin:

o'lchov (4);

ellips (0, 0, 20, 20);

Yuqoridagi rasmdagi doira asl o'lchamidan to'rt barobar kattalashtirilgan. Bundan tashqari, x o'qi va y o'qi yo'nalishlarini alohida kattalashtirish uchun siz ikkita parametrdan foydalanishingiz mumkin.

o'lchov (4, 2);

ellips (0, 0, 20, 20);

Transformatsiya funktsiyasining superpozitsiyasi

Bu erda superpozitsiya hozirgi koordinatalar tizimiga nisbatan o'zgarishlar haqida. Boshqacha aytganda, effektlarni bir -biriga yopishtirish mumkin.

tarjima qilish (40, 10);

tarjima qilish (10, 40);

ellips (0, 0, 20, 20);

Uning yakuniy ta'siri teng bo'ladi

tarjima qilish (50, 50);

ellips (0, 0, 20, 20);

Xuddi aylantirish funktsiyasi uchun

aylantirish (radianlar (10));

aylantirish (radianlar (20));

ellips (50, 50, 20, 20);

Ga teng

aylantirish (radianlar (30));

ellips (50, 50, 20, 20);

O'lchov va aylanish uchun ikkala funktsiya ham o'lchovni, ham markazni asl nuqtada aylantiradi. Agar biz aylantirish effektini markaziy pozitsiyada (50, 50) olishni istasak, aksincha o'ylashimiz kerak. Birinchidan, asl nuqtani (50, 50) holatiga o'tkazing, so'ngra aylanadigan aylantirish funktsiyasini qo'shing. Nihoyat, grafikni asl nuqtaga bo'yaltiring.

Ishlatishdan oldin:

ellips (50, 50, 50, 20);

Ishlatilgandan keyin:

tarjima qilish (50, 50);

aylantirish (radianlar (45));

ellips (0, 0, 50, 20); // Burilish burchagi o'zgarishini ko'rish uchun biz tasvirlar yasadik.

Bu burilish kabi ko'rinishi mumkin. Siz ko'proq mashq qilishingiz kerak, shunda siz tushunasiz. (Siz farqni ko'rish uchun tarjima qilish va aylantirish funktsiyalarining ketma -ketligini o'zgartirishga harakat qilishingiz mumkin.)

Gorizontal harakat va dumaloq harakat

Quyidagi hollarda biz koordinatalar tizimini o'zgartirish orqali harakat effektini amalga oshirmoqchimiz. Shu bilan birga, oldingi bobdagi misolga murojaat qilishingizni so'rayman. Ko'pincha, ma'lum bir effektni amalga oshirish uchun siz mutlaqo boshqa usuldan foydalanishingiz mumkin.

5 -qadam: gorizontal harakat

[cceN_cpp theme = "tong"]

int x, y; void setup () {size (300, 300); x = 0; y = balandlik/2; } void draw () {background (234, 113, 107); noStroke (); tarjima qilish (x, y); ellips (0, 0, 50, 50); x ++; } [/cceN_cpp]

Doira koordinatasi o'zgarmaydi, lekin uning koordinata tizimi o'zgartiriladi.

Burilish harakati

[cceN_cpp theme = "tong"] suzuvchi r, R, burchak; void setup () {size (300, 300); r = 20; // Doira o'lchami R = 100; // Harakat radiusi radiusi} void draw () {background (234, 113, 107); tarjima qilish (kenglik/2, balandlik/2); // Asl nuqtani ekran markaziga o'tkazing. aylantirish (burchak); noStroke (); ellips (0, R, r, r); burchak += 0,05; } [/cceN_cpp]

Bu trigonometrik funktsiyaga qaraganda ancha aniq va sodda emasmi? Bu erda sizda savol bo'lishi mumkin. Misol sifatida aylanadigan kodni oling. Ko'rinib turibdiki, yuqorida ko'rsatilgan o'zgartirish funktsiyasi nisbiy va bir -birining ustiga qo'yishga imkon beradi. Agar biz tarjimani (eni/2, balandligi/2) funktsiya chizig'iga yozsak, bu har safar funktsiya chizig'i bir marta ishlashini anglatmaydi, koordinata tizimi masofani siljitadi. asl taglikdan o'ng pastki yo'nalishda? Aqlli ravishda u ekran markazida abadiy qolmaydi.

Siz shu tarzda tushunishingiz mumkin. Funktsiya chizig'idagi kod yuqoridan pastgacha bo'lgan operatsiyani tugatgandan so'ng, koordinatalar tizimi ikkinchi operatsiyada dastlabki holatiga qaytadi. Koordinatalar tizimining asl nuqtasi chap yuqori burchakka qaytish uchun sukut bo'yicha o'rnatiladi. Shunday qilib, agar biz koordinatalar tizimini doimiy ravishda o'zgartirishni xohlasak, funktsiya ichidagi burchak parametrlari doimiy ravishda uning qiymatini oshiradi.

Koordinata holatiga kirish

Ba'zida biz koordinatalar tizimining holatini avvalgisiga asoslangan holda o'zgartirishni xohlamaymiz. Bu vaqtda biz pushMatrix va popMatrix funksiyalaridan foydalanishimiz kerak. Odatda ikkita funktsiya juftlikda paydo bo'ladi. PushMatrix funktsiyasi popMatrixdan oldin. Ularni faqat ishlatish mumkin emas, aks holda xato bo'ladi.

Misol:

[cceN_cpp theme = "tong"] pushMatrix (); // Tarjima qilingan koordinata tizimining holatini saqlash (50, 50); ellips (0, 0, 20, 20); popMatrix (); // o'qing koordinatali tizim holati rekt (0, 0, 20, 20); [/cceN_cpp]

Bu misolda, translate (50, 50) ni ishlatishdan oldin biz koordinatalar tizimining hozirgi holatini saqlash uchun pushMatrix. funktsiyasidan foydalanamiz. Bu, ayni paytda, dastlabki holat. Biz doira chizganimizdan so'ng, popMatrix -ni amalga oshiramiz, u yana shu holatga qaytadi. Bu vaqtda, rektus funktsiyasini amalga oshirsangiz, u funktsiya tarjimasidan ta'sirlanmaganini ko'rasiz, aksincha u boshlang'ich nuqtaning chap yuqori burchagiga kvadrat chizadi.

Bundan tashqari, pushMatrix va popMatrix funktsiyalari ichki joylashtirishga imkon beradi.

Masalan

pushMatrix ();

pushMatrix ();

popMatrix ();

popMatrix ();

O'zaro munosabatlarni intuitiv tarzda ko'rsatish uchun biz kondensatlangan formatni tanlaymiz.

Birlashtirilgan harakatmi yoki harakatdagi harakatmi?

Endi muhim qismning ikkinchi to'lqini boshlanadi. Faqat oldinga intilishga harakat qiling. Ilgari biz qayiq va odamlar metaforasini ishlatganmiz. Agar siz odamlarni ham, qayiqni ham harakatga keltiradigan bo'lsak, sohilda odamlar qanday his -tuyg'ularga ega bo'lishlari haqida o'ylab ko'rganmisiz?

Gorizontal harakatni koordinatali tizimning aylanadigan harakati bilan birlashtirish kabi. Bu erda gap faqat yo'nalishda harakat qilishdir.

[cceN_cpp theme = "tong"] int x, y; suzish burchagi; void setup () {size (300, 300); fon (234, 113, 107); noStroke (); x = 0; // x ning boshlang'ich qiymati 0 bo'lsa, biz kodning bu jumlasini e'tiborsiz qoldiramiz. O'zgaruvchini e'lon qilganda, standart qiymat 0. y = 0; // Yuqoridagilar bilan bir xil. burchak = 0; // Yuqoridagilar bilan bir xil. } void draw () {burchak += 0,25; y--; tarjima qilish (kenglik/2, balandlik/2); pushMatrix (); aylantirish (burchak); ellips (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Va dumaloq harakat va koordinatali tizim miqyosi mavjud.

[cceN_cpp theme = "tong"] suzuvchi x, y, burchak; void setup () {size (300, 300); fon (234, 113, 107); noStroke (); } void draw () {burchak += 0.01; x = sin (burchak) * 100; y = cos (burchak) * 100; tarjima qilish (kenglik / 2, balandlik / 2); pushMatrix (); shkalasi (1 + 0,1 * sin (burchak * 10)); ellips (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Bunga aldanmang! Doira nuqtasi aslida dumaloq harakatni amalga oshiradi. Buni videokamera yordamida masshtablash bilan solishtirsak, tushunish qiyin emas. Videokamera doimo oldinga yoki orqaga siljiydi va aylana bo'ylab harakat qiladi.

Hayron qoldingizmi? Bu oddiy asosiy funktsiyalar. Ammo har xil kombinatsiyalar yordamida biz juda ko'p turli effektlarni yaratishimiz mumkin. Hozircha sizning ekspozitsiyangiz sizning tadqiqotingiz uchun joy ajratish uchun to'xtaydi.

6 -qadam: keng qamrovli foydalanish

Bu bob uchun yaqinda o'z nihoyasiga etadi. Oxirgi ikkita bobda men grafik harakatining asosiy usulini tanishtirdim. O'ylaymanki, siz o'zingizning dastlabki g'oyalaringiz bilan solishtirganda, chuqurroq tushunishingiz mumkin. Oxir -oqibat, bu erda sizning ma'lumotnomangiz uchun to'ldirilgan misol.

[cceN_cpp theme = "tong"] suzuvchi x1, y1, x2, y2, r, R; suzuvchi burchak1, burchak2; void setup () {size (300, 300); r = 12; R = 120; burchak1 = 0; burchak2 = PI/4; } void draw () {background (234, 113, 107); noStroke (); tarjima qilish (kenglik / 2, balandlik / 2); burchak1 += 0,02; burchak2 += 0,06; x1 = R *sin (burchak1); y1 = R* cos (burchak1); x2 = R/2 *sin (burchak2); y2 = R/2 *cos (burchak2); ellips (x1, y1, r/2, r/2); ellips (x2, y2, r, r); ellips (-x1, -y1, r/2, r/2); ellips (-x2, -y2, r, r); ellips (x1, -y1, r/2, r/2); ellips (x2, -y2, r, r); ellips (-x1, y1, r/2, r/2); ellips (-x2, y2, r, r); qon tomir (255); strokeWeight (3); chiziq (x1, y1, x2, y2); chiziq (-x1, -y1, -x2, -y2); chiziq (x1, -y1, x2, -y2); chiziq (-x1, y1, -x2, y2); } [/cceN_cpp]

Bu misolda oldingi bobimizdan tashqari hech qanday ma'lumot yo'q.

Qaysi ochko uchun mos keladi? Qaysi qatorlar mos keladi? Men ham buni tushuna olmayapman. Lekin eslayman, bu kodning kichik bir qismidan kelib chiqadi.

Bu uning harakatining tabiati. Qolgan chiziqlar shunchaki ko'zgu effekti. Agar siz ushbu ko'rsatmalarni bajarishni davom ettirsangiz, grafik harakat holatini real vaqtda o'zgartirish uchun siz yangilangan versiyani yaratishingiz va grafigingizga nazoratchi qo'shishingiz mumkin.

Dasturlashning qiziq tomoni shundaki, siz qoidalarni loyihalashingiz yoki birlashtira olasiz. Biroq, yakuniy dastur qanday bo'lishi sizning qobiliyatingizga bog'liq. Odatda dizaynerlar kuchli grafik tasavvurga ega. Siz boshingizdagi rasmni chizishingiz va keyin uni kodga tarjima qilishga harakat qilishingiz mumkin. Bundan tashqari, siz o'z xohishingiz bilan kod va qoidalardan, dizayn funktsiyalari va o'zgaruvchilardan boshlashingiz mumkin. Esda tutingki, ishlov berish - bu sizning eskizingiz, kod - bu cho'tkangiz! O'z fikrlaringizni erkin tarqating!

7 -qadam: END

Oxirgi bobda, biz boshidan beri uzoq vaqt saqlanib qolgan savolga qaytamiz. Dastur bilan rasm yaratish uchun ko'p kuch sarflashdan nima foyda? Ushbu bo'limni o'rganganingizdan so'ng, siz o'rganishingizni kutayotgan juda ko'p o'yin usullari mavjudligini ko'rasiz.

[cceN_cpp theme = "tong"] float browX, earD, eyeD, faceD; void setup () {size (500, 500); } void draw () {background (200, 0, 0); browX = 150 + sin (frameCount / 30.0) *20; earD = 180 + sin (frameCount / 10.0) *20; eyeD = 60 + sin (frameCount/30.0) *50; yuzD = 300; strokeWeight (8); ellips (175, 220, earD, earD); ellips (kengligi - 175, 220, earD, earD); to'g'ri (100, 100, faceD, faceD); chiziq (browX, 160, 220, 240); chiziq (width-browX, 160, width-220, 240); to'ldirish (tasodifiy (255), tasodifiy (255), tasodifiy (255)); ellips (175, 220, eyeD, eyeD); ellips (kenglik-175, 220, eyeD, eyeD); to'ldirish (255); nuqta (kenglik/2, balandlik/2); uchburchak (170 - cos (frameCount / 10.0) * 20, 300 - sin (frameCount / 10.0) * 20, kenglik - (170 + cos (frameCount / 10.0) * 20), 300 + sin (frameCount / 10.0) * 20, 250, 350); } [/cceN_cpp]

Bu dinamik grafik uchun sehr emasmi? Bu erda men sizga ko'p holatlarni ko'rsatmayman. Siz mendan ko'ra yaxshiroq effekt yaratishingiz mumkin. Dastur bilan chizishning afzalligi shundaki, siz har bir piksel bilan o'ynashingiz mumkin. Sizning grafikangiz bitmap bo'lmaganligi sababli, sizning grafikangizdagi har bir muhim nuqta nazorat qilinadi. U boshqa dasturlar sezmagan ba'zi ta'sirlarni amalga oshirishi mumkin.

Agar sizda hamma narsani sindirib, yana birlashtirmoqchi bo'lgan yuragingiz bo'lsa, o'quv dasturi sizga bu g'oyani amalga oshirishga katta yordam beradi.

Ushbu maqola dizayner Vensidan keladi.

8 -qadam: Nisbiy o'qishlar:

Dizayner uchun qiziqarli dasturiy ko'rsatma-Dastlabki teginishni qayta ishlash

Dizayner uchun qiziqarli dasturiy ko'rsatma-Birinchi ishlov berish dasturini yarating

Dizayner uchun qiziqarli dasturiy ko'rsatma - rasmingizni ishga tushiring (birinchi qism)

Agar sizda biron bir savol bo'lsa, [email protected] elektron pochta manziliga yuborishingiz mumkin.

Maqola:

Tavsiya: