Mündəricat:

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə): 8 addım
Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə): 8 addım

Video: Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə): 8 addım

Video: Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə): 8 addım
Video: Dizaynerlər üçün tətbiq,websaytlar/for designers👗✂️👩‍💻 2024, Noyabr
Anonim
Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə)
Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə)

Riyaziyyat, çoxunuz üçün yararsız görünür. Gündəlik həyatımızda ən çox istifadə edilənlər sadəcə əlavə etmək, çıxarmaq, vurmaq və bölməkdir. Ancaq proqramla yarada bilsəniz, tamam başqa bir şeydir. Nə qədər çox bilsəniz, o qədər gözəl nəticə əldə edəcəksiniz.

Addım 1: Hərəkət və funksiya

Zövqünüzü artırmaq üçün sizə bir neçə naməlum şəkil göstərim.

Bu nədir? İndi bu sualı əvvəlcə saxla, sonra bilsən və istifadə edəcəksən.

Son fəsildə, statik qrafikləri dinamik hala gətirə biləcək funksiya quruluşu və funksiya çəkməyi öyrəndik. Ancaq bu hərəkət formatı çox sadədir. Qrafiklərimizi öz xarakterləri ilə işlətmək üçün əvvəldən əldə etdiyimiz funksiya biliklərindən istifadə edəcəyik.

Yuxarıdakı şəkillərdən neçə funksiyanı tanıya bilərsiniz? Hərəkətlə nə əlaqələri var? İndi ondan kvadratik bir funksiya götürək, təsadüfi olaraq bəzi parametrləri əlavə edək və nə olacağını görək. Məsələn, y = x² / 100.

Bu funksiya görüntüsü belə görünür. Aşağıdakı kodu kopyalayın.

[cceN_cpp theme = "şəfəq"] x, y; void setup () {size (300, 300); fon (0); x = 0; } void draw () {stroke (255); strokeWeight (2); y = pow (x, 2) / 100.0; // pow funksiyası təyinat nömrəsinin n -cü gücünə qayıdacaq. (x, 2) x -in kvadratını təmsil edir. Birinci parametr baza nömrəsidir, ikincisi indeksdir. nöqtə (x, y); x ++; } [/cceN_cpp]

Qaçış effekti

Sonra günah funksiyasını seçin. Formula: y = 150 + sin (x).

Aşağıdakı kodu kopyalayın.

[cceN_cpp theme = "şəfəq"] x, y; void setup () {size (300, 300); fon (0); x = 0; } void draw () {y = height/2 + sin (radians (x)) * 150; // Radian funksiyası x -i bucağa çevirir. x ++; vuruş (255); strokeWeight (2); nöqtə (x, y); } [/cceN_cpp]

Qaçış effekti

Kodu işlədikdən sonra əldə etdiyimiz qrafik budur. Və bu onların hərəkət yollarıdır. Əvvəlki ilə müqayisədə nəticə göz qabağındadır. Funksiya görüntüsü əslində hərəkət yoluna uyğundur! Kifayət qədər sadədir. Yalnız koordinat olaraq x, y dəyərini dəyişdirməlisiniz. Çəkdiyimiz əvvəlki trek y = x² / 100 funksiyasının qrafikinə bərabərdir. İkinci trek y = 150 + sin (x) funksiyasının qrafikinə bərabərdir. Ancaq proqramda y oxunun istiqaməti əksinədir. Beləliklə, orijinal qrafiklə müqayisədə trek tərsinə çevriləcək. Güman edirəm ki, uzun müddətdir beyninizdə gəzən bəzi çətin sualların dərhal həll olunduğunu hiss etməlisiniz. Daha əvvəl öyrəndiyimiz bu fantastik funksiyaların qrafik hərəkətini idarə etmək üçün istifadə edilməsi heyrətamizdir!

Addım 2: funksiyanı yazın

Aşağıda tez -tez istifadə olunan bir neçə funksiyanı sadaladım. Ümid edirik ki, bunlar funksiyaları kompüter tərəfindən tanına biləcək koda çevirməkdə bizə kömək edə bilər.

Buna görə proqramdakı aşağıdakı düstur belə yazılmalıdır:

y = x² → y = pow (x, 2) və ya 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)

Təsadüfi olaraq bir funksiyanı proqrama yaza və onun hərəkət yolunun necə görünəcəyini görə bilərsiniz. Dəyər sahəsini və tərif sahəsini nəzərə almağı unutmayın, əks halda qrafikiniz ekranınızdan çıxacaq.

Triqonometrik funksiya

İndi trigonometrik funksiyaların bəzi yazılarını bilmək üçün daha da irəli gedək.

Diqqət yetirməliyik ki, proqramda bucağa nisbətən funksiya parametrinin daxil edilməsi radian qəbul edir. Beləliklə, sin90 ° günaha yazılacaq (PI / 2). Bu üsulla tanış deyilsinizsə, əvvəlcədən bucağı radiana çevirmək üçün funksiya randianlarından istifadə edə bilərsiniz və sonra sin (radians (90)) yaza bilərsiniz.

Fəaliyyət dərəcələrinin istifadəsi nisbətən əksinədir. Radianı bucağa çevirə bilər. Çapı (dərəcə (PI/2)) birbaşa redaktə sahəsinə daxil edin və nə əldə edəcəyinizə baxın.

Addım 3: Triqonometrik Funksiya ilə Qrafik Hərəkəti İdarə Edin

Qrafik hərəkətin əsl təsirini görmək üçün bir vəziyyət.

[cceN_cpp theme = "şəfəq"] float x, y; void setup () {size (700, 300); } void draw () {background (234, 113, 107); y = sin (radyan (x)) * 150 + 150; x ++; noStroke (); ellips (x, y, 50, 50); } [/cceN_cpp]

Günah funksiyası dövri bir funksiyadır. Minimum dəyəri -1, maksimum dəyəri isə 1 -dir. Ekranın hündürlüyü 300 -dir. Y = sin (radian (x)) * 150 + 150 -ə istinad edilir, buna görə y dəyərinin dəyişmə diapazonu 0 ərzində yaxşı idarə olunacaq. 300 -ə qədər.

Dönmə dairəsi

Nəhayət, bu fəsildə ən çox idxal olunan hissəyə gəldik. Bir proqramda bir dairə yolu necə çəkmək olar? Göstərmək üçün funksiyalardan necə istifadə etmək olar? Bu yazının əvvəlində gördüyümüz iki şəkili sizə bir daha göstərim.

Əslində ətraf koordinatları ilə trigonometrik funksiya arasındakı əlaqəni vizual olaraq ortaya qoydular. Yuxarıdakı şəkillərdəki hərəkət, daim artan müstəqil dəyişən driven tərəfindən idarə olunur. Sol, günah və cos funksiyasının görüntüsüdür və sağ, xəritələndikdən sonra dairəvi hərəkət edən bir nöqtəni ifadə edir. Çox ağıllı deyilmi? Artıq sirr deyil. Bunu həyata keçirmək üçün koddan istifadə edə bilərsiniz.

Sadə bir nümunə:

[cceN_cpp theme = "şəfəq"] float x, y, r, R, bucaq; void setup () {size (300, 300); r = 20; // Dairənin diametri R = 100; // Hərəkət yolunun radiusu x = 0; bucaq = 0; y = yüksəklik/2; } void draw () {background (234, 113, 107); tərcümə (eni/2, hündürlüyü/2); // Orijinal nöqtəni ekran mərkəzinə köçürün. noStroke (); x = R * cos (bucaq); y = R * sin (bucaq); ellips (x, y, r, r); bucaq += 0.05; } [/cceN_cpp]

Bax! Dönən bir dairə görünür! Burada, müstəqil dəyişən artıq artımda deyil (şəkildəki θ -ə bərabərdir). Bucaq üçün dayanır. Bunların arasında, xy nisbi çoxalmış R əmsalına malikdir ki, bu da dairənin hərəkət radiusunun uzanmasına səbəb olur (R radius üçündür). R -ni çoxaltmaq olmazsa, onun hərəkət yolu -1 ilə 1 aralığında məhdudlaşacaq.

Niyə artan x istifadə etmirsiniz? Funksiyanın özünün xüsusiyyətinə görə, tərif sahəsindəki hər hansı bir x, ona uyğun olan yeganə y -yə malikdir. Düzgün düzbucaqlı ölçü koordinat sistemində birbaşa dairə çəkmək üçün "sadə bir funksiya" tapa bilməzsiniz. Yəni bu formatdan artıq istifadə edə bilmərik.

y = (X -in naməlum ifadəsi?);

x ++;

Ona görə də fikrimizi dəyişməliyik. Müstəqil dəyişən olaraq başqa bir açı seçin və sonra üfüqi və şaquli koordinata çevirmək üçün sin və cos funksiyasından istifadə edin.

x = R * cos (bucaq);

y = R * sin (bucaq);

bucaq += 0.05;

Bəziləriniz niyə dairə hərəkət yolunu göstərə biləcəyini düşünə bilərsiniz. Triqonometrik funksiyanın tərifinə görə, bu funksiyanı qarşı tərəfin hipotenuza nisbətində günahlandıra bilərik; cos funksiyası bitişiklərin hipotenuza nisbətidir. Dairə nöqtəsi harada olursa olsun, r (radius) dəyişməz qalacaq. Buna görə x koordinat və y koordinat ifadəsini bağlaya bilərik.

Riyazi bir rəhbər olmadığına görə burada sizə trigonometrik funksiya haqqında daha çox məlumat göstərməyi dayandıracağam. Bilmək istəyirsənsə və ya unudursan, yenidən nəzərdən keçirməyə cəhd edə bilərsən.

Əlbəttə ki, tam başa düşə bilmirsinizsə, hər şey qaydasındadır. Yalnız bir dairə çəkmək üçün necə istifadə edəcəyinizi bilməlisiniz. Bu da bir növ "proqramlaşdırma ideyası" dır. Daha sonra, müəyyən bir funksiyanı həyata keçirmək üçün başqaları tərəfindən hazırlanan bəzi mövcud modulları tez -tez çağıracağıq. Sadəcə özünüzü təfərrüatlı öyrənməyə məcbur etməyin.

Bununla birlikdə, günah və cos funksiyası adi haldır. Daha yüksək səviyyəli bir yaradıcılıq etmək istəyirsinizsə, daha yaxşı öyrənməyə çalışmalısınız. Əgər bu sual özümüzü daha çox riyazi biliklər öyrənməyə sövq edə bilərsə, daha maraqlı şeylər qazmağınızı gözləyir.

Bunlar trigonometrik funksiyaya çox yaxın olan şəkillərdir.

Addım 4: Hərəkət Koordinat Sistemi

Əvvəlki effektlər qrafik koordinat dəyişiklikləri ilə əlaqədardır. Koordinat sisteminin özü statikdir. Əslində, hərəkət effektini həyata keçirmək üçün koordinat hərəkətini edə bilərik. Bu, sahildəki insanların gəmidəki digər insanları seyr etməsi kimidir. Gəmidəki insanlar üçün gəmi statikdir. Amma gəminin özü hərəkət edirsə, gəmidəki insanlar onunla birlikdə hərəkət edir. Əvvəlki hadisələrin hamısı "gəmidə qaçan insanlar" ilə bağlıdır. Əslində gəmi tərpənmir. Aşağıda koordinat sistemini dəyişdirmək üçün bəzi ümumi funksiyalar verilmişdir.

Tərcümə funksiyası

Daha əvvəl bəhs etdiyimiz tərcümə funksiyası, qrafikin koordinat sistemini üfüqi şəkildə hərəkət etdirmək üçün istifadə olunur.

Çağırış formatı:

tərcümə (a, b)

Birinci parametr, piksellər üçün x oxunun müsbət istiqamətinə keçməyi nəzərdə tutur. İkinci parametr, b pikseli üçün y oxunun müsbət istiqamətə keçməsini ifadə edir.

İki kodu müqayisə edin və hər hansı bir fərq tapmağa çalışın. (Kodu asanlaşdırmaq üçün funksiya ölçüsünü silə bilərik, ekran genişliyi və hündürlüyü 100 olaraq təyin olunur.)

İstifadədən əvvəl:

ellips (0, 0, 20, 20);

İstifadə etdikdən sonra:

tərcümə (50, 50);

ellips (0, 0, 20, 20);

Funksiya fırlanır

Çağırış formatı:

döndərmək (a)

Koordinat sistemini döndərmək üçün istifadə olunur. Parametr müsbət olduqda, orijinal nöqtəni mərkəz nöqtəsi olaraq seçəcək və saat əqrəbi istiqamətində dönəcək. Parametr girişi radian istifadə etmək üçün trigonometrik funksiya ilə eynidir.

İstifadədən əvvəl:

ellips (50, 50, 20, 20);

İstifadədən sonra:

döndür (radianlar (30));

ellips (50, 50, 20, 20);

Proqramın təsiri, dairənin koordinat mərkəzi nöqtəsi ətrafında saat yönünde 30 dərəcə dönməsini təmin etməkdir.

Funksiya miqyası

Çağırış formatı:

miqyas (a)

Bu funksiya koordinat sistemini kiçiltə bilər. Qiymət ölçeklendirme üçündür. Parametr 1 -dən yuxarı olduqda, böyüdün; 1 -dən aşağıdırsa, kiçildin.

İstifadədən əvvəl:

ellips (0, 0, 20, 20);

İstifadədən sonra:

miqyas (4);

ellips (0, 0, 20, 20);

Yuxarıdakı şəkildəki dairə, orijinal ölçüsünün dörd qatına qədər artırılmışdır. Ayrıca, x ox və y ox istiqamətlərini ayrı -ayrılıqda kiçiltmək üçün iki parametrdən istifadə edə bilərsiniz.

miqyas (4, 2);

ellips (0, 0, 20, 20);

Çevrilmə funksiyasının üst -üstə düşməsi

Burada superpozisiya, mövcud koordinat sisteminə nisbətən bütün dəyişikliklərlə əlaqədardır. Başqa sözlə, təsirlər üst -üstə düşə bilər.

tərcümə (40, 10);

tərcümə (10, 40);

ellips (0, 0, 20, 20);

Onun son təsiri bərabər olacaq

tərcümə (50, 50);

ellips (0, 0, 20, 20);

Eyni funksiyanı döndərin

döndür (radianlar (10));

döndür (radianlar (20));

ellips (50, 50, 20, 20);

-Ə bərabərdir

döndür (radianlar (30));

ellips (50, 50, 20, 20);

Ölçmək və döndürmək üçün həm funksiya miqyası həm də mərkəzi nöqtəni orijinal nöqtədə döndərir. Dönmə effektini (50, 50) mərkəz mövqeyi ilə əldə etmək istəyiriksə, əksini düşünməliyik. Əvvəlcə orijinal nöqtəni (50, 50) mövqeyinə köçürün, sonra dönən çevrilmə funksiyasını əlavə edin. Nəhayət qrafikinizi orijinal nöqtəyə boyayın.

İstifadədən əvvəl:

ellips (50, 50, 50, 20);

İstifadədən sonra:

tərcümə (50, 50);

döndür (radianlar (45));

ellips (0, 0, 50, 20); // Dönmə bucağının dəyişdiyini görmək üçün oval düzəltmişik.

Bükülmə kimi görünə bilər. Daha çox təcrübə etməlisiniz, sonra başa düşəcəksiniz. (Fərqi görmək üçün çevirmək və çevirmək funksiyasının ardıcıllığını dəyişməyə də cəhd edə bilərsiniz.)

Üfüqi Hərəkət və Dairəvi Hərəkət

Aşağıdakı hallarda koordinat sistemini dəyişdirərək hərəkət effektini həyata keçirəcəyik. Eyni zamanda, əvvəlki fəsil nümunəsinə müraciət etməyinizi istərdim. Çox vaxt müəyyən bir effekt əldə etmək üçün tamamilə fərqli bir üsuldan istifadə edə bilərsiniz.

Addım 5: Üfüqi Hərəkət

[cceN_cpp theme = "şəfəq"]

int x, y; void setup () {size (300, 300); x = 0; y = yüksəklik/2; } void draw () {background (234, 113, 107); noStroke (); tərcümə (x, y); ellips (0, 0, 50, 50); x ++; } [/cceN_cpp]

Dairənin koordinatı dəyişdirilmir, ancaq koordinat sistemi dəyişdirilir.

Dönmə hərəkəti

[cceN_cpp theme = "şəfəq"] r, R, bucaq; void setup () {size (300, 300); r = 20; // Dairə ölçüsü R = 100; // Hərəkət yarıçapı} void draw () {background (234, 113, 107); tərcümə (eni/2, hündürlüyü/2); // Orijinal nöqtəni ekran mərkəzinə köçürün. döndürmək (bucaq); noStroke (); ellips (0, R, r, r); bucaq += 0.05; } [/cceN_cpp]

Triqonometrik funksiyadan daha aydın və sadə deyilmi? Burada bir sualınız ola bilər. Nümunə olaraq fırlanan kodu götürün. Aydındır ki, yuxarıda göstərilən çevrilmə funksiyası nisbi və üst -üstə düşməyə imkan verir. Tərcümə (eni/2, hündürlüyü/2) funksiyasını çəkmə funksiyasına yazsaq, bu, hər dəfə funksiya çəkilişinin bir dəfə işlədiyi anlamına gəlmir, koordinat sistemi bir məsafəni hərəkət etdirəcək. orijinal bazadan sağ alt istiqamətdə? Ağlabatan olaraq əbədi olaraq ekranın mərkəzində qalmayacaq.

Bu şəkildə başa düşə bilərsiniz. Funksiya çəkilişindəki kod aşağıdan yuxarıya doğru bir əməliyyatı tamamladıqdan sonra, koordinat sistemi ikinci əməliyyatda ilkin vəziyyətinə qayıdacaq. Koordinat sisteminin orijinal nöqtəsi sol üst küncə qayıtmaq üçün defolt olacaq. Beləliklə, koordinat sistemini davamlı olaraq dəyişdirmək istəyiriksə, dönmə funksiyasındakı bucaq parametrləri onun dəyərini daim artıracaq.

Koordinat Vəziyyətinə daxil olun

Bəzən koordinat sisteminin vəziyyətinin əvvəlki vəziyyətə əsaslanmasını istəmirik. Bu zaman pushMatrix və popMatrix funksiyasından istifadə etməliyik. İki funksiya ümumiyyətlə cüt olaraq görünür. PushMatrix funksiyası popMatrixdən əvvəldir. Yalnız istifadə edilə bilməz, əks halda səhv olacaq.

Misal:

[cceN_cpp theme = "şəfəq"] pushMatrix (); // Mağaza koordinat sistemi statusu tərcümə (50, 50); ellips (0, 0, 20, 20); popMatrix (); // Koordinat sisteminin vəziyyətini oxuyun (0, 0, 20, 20); [/cceN_cpp]

Bu nümunədə translate (50, 50) istifadə etməzdən əvvəl koordinat sisteminin mövcud vəziyyətini saxlamaq üçün pushMatrix.funksiyasından istifadə edirik. Bu eyni zamanda ilkin statusdur. Bir dairə çəkdikdən sonra popMatrix tətbiq etdikdən sonra bu vəziyyətə qayıdacaq. Bu anda, rekt funksiyasını həyata keçirin, tərcümə funksiyasından təsirlənmədiyini görürsünüz, əksinə orijinal nöqtənin sol üst küncündə bir kvadrat çəkir.

Bundan əlavə, pushMatrix və popMatrix funksiyası yuva qurmağa imkan verir.

Misal üçün

pushMatrix ();

pushMatrix ();

popMatrix ();

popMatrix ();

Əlaqələrini intuitiv şəkildə göstərmək üçün sıxılmış formatı seçirik.

Birləşdirilmiş Hərəkət və ya Hərəkətdə Hərəkət?

İndi vacib hissənin ikinci dalğası başlayır. Yalnız irəli getməyə çalışın. Əvvəllər qayıq və insanlar metaforasından istifadə edirdik. Həm insanları, həm də gəmini hərəkətə gətirsək, çimərlikdəki insanların hansı hissləri yaşayacağını heç düşünmüsünüzmü?

Üfüqi hərəkəti koordinat sisteminin fırlanan hərəkəti ilə birləşdirmək kimi. Burada məqsəd əslində yalnız bir istiqamətdə hərəkət etməkdir.

[cceN_cpp theme = "şəfəq"] int x, y; üzmək bucağı; void setup () {size (300, 300); fon (234, 113, 107); noStroke (); x = 0; // x -in ilkin dəyəri 0 olduqda, bu kod cümləsini laqeyd edə bilərik. Dəyişən elan edərkən standart dəyər 0 -dır. Y = 0; // Yuxarıdakılarla eynidir. bucaq = 0; // Yuxarıdakılarla eynidir. } void draw () {bucaq += 0.25; y--; tərcümə (eni/2, hündürlüyü/2); pushMatrix (); döndürmək (bucaq); ellips (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Və dairəvi hərəkət və koordinat sistemi miqyası var.

[cceN_cpp theme = "şəfəq"] üzmək x, y, bucaq; void setup () {size (300, 300); fon (234, 113, 107); noStroke (); } void draw () {bucaq += 0.01; x = sin (bucaq) * 100; y = cos (bucaq) * 100; tərcümə (eni / 2, hündürlüyü / 2); pushMatrix (); miqyas (1 + 0.1 * günah (bucaq * 10)); ellips (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Buna aldanmayın! Dairə nöqtəsi əslində dairəvi hərəkət edir. Videokamera ilə ölçüsünü müqayisə etsək başa düşmək çətin deyil. Bir video kamera daim ön və ya arxa hərəkət edərək dairəvi hərəkətdə bir nöqtə çəkir.

Təəccübləndinizmi? Bunlar sadə əsas funksiyalardır. Ancaq fərqli birləşmə ilə bir çox fərqli effekt yarada bilərik. İndiyə qədər araşdırmalarım üçün bir yer ayırmaq üçün ifşa etməyim dayanır.

Addım 6: Hərtərəfli İstifadə

Bu fəsil üçün tezliklə başa çatmaq üzrədir. Son iki fəsildə qrafik hərəkətinin əsas üsulunu təqdim etdim. İnanıram ki, ilkin fikirlərinizlə müqayisədə bunu daha dərindən anlaya bilərsiniz. Ən sonda, istinadınız üçün tamamlanmış bir nümunə.

[cceN_cpp theme = "şəfəq"] float x1, y1, x2, y2, r, R; üzmə açısı1, bucaq2; void setup () {size (300, 300); r = 12; R = 120; bucaq1 = 0; bucaq2 = PI/4; } void draw () {background (234, 113, 107); noStroke (); tərcümə (eni / 2, hündürlüyü / 2); bucaq1 += 0.02; bucaq2 += 0.06; x1 = R *sin (açı1); y1 = R* cos (açı1); x2 = R/2 *günah (bucaq2); y2 = R/2 *cos (bucaq2); 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); vuruş (255); strokeWeight (3); xətt (x1, y1, x2, y2); xətt (-x1, -y1, -x2, -y2); xətt (x1, -y1, x2, -y2); xətt (-x1, y1, -x2, y2); } [/cceN_cpp]

Bu nümunə, təqdim etdiyimiz əvvəlki fəsildən başqa heç bir məlumatı ehtiva etmir.

Hansı nöqtələr üçün uyğun gəlir? Hansı sətirlər uyğun gəlir? Mən də başa düşə bilmirəm. Ancaq kodun kiçik bir hissəsindən qaynaqlandığını xatırlayıram.

Hərəkətinin mahiyyəti budur. Qalan xətlər sadəcə güzgü effektidir. Bu təlimata əməl etməyə davam etsəniz, qrafik hərəkət vəziyyətinizi real vaxtda dəyişdirmək üçün yenilənmiş bir versiya hazırlaya və qrafikinizə bir nəzarətçi əlavə edə bilərsiniz.

Proqramlaşdırmanın maraqlı məqamı, qaydaları dizayn edə və ya birləşdirə biləcəyinizdədir. Ancaq son proqramın nə olacağı hamısı qabiliyyətinizə bağlıdır. Adətən dizaynerlər güclü qrafik təsəvvürə malikdirlər. Başınıza bir şəkil çəkə və sonra onu koda çevirməyə çalışa bilərsiniz. Ayrıca, istədiyiniz kimi kod və qaydalardan, dizayn funksiyalarından və dəyişənlərdən başlaya bilərsiniz. Unutmayın ki, emal eskiziniz, kod isə fırçalarınızdır! Yalnız fikirlərinizi sərbəst şəkildə yayın!

Addım 7: SON

Fəslimizin sonunda, əvvəldən bəri uzun müddət qoruduğumuz bir suala qayıdaq. Proqramla şəkil çəkdirmək üçün bu qədər səy sərf etməyin nə faydası var? Bu fəsli öyrəndikdən sonra araşdırmağınızı gözləyən çoxlu oyun metodlarının olduğunu görəcəksiniz.

[cceN_cpp theme = "şəfəq"] qaş qaşı, qulaq, göz, üz; void setup () {size (500, 500); } void draw () {background (200, 0, 0); browX = 150 + sin (frameCount / 30.0) *20; earD = 180 + günah (frameCount / 10.0) *20; gözD = 60 + günah (frameCount/30.0) *50; üzD = 300; strokeWeight (8); ellips (175, 220, earD, earD); ellips (eni - 175, 220, earD, earD); düz (100, 100, faceD, faceD); xətt (browX, 160, 220, 240); xətt (width-browX, 160, width-220, 240); doldurun (təsadüfi (255), təsadüfi (255), təsadüfi (255)); ellips (175, 220, eyeD, eyeD); ellips (eni-175, 220, eyeD, eyeD); doldurun (255); nöqtə (eni/2, hündürlüyü/2); üçbucaq (170 - cos (frameCount / 10.0) * 20, 300 - sin (frameCount / 10.0) * 20, eni - (170 + cos (frameCount / 10.0) * 20), 300 + sin (frameCount / 10.0) * 20, 250, 350); } [/cceN_cpp]

Dinamik qrafika üçün sehrli deyilmi? Burada sizə çox hadisələr göstərmirəm. Məndən daha yaxşı bir effekt hazırlaya bilərsiniz. Proqramla rəsm çəkməyin üstünlüyü hər piksellə oynaya bilərsiniz. Qrafikiniz bitmap olmadığı üçün qrafikinizdəki hər bir əsas nöqtəyə nəzarət etmək olar. Digər proqramların həyata keçirə bilmədiyi bəzi təsirləri həyata keçirə bilər.

Hər şeyi parçalamaq və yenidən birləşdirmək istəyən bir ürəyin varsa, təhsil proqramı bu fikri həyata keçirməyinə çox kömək edəcək.

Bu məqalə dizayner Wenzy -dən gəlir.

Addım 8: Nisbi oxunuşlar:

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-İlkin Toxunuşun İşlənməsi

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-İlk İşləmə Proqramınızı yaradın

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı - Şəkilinizi Çalışdırın (Birinci hissə)

Hər hansı bir sualınız varsa, [email protected] ünvanına bir e -poçt göndərə bilərsiniz.

Bu məqalə:

Tövsiyə: