Orodha ya maudhui:

Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza): Hatua 16
Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza): Hatua 16

Video: Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza): Hatua 16

Video: Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza): Hatua 16
Video: DEMU ALIWA NYUMA HADI KINYESI CHATOKA (ANGALIA VIDEO HADI MWISHO) 2024, Julai
Anonim
Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza)
Mwongozo wa Kuvutia wa Programu kwa Mbuni - Pata Mbio za Picha yako (Sehemu ya Kwanza)

Kukimbia! Kukimbia! Kukimbia!

Kupanga programu sio ngumu sana. Jambo kuu ni kupata dansi yako na kuifanya moja kwa moja.

Kabla ya kusoma sura hii, natumai tayari umekuwa ukijua na njia ya msingi ya kuchora kazi, au utahisi kizunguzungu na kuchanganyikiwa na kazi mbili kuu za kichwa: kuanzisha na kuteka.

Kwa kuwa tunataka kutengeneza michoro ya mwendo, lazima tujue jinsi uhuishaji hutolewa.

Picha hapo juu inaonekana ya kuvutia sana na inadhihirisha wazi kanuni ya utekelezaji wa uhuishaji.

Uhuishaji ni uchawi. Ni uchawi juu ya udanganyifu wa kuona. Walakini, katika habari hii ililipuka, umri wa mafuriko ya video, tayari tumezoea. Watu wachache watashangaa kuwa ni jambo la kushangaza kuweza kuona uhuishaji.

Kanuni sawa inaweza kutumika katika kuchora uhuishaji na programu. Tunapaswa kuzingatia jinsi ya kuchora picha tofauti katika kila fremu, na programu itageuza kurasa kiotomatiki wakati tunaongeza uhuishaji uliokamilika kichwani mwetu. Katika sura inayofuata, tutazungumza juu ya jinsi ya kutambua harakati za kimsingi za picha. Kabla ya hapo, tunahitaji kujua maarifa ya kimsingi juu ya anuwai.

Hatua ya 1: Inabadilika

Chombo ni data. Inaweza kutumika mara kwa mara ndani ya programu.

Kwa mfano:

[cceN_cpp theme = "alfajiri"] saizi (500, 500); mviringo (100, 250, 50, 50); mviringo (200, 250, 50, 50); mviringo (300, 250, 50, 50); mviringo (400, 250, 50, 50);

[/cceN_cpp]

Sehemu hii ya nambari haijatumia vigeuzi vyovyote. Inachora duru nne kwenye skrini. Tunaweza kupata kuwa na upana na urefu sawa. Sasa kwa kuwa ni sawa, ili kupunguza uingizaji wa data unaorudiwa, tunaweza kufafanua ishara ya kuiwakilisha. Ishara hii ni ya kutofautiana.

Hapa kuna nambari baada ya kuongeza kutofautisha:

[cceN_cpp theme = "alfajiri"] saizi (500, 500); int = 50; mviringo (100, 250, a, a); mviringo (200, 250, a, a); mviringo (300, 250, a, a); mviringo (400, 250, a, a);

[/cceN_cpp]

Tunapata matokeo sawa kabisa!

Kwa kuwa tumeelezea kutofautisha a, tunaweza kubadilisha vigezo kwa urahisi. Ikiwa tutabadilisha = 50 kuwa a = 100, basi upana na urefu wote wa miduara itakuwa 100 sawasawa. Kwa hivyo sio lazima kubadilisha vigezo moja kwa moja. Kubadilika ni uvumbuzi mzuri.

Hatua ya 2: Uundaji wa Mabadiliko

Kabla ya kutumia ubadilishaji, tunapaswa kutoa taarifa na kuteua aina ya data yake.

int i;

i = 50;

Sentensi ya kwanza ya nambari imetoa taarifa ya kutofautisha i. int ni ishara inayotumiwa kutangaza kutofautiana. Wakati wa kutangaza, itahifadhi chumba kwenye kumbukumbu ya kompyuta, ambayo ni sawa na kutengeneza "sanduku", linalotumika haswa kurejesha data kamili. Sentensi ya pili inasimama kwa kutoa kazi 50 kutekelezwa na kutofautiana i. Baada ya utekelezaji wa sentensi hii, data itahifadhiwa kwa kutofautiana i stably. Au unaweza kuwa lazier kuchanganya sentensi mbili hapo juu kuwa moja na kazi kamili wakati ukitoa taarifa.

int i = 50;

Ni bure kulinganisha kutofautisha. Lakini wakati mwingine tunapaswa kuzingatia kitu.

Hatua ya 3: Kumtaja Udhibiti wa Mabadiliko

• Lazima iwe mchanganyiko wa alfabeti na upigie mstari. Inaweza kuwa ishara au neno.

• Uchunguzi nyeti. Jina na jina linaweza kusimama kwa anuwai anuwai.

• Jaribu kutaja jina kwa urahisi iwezekanavyo kukuwezesha kuelewa kwa macho moja. Tabia ya kwanza lazima iwe alfabeti badala ya nambari au herufi maalum.

• Hakuna maneno muhimu kama int, kuelea

Yafuatayo ni taarifa mbaya.

int $ a;

int 89b;

Hapa kuna taarifa sahihi:

int r;

int super_24;

int openTheDoor;

Hatua ya 4: Aina inayobadilika

Isipokuwa kwa kutangaza data kamili, tunaweza kutangaza kwa data ya desimali (pia inaitwa data ya kuelea) na kuelea neno kuu.

kuelea b = 0.5

Tunapaswa kuzingatia ni aina gani ya data tuliyotumia kwa taarifa yetu. Ikiwa tumetumia neno kuu int, mgawo wa mwisho hauwezi kuandika i = 0.5 au kitu kama hicho, au mpango utakuwa kosa. Lakini ikiwa tunaandika kinyume, ni sawa. Kwa mfano, kuelea i = 5 ni sarufi sahihi lakini programu itaitambua kama nambari ya desimali.

Baadhi ya vigeuzi tayari vimefafanuliwa na mfumo. Sio lazima tuzitangaze na sisi wenyewe. Kama vile "upana, urefu" uliotajwa hapo awali, itapata moja kwa moja upana na urefu wa skrini ya kompyuta. Mzunguko wa juu sana katika utumiaji ambao mbuni anafafanua moja kwa moja kuwa utofauti wa msingi ili kuifanya iwe rahisi kwetu kutumia.

Hatua ya 5: Opereta

Ifuatayo ni waendeshaji wa usindikaji:

+ pamoja

- minus

* ongezeni

kugawanya

Moduli ya salio

Lazima ujue na waendeshaji hawa wote isipokuwa%. Inaonekana ya kushangaza sana kwa sababu matokeo yake ni salio. 9% 3 ni 0. Wakati 9% 5 ni 4.

Waendeshaji wanaweza kutumika kati ya kazi na anuwai.

[cceN_cpp theme = "alfajiri"] int a = 1; // tangaza kutofautisha kwa jumla, mgawo ni 1. int b = 2; // Tangaza kutofautisha kwa jumla ya b, mgawo ni 2. int c; // Tangaza tofauti ya nambari c. c = a + b; // Pamoja na mgawo mbili na mpe matokeo yake kwa c. chapisha (c); // Tofauti ya pato c.

[/cceN_cpp]

Hatua ya 6: Matokeo ya Uendeshaji:

Matokeo ya pato hayataonyeshwa kwenye dirisha lakini kwenye koni chini.

Njia ya kuandika ya mstari wa nne inaonekana ya kushangaza sana. Lakini ni muundo wa kawaida unaotumiwa mara nyingi wakati wa zoezi la kompyuta. Upande wa kushoto wa ishara sawa unapaswa kuwa wa mwisho uliopewa kutofautisha, wakati upande wa kulia unapaswa kuwa mchakato wa operesheni.

Kazi ya kuchapisha kwenye laini ya tano inaweza kuchapisha vigeuzi kwenye koni, ambayo hutumiwa mara nyingi kujaribu hali ya utoaji wa data.

Hatua ya 7: Udhibiti wa Operesheni

Jambo la kusumbua katika Usindikaji ni lazima tufafanue aina ya ubadilishaji. Tunapaswa kulipa kipaumbele maalum kwa mchakato wa nambari ya kuelea na aina ya nambari kamili.

chapisha (6/5); // matokeo 1

Operesheni kati ya nambari itakuwa na nambari mpya. 6 imegawanywa na 5 ni 1.2. Lakini matokeo ya programu ni 1. Hii ni kinyume na intuition yetu. Mpango hautashughulika na pande zote lakini utafuta nambari nyuma ya hatua ya desimali.

chapisha (6.0 / 5.0); // matokeo 1.2

Operesheni kati ya vituo vinavyoelea itasababisha nambari mpya ya kuelea. Ikiwa matokeo halisi ni 1.2, matokeo ya programu yatakuwa sawa.

chapisha (6 / 5.0); // matokeo 1.2

chapisha (6.0 / 5); // matokeo 1.2

Mwishowe ni mchanganyiko wa nambari kamili na inayoelea. Matokeo ya mwisho yatakuwa 1.2.

• Kwa kweli, lazima ukumbuke kuwa lengo la muundo huu wa kanuni sio kufungua usahihi wa data. Kwa hivyo ikiwa kitu kimoja ni nambari ya kuelea, matokeo yatakuwa nambari ya uhakika pia.

Hatua ya 8: Sanidi Kazi na Chora Kazi

Hapo awali tumezungumza juu ya maarifa ya kutuliza. Sasa, mwishowe tunakuja kucheza kitu cha kupendeza. Kuweka kazi na kuteka ni sawa na kazi kuu za usindikaji. Kazi hizi mbili ni maalum sana. Inaweza kudhibiti utaratibu wa programu. Programu ngumu kulinganisha itajumuisha kazi hizi mbili kwa sababu ndio fremu ya msingi ya programu. Umbizo:

usanidi batili () {

}

chora batili () {

}

Matumizi maalum hufanya muundo wao wa kuomba tofauti na kazi zingine. Lazima tuongeze "batili" kabla ya jina la kazi, ambayo inasimama bila "thamani iliyorudishwa". Nyuma ya jina la kazi, lazima tuongeze mabano na braces.

[cceN_cpp theme = "alfajiri"] usanidi batili () {print (1); } chora batili () {chapa (2); } [/cceN_cpp]

Wacha tuangalie mfano:

Unapobonyeza kitufe cha operesheni, dashibodi itatoa "1" kwanza na kisha itoe "2" kila wakati mpaka ubonyeze kitufe cha kuacha au kufunga dirisha.

Nambari iliyo ndani ya mabano katika kazi ya usanidi itatekelezwa kwa mara moja tu. Wakati nambari ndani ya sare ya kazi itaendelea kusambazwa (utekelezaji kamili mara 60 / sekunde).

Kwa sababu ya tabia hii, usanidi kawaida hutumiwa katika kuanzisha mali ya mazingira, kama vile upana na urefu wa skrini, rangi ya usuli, na kila aina ya mgawanyo wa vigeuzi. Wakati sisi mara nyingi tunaweka kazi za kuchora katika kazi ya kuteka ili kutoa picha zinazoendelea kubadilishwa.

Hatua ya 9: Mduara katika Mwendo wa Usawa

Kwa kuchora kazi, tunaweza kuanza kuunda michoro zetu. Njia ya kuandika athari ya uhuishaji na Usindikaji ni "ngumu" kabisa. Haina amri yoyote iliyopo. Kwa mfano, teua sura fulani ya kufanya curvilinear.

Tunapaswa kufafanua maelezo haya na sisi wenyewe. Lazima uuambie mpango ni aina gani ya picha kila fremu inahitaji dhahiri.

Andika nambari ifuatayo ndani yake (Sasa wacha tuanze kuifanya kwa mikono):

[cceN_cpp theme = "alfajiri"] int x; int y; usanidi batili () {saizi (300, 300); x = 0; y = urefu / 2; } batili kuteka () {mandharinyuma (234, 113, 107); Stroke (); mviringo (x, y, 50, 50); x = x + 1; }

[/cceN_cpp]

Sehemu hii ya nambari inaonyesha duara la mwendo. Ya kutangazwa ya zamani x, y hutumiwa kuhifadhi nafasi ya kuratibu. Kazi zake zinaendeshwa katika usanidi wa kazi. Nambari muhimu ni ile ifuatayo ndani ya mchoro wa kazi:

x = x + 1

Usiione kama hesabu ya hesabu, au itakuwa ya kushangaza sana. Hapa, "=" ni ishara ya zoezi. Inawakilisha kuweka nambari za kulia katika ubadilishaji wa kushoto. Tuseme x ni 50, msimbo utakapoanza, upande wa kulia wa "=" ni sawa na 50 + 1, i.e. 51. Matokeo ya mwisho yatapewa kwa kutofautisha x. Kwa hivyo thamani ya x inakuwa 51.

Fuata utaratibu wa programu, kila wakati kazi ya kuchora ifanye kazi kwa mara moja, thamani ya x itaongezeka 1. Kwa hivyo kila wakati tunapoteka, duara itahamisha mwelekeo wa pikseli usawa kwenda kulia, ikilinganishwa na fremu ya zamani. Kwa hivyo, picha hiyo huwa ya kawaida.

• Ili kufanya nambari iweze kusomeka vizuri, lazima tuhifadhi chumba fulani kabla ya kila mstari wa nambari ndani ya braces. Na itakuwa sawa kama iwezekanavyo. Bonyeza TAB au nafasi kadhaa tupu, inaweza kurudisha nyuma.

• Ishara ya nafasi tupu na kuvunja laini kwenye programu haitaathiri programu. Kwa hivyo ni sawa ikiwa tunaandika moja zaidi au chini.

Hapa kuna njia nyingine rahisi ya kuelezea. Ili kufanya mzunguko unaozidi kuongezeka 1 moja kwa moja, lazima tuiandike kuwa muundo ufuatao.

duara = duara +1

Usumbufu kabisa! Ikiwa jina la kutofautisha ni refu, basi lazima tuandike maneno zaidi. Kwa hivyo watangulizi wetu wavivu hufikiria wazo kama hili.

duara ++

Je! Sio rahisi sana? Inamaanisha ongezeko 1 moja kwa moja. Sawa nayo, kuna - -, ambayo inamaanisha kupungua 1 moja kwa moja.

Lakini ikiwa tunatarajia wingi wa ongezeko la moja kwa moja ni nambari nyingine kama 2, lazima tujaribu usemi mwingine.

duara + = 2

Hii ni sawa na

duara = mduara + 2

Vivyo hivyo, kuna - =, / =, * =.

Hatua ya 10: Mwelekeo wa harakati

Ambayo mwelekeo wa picha unategemea jinsi unabadilisha uratibu wako. Ikiwa imebadilishwa kuwa y = y + 1, mduara utashuka chini. Ikiwa bothx na y zinaongeza 1, mduara utashuka chini chini kulia. Ikiwa tunaiandika kuwa ishara ya kutoweka, itaenda kwa mwelekeo mwingine.

[cceN_cpp theme = "alfajiri"] int x, y; // Inaweza kutangaza anuwai anuwai kwa wakati mmoja, tumia comma kutenganisha. usanidi batili () {saizi (300, 300); x = 0; y = 0; } batili kuteka () {mandharinyuma (234, 113, 107); Stroke (); mviringo (x, y, 50, 50); x ++; y ++; }

[/cceN_cpp]

Kiwango cha Harakati

Kumbuka muafaka default 60 kwa sekunde ndani ya kazi ya kuteka? Kulingana na kiwango hiki, duara hapo juu itahamisha saizi 60 kwa sekunde moja kwenda kulia.

Ikiwa tunataka kubadilisha kiwango cha harakati za picha, kuna njia mbili: moja ni kuongeza x kila wakati kwani itabadilishwa.

x = x + 10

Imeboresha kasi kwa mara 10 ikilinganishwa na ile ya asili!

Njia nyingine ni kubadilisha masafa ya kuburudisha turubai. Kiwango cha fremu ()

Kazi hii inaweza kubadilisha mzunguko wa utangazaji wa turubai. Andika fremu (10) katika usanidi wa kazi, itabadilisha muafaka wa asili 60 kwa sekunde kuwa muafaka 10 kwa sekunde. Kasi imepunguzwa kwa mara 6 kuliko hapo awali.

Hatua ya 11: Usuli uliopuuzwa

Mifano zote zilizopita zinaandika usuli katika kuteka kazi. Je! Umewahi kufikiria kuiandika katika usanidi wa kazi? Itakuwa na tofauti yoyote? Sasa, wacha tusasishe mfano wa harakati ya usawa.

[cceN_cpp theme = "alfajiri"] int x, y; usanidi batili () {saizi (300, 300); historia (234, 113, 107); x = 0; y = urefu / 2; } sare batili () {neStroke (); mviringo (x, y, 50, 50); x + = 1; } [/cceN_cpp]

Nini kilitokea? Labda haiwezi kuelewa sababu ya uzalishaji wa shida vizuri. Futa kazi Stroke, ongeza kiharusi tena, na uone njia ya harakati ya duara.

Ah, ni kwa sababu ya mduara ulioundwa hapo awali haujafutwa! Kwa sababu usanidi wa kazi unafanya kazi kwa mara moja tu, ikiwa tutaandika msingi juu yake, itajaza mandharinyuma kwa mara moja tu na baadaye haitakuwa na athari tena. Historia ya kazi ni kama zana ya ndoo ya rangi. Baada ya kutumiwa, itashughulikia yaliyomo kwenye turubai badala ya kuweka rangi ya nyuma tu. Tunaiandika kabla ya kuchora kazi ili sura ya zamani ifunikwa kila wakati tunapounda muundo mpya. Kwa hivyo, mduara unaweza kukimbia kama tulivyotarajia. Isipokuwa kwa kukumbuka matumizi ya kila kazi, tunapaswa kufikiria juu ya msimamo wa nambari. Wakati mwingi, mstari wa juu au wa chini wa codea na kuiandika ndani au nje ya brace, itaunda athari tofauti. Mwelekeo wa nambari ni pande mbili. Ikiwa mdudu anaonekana, tunapaswa kusawazisha katika hali hii mbili.

• Njia hii ya kuchora isiyorudiwa inaweza kuunda athari maalum ikiwa inatumiwa vizuri. Unaweza kunakili nambari ifuatayo na ujaribu.

[cceN_cpp theme = "alfajiri"] usanidi batili () {size (400, 400); } kuchora batili () {ellipse (upana / 2-panyaX, urefu / 2-panyaX, panyaY, panyaY); ellipse (upana / 2-panyaX, urefu / 2 + panyaX, panyaY, panyaY); ellipse (upana / 2 + panyaX, urefu / 2-panyaX, panyaY, panyaY); ellipse (upana / 2 + panyaX, urefu / 2 + panyaX, panyaY, panyaY); } [/cceN_cpp]

Hapa tumetumia panya inayobadilika ya uchawiX na panyaY. Baadaye tutazungumza juu yake kwa undani.

Hatua ya 12: Kutikisa Mzunguko

Je! Ikiwa nitataka kufanya mwelekeo wa harakati za mduara uwe wa kawaida? Ukiwa na kazi kwa ujanja ujanja, unaweza kutambua athari hii pia. Random ni kazi inayotumiwa mara kwa mara. Inaweza kutumika kutengeneza kazi isiyo ya kawaida. Ni kama roho isiyo na njia. Mara tu inahusiana na vigeuzi, huwezi kufikiria ni nini kitakachofuata.

Omba Muundo:

nasibu (juu)

Ya juu inawakilisha kikomo cha juu cha juu, na kikomo cha chini cha msingi ni 0. Kwa mfano, bila mpangilio (10). Itatoa idadi kutoka 0 hadi 10 kwa nasibu (0 imejumuishwa lakini 10 haijajumuishwa).

nasibu (chini, juu)

Ikiwa tutaweka vigezo viwili, basi itarudi kwa thamani ya nasibu kati yao. Kwa mfano, bila mpangilio (5, 10). Itatoa idadi kutoka 5 hadi 10 kwa nasibu (5 imejumuishwa lakini 10 haijajumuishwa).

Mfano:

[cceN_cpp theme = "alfajiri"] kuelea x;

x = bila mpangilio (50, 100);

chapisha (x); [/cceN_cpp]

Kila wakati tunapoendesha programu, koni itatoa maadili tofauti.

• Kumbuka: Maadili yaliyoundwa na kazi bila mpangilio ni ya aina ya alama inayoelea (aina ya nambari ya decimal). Ikiwa tunataka kupeana thamani kwa kutofautisha kwa nambari, lazima tuibadilishe kupitia kazi int (). Mabadiliko hayakai kwa pande zote lakini futa sehemu ya desimali moja kwa moja. Kwa hivyo pato la int (nasibu (5)), lina uwezekano 5 tu: 0, 1, 2, 3, 4.

Baada ya kufahamiana na utumiaji wa kazi bila mpangilio, tunaweza kuja moja kwa moja kwenye kesi hapa chini.

[cceN_cpp theme = "alfajiri"] int x, y; usanidi batili () {saizi (300, 300); x = upana / 2; y = urefu / 2; } batili kuteka () {mandharinyuma (234, 113, 107); Stroke (); x + = int (bila mpangilio (-5, 5)); y + = int (bila mpangilio (-5, 5)); mviringo (x, y, 50, 50); }

[/cceN_cpp]

Maadili ya zamani ya uratibu yameongezwa. Ikiwa tu tunaongeza thamani isiyo ya kawaida, mduara utahamia katika mwelekeo usiojulikana. Pamoja na upeo mkubwa zaidi wa nasibu, hutetemeka mara nyingi zaidi. Kwa kuwa mabadiliko ya thamani kati ya muafaka yamepigwa, harakati hazitakuwa laini tena. Wakati fremu ya zamani iko (150, 150), fremu ya mwisho itahamia kwenye nafasi ya (170, 170) ndani ya mwangaza.

Hatua ya 13: Mzunguko wa Uhamaji

Mzunguko wa kuhamia

Je! Itaunda harakati laini? Kelele ya kazi inaweza kutusaidia. Ina mdundo bora kuliko kawaida ya kawaida. Na nambari zilizotengenezwa bila mpangilio zinaendelea.

Omba Muundo:

kelele (t)

Kelele ya kazi haiwezi kufafanua anuwai ya pato lake. Mpango hufafanua inaweza tu kutoa nambari za kuelea kutoka 0 hadi 1 na pembejeo iliyowekwa inaweza tu kuwa na pato la kudumu.

[cceN_cpp theme = "alfajiri"] kuelea x = kelele (5); kuelea y = kelele (5); chapisha (x, y); [/cceN_cpp]

Kwa sababu vigezo vya kuingiza hapo juu ni 5, kwa hivyo matokeo ya matokeo ni sawa. Basi jinsi ya kubadilisha matokeo? Jibu ni kubadilisha vigezo vya kuingiza kwa nguvu. Kweli tunaweza kuchukua kelele kama wimbo usio na kikomo, vigezo vya kuingiza ni kama "wakati wa sasa". Ikiwa pembejeo ya parameta inaendelea, pato litaendelea pia.

[cceN_cpp theme = "alfajiri"] kuelea x, y; usanidi batili () {saizi (700, 100); x = 0; msingi (0); } sare batili () {x + = 1; y = kelele (fremuCount / 100.0) * 100; Stroke (); mviringo (x, y, 2, 2); }

[/cceN_cpp]

Katika kesi hii, tunachora njia ya mabadiliko ya Y ili tuweze kuelewa kelele ya kazi vizuri.

• Kati yake, fremu inayobadilika itapata sura ya sasa. Tofauti na upana, urefu katika uliopita, ni thabiti bila mabadiliko yoyote. Kwa kuongezea, inaanza kuongezeka kutoka 0. Ikiwa tunaielewa na picha yetu ya awali ya michoro, inaonyesha ukurasa ambao tumegeukia (badala ya wazo la wakati katika mpango).

• fremuCount ni nambari tofauti. Imegawanywa na ubadilishaji mwingine kamili wa nambari, programu hiyo itasasishwa kusindika matokeo kuwa nambari kamili. Ili kuboresha usahihi wa matokeo, tunahitaji kubadilisha 100 hadi 100.0. Imegawanywa na nambari ya kuelea, tutapata nambari ya kuelea pia.

• Ili kubadilisha axle Y kutoka 0 hadi 100, tunapaswa kuzidisha matokeo ya kelele na 100. Kwa hivyo tunaweza kudhibiti anuwai ya thamani isiyo ya kawaida.

Wengine wenu mzuri wa kufikiria wanaweza kuuliza "kwanini tunapaswa kugawanya fremuCountby 100? Je! Sio sawa kuandika fremuCount moja kwa moja?" Bila shaka unaweza! Lakini hapa, ili kuonyesha vizuri sifa za kelele ya kazi, tunapunguza "kiwango cha utangazaji". Mfano hapa chini unaonyesha mabadiliko ya thamani ya pato chini ya kiwango tofauti cha mabadiliko.

[cceN_cpp theme = "alfajiri"] kuelea x, y1, y2, y3, y4, y5; usanidi batili () {saizi (700, 500); x = 0; msingi (0); } sare batili () {x + = 1; y1 = kelele (fremuCount) * 100; y2 = kelele (fremuCount / 10.0) * 100; y3 = kelele (fremuCount / 100.0) * 100; y4 = kelele (fremuCount / 1000.0) * 100; y5 = kelele (fremuCount / 10000.0) * 100; Stroke (); mviringo (x, y1, 2, 2); mviringo (x, y2 + 100, 2, 2); mviringo (x, y3 + 200, 2, 2); mviringo (x, y4 + 300, 2, 2); mviringo (x, y5 + 400, 2, 2); kiharusi (80); mstari (0, 100, upana, 100); mstari (0, 200, upana, 200); mstari (0, 300, upana, 300); mstari (0, 400, upana, 400); }

[/cceN_cpp]

Unaweza kuzingatia vigezo vya kubadilisha ndani ya kelele ya kazi kama mwambaa wa maendeleo. Badilisha parameta ni kama tunahamisha upau wa maendeleo. Kwa hivyo wakati wigo wa kubadilisha wa "wimbo wa sauti" huu ni mkubwa, sifa za mbele na nyuma za thamani ya pato zitakuwa dhaifu. (Tunaweza kufikiria ni nini kitatokea ikiwa tutatangaza kipande cha muziki au video yenye kasi mara 2, 5 kasi ya mara, kasi mara 20). Wakati wigo ni mkubwa kuliko thamani fulani, basi haina tofauti kubwa ya kufanya kazi kwa nasibu katika uzalishaji wa thamani.

Ikiwa unaweza kuelewa mifano yote hapo juu, basi utahisi hakuna kitu kinachoweza kuwa rahisi zaidi kuchora duara linalohamia. Unaweza kuelewa kanuni za ndani pia.

[cceN_cpp theme = "alfajiri"] kuelea x, y; usanidi batili () {saizi (300, 300); x = 0; } batili kuteka () {mandharinyuma (234, 113, 107); x = kelele (fremuCount / 100.0 + 100) * 300; y = kelele (fremuCount / 100.0) * 300; Stroke (); mviringo (x, y, 50, 50); }

[/cceN_cpp]

Sasa, harakati hiyo inavutia zaidi kama gyro inayozunguka.

• Sababu ya kwanini kutofautisha x ndani ya kelele ya kazi inapaswa kuongeza 100 ni kwa sababu ili kuwatenganisha kwa umbali. Ikiwa vigezo vya xy ndani ya kelele ya kazi ni sawa au karibu kabisa, mabadiliko ya x, y kuratibu yatakaribia sawa. Hii ni kufanya harakati ziwe za nasibu zaidi.

Hatua ya 14: Mzunguko Unaoongozwa na Panya

Ifuatayo, mwishowe tunakuja kwa vigeuzi viwili ninavyopenda zaidi: mouseX na panyaY. Kwa kuona kwanza dhana mbili, macho yangu yanaangaza na nuru. Kwa sababu ndio njia ya moja kwa moja ya kuingiliana na picha. Tunaweza kuunda programu nyingi za kupendeza nayo.

Kesi ni rahisi sana:

[cceN_cpp theme = "alfajiri"] int x, y; usanidi batili () {saizi (300, 300); x = 0; y = 0; } batili kuteka () {mandharinyuma (234, 113, 107); Stroke (); x = panyaX; y = panyaY; mviringo (x, y, 50, 50); }

[/cceN_cpp]

mouseX inaweza kupata uratibu wa panya x, wakati panyaY inaweza kupata uratibu.

Wacha tujaribu kubadilisha alama chanya na hasi, au kubadilishana mouseX na panyaY.

Hatua ya 15: Mwisho

Kutoka kwa amri hizi zinazojulikana, unaweza kuendesha harakati za picha. Na yaliyomo kwenye sura ya mwisho, tumia mawazo yako vizuri, unaweza kuunda athari nyingi za kufurahisha.

Katika sura yetu inayofuata, tunaweza kuona mifano mingi zaidi. Wakati huo huo, tutatumia kazi za kihesabu na kuichanganya na harakati za picha.

Nakala hii inatoka kwa mbuni Wenzy.

Hatua ya 16: Masomo ya Jamaa:

Mwongozo wa Kuvutia wa Programu kwa Mbuni - Inasindika Kugusa kwa Awali

Mwongozo wa Kuvutia wa Programu kwa Mbuni - Unda Programu yako ya Kwanza ya Usindikaji

Nakala hii ni kutoka:

Ikiwa unahitaji msaada, unaweza kuwasiliana na: [email protected].

Ilipendekeza: