Агуулгын хүснэгт:

Загвар зохион бүтээгчийн хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг): 8 алхам
Загвар зохион бүтээгчийн хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг): 8 алхам

Видео: Загвар зохион бүтээгчийн хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг): 8 алхам

Видео: Загвар зохион бүтээгчийн хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг): 8 алхам
Видео: Миний Дуртай Бүтээл: Б.Сувд 2024, Оны зургадугаар сарын
Anonim
Дизайнерын хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг)
Дизайнерын хувьд сонирхолтой програмчлалын заавар-Зургаа ажиллуулаарай (Хоёрдугаар хэсэг)

Математик бол ихэнх хүмүүсийн хувьд ашиггүй юм шиг санагддаг. Бидний өдөр тутмын амьдралд хамгийн түгээмэл хэрэглэгддэг зүйл бол нэмэх, хасах, үржүүлэх, хуваах явдал юм. Гэсэн хэдий ч хэрэв та програмыг ашиглан бүтээж чадвал энэ нь огт өөр юм. Мэдэх тусам илүү гайхалтай үр дүнд хүрэх болно.

Алхам 1: Хөдөлгөөн ба функц

Таны амтыг өдөөхийн тулд хэд хэдэн үл мэдэгдэх зургийг танд үзүүлье.

Энэ юу вэ? Одоо энэ асуултыг эхний ээлжинд үлдээгээрэй, дараа нь та үүнийг мэдэж, ашиглах болно.

Сүүлийн бүлэгт бид статик графикийг динамик болгож чадах функцын тохиргоо, функцийг зурах талаар сурсан. Гэсэн хэдий ч энэ хөдөлгөөний хэлбэр нь хэтэрхий энгийн юм. Бид өмнө нь эзэмшсэн функцийн мэдлэгээ ашиглан өөрийн график дүрсийг ажиллуулах болно.

Дээрх зургуудаас хичнээн олон функцийг таньж мэдэх вэ? Тэд хөдөлгөөнтэй ямар холбоотой байдаг вэ? Одоо үүнээс квадрат функцийг авч, зарим параметрүүдийг санамсаргүй байдлаар нэмж, юу болохыг харах болно. Жишээлбэл, y = x² / 100.

Функцийн дүр төрх иймэрхүү харагдаж байна. Доорх кодыг хуулна уу.

[cceN_cpp theme = "үүр цайх"] хөвөх x, y; void setup () {size (300, 300); дэвсгэр (0); x = 0; } void draw () {цус харвалт (255); цус харвалт (2); y = pow (x, 2) / 100.0; // pow функц нь тэмдэгтийн дугаарын n дахь хүч рүү буцах болно. (x, 2) нь x -ийн квадратыг илэрхийлнэ. Эхний параметр нь үндсэн дугаар, хоёр дахь нь индекс юм. цэг (x, y); x ++; } [/cceN_cpp]

Гүйлтийн эффект

Дараа нь sin функцийг сонгоно уу. Томъёо: y = 150 + sin (x).

Дараах кодыг хуулна уу.

[cceN_cpp theme = "үүр цайх"] хөвөх x, y; void setup () {size (300, 300); дэвсгэр (0); x = 0; } void draw () {y = height/2 + sin (radians (x)) * 150; // Радиан функцийг x -ийг өнцөг болгон хувиргадаг. x ++; цус харвалт (255); цус харвалт (2); цэг (x, y); } [/cceN_cpp]

Гүйлтийн эффект

Энэ бол кодыг ажиллуулсны дараа олж авсан график юм. Энэ бол тэдний хөдөлгөөний зам юм. Өмнөхтэй харьцуулахад үр дүн нь тодорхой байна. Функцийн зураг нь хөдөлгөөний замтай яг таарч байна! Энэ нь хангалттай энгийн. Та x, y -ийн утгыг координатаар солих хэрэгтэй. Бидний зурсан анхны зам нь y = x² / 100 функцийн графиктай тэнцүү байна. Сүүлийнх нь y = 150 + sin (x) функцийн графиктай тэнцүү байна. Гэхдээ хөтөлбөрт y тэнхлэгийн чиглэл эсрэг байна. Тиймээс, анхны графиктай харьцуулахад зам нь доошоо эргэх болно. Удаан хугацааны турш таны толгойд эргэлдэж байсан зарим хэцүү асуултуудыг тэр даруй шийддэг гэсэн мэдрэмж танд төрж байх шиг байна. Бидний өмнө сурч байсан эдгээр гайхалтай функцуудыг график хөдөлгөөнийг хянахад ашиглаж байгаа нь үнэхээр гайхалтай юм!

Алхам 2: Функцийг бичих

Би доор байнга ашиглагддаг хэд хэдэн функцийг жагсаасан болно. Эдгээр нь функцийг компьютерээр таних код болгон хөрвүүлэхэд бидэнд тусална гэж найдаж байна.

Тиймээс програмын доорх томъёог дараах байдлаар бичнэ.

y = x² → y = pow (x, 2) эсвэл 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)

Та функцийг санамсаргүй байдлаар програмд бичиж, түүний хөдөлгөөний зам ямар байхыг харах боломжтой. Утга талбар болон тодорхойлолтын домэйны хүрээг анхаарч үзэхээ мартуузай, эс тэгвээс таны график дэлгэцээс гарах болно.

Тригонометрийн функц

Одоо тригонометрийн функцын зарим бичээсийг мэдэхийн тулд цааш явцгаая.

Хөтөлбөрт өнцгийн функцийн параметрийн оролтыг радианыг ашигладаг болохыг анхаарах хэрэгтэй. Тиймээс sin90 ° -ийг нүгэл болгон бичих болно (PI / 2). Хэрэв та энэ аргыг сайн мэдэхгүй байгаа бол функцийн рандиан ашиглан өнцгийг радиан болгон хувиргаж, дараа нь sin (radians (90)) гэж бичиж болно.

Функцийн градусын хэрэглээ харьцангуй эсрэг байна. Энэ нь радианыг өнцөг болгон хувиргаж чаддаг. Хэвлэх (градус (PI/2)) -ийг засварлах хэсэгт шууд оруулаад юу авахаа хараарай.

Алхам 3: График хөдөлгөөнийг тригонометрийн функцээр удирдах

График хөдөлгөөний бодит үр нөлөөг харах жишээ энд байна.

[cceN_cpp theme = "үүр цайх"] хөвөх x, y; void setup () {size (700, 300); } void draw () {background (234, 113, 107); y = sin (радиан (x)) * 150 + 150; x ++; цус харвалтгүй (); эллипс (x, y, 50, 50); } [/cceN_cpp]

Нүгэл функц нь үечилсэн функц юм. Үүний хамгийн бага утга нь -1, хамгийн их утга нь 1. Дэлгэцийн өндөр нь 300. y = sin (radians (x)) * 150 + 150 гэж заасан тул y утгын өөрчлөлтийн хязгаарыг 0 дотор сайн хянах болно. 300 хүртэл.

Ээрэх тойрог

Эцэст нь бид энэ бүлэгт хамгийн их импортолсон хэсгийг орууллаа. Хөтөлбөрт тойрог замыг хэрхэн яаж зурах вэ? Үүнийг харуулахын тулд функцийг хэрхэн ашиглах вэ? Энэ нийтлэлийн эхэнд харсан хоёр зургийг танд дахин харуулъя.

Үнэндээ тэд тойргийн координат ба тригонометрийн функцийн хоорондын хамаарлыг нүдээр харуулсан. Дээрх зургуудын хөдөлгөөнийг байнга өсөн нэмэгдэж буй бие даасан хувьсагч θ удирддаг. Зүүн бол sin ба cos функцийн дүрс бөгөөд баруун тал нь газрын зураг зурсны дараа дугуй хөдөлгөөн хийх цэгийг илэрхийлдэг. Маш ухаалаг биш гэж үү? Энэ нь нууцлаг биш болсон. Үүнийг ойлгохын тулд та кодыг ашиглаж болно.

Энгийн жишээ:

[cceN_cpp theme = "үүр цайх"] хөвөх x, y, r, R, өнцөг; void setup () {size (300, 300); r = 20; // Тойргийн диаметр R = 100; // Хөдөлгөөний замын радиус x = 0; өнцөг = 0; y = өндөр/2; } void draw () {background (234, 113, 107); орчуулах (өргөн/2, өндөр/2); // Анхны цэгийг дэлгэцийн төв рүү зөөнө үү. цус харвалтгүй (); x = R * cos (өнцөг); y = R * sin (өнцөг); эллипс (x, y, r, r); өнцөг += 0.05; } [/cceN_cpp]

Хараач! Ээрэх тойрог гарч ирэв! Энд бие даасан хувьсагч нь өнцгийн өнцөг тогтмол өсөхөө больсон (зураг дээрх θ -тэй тэнцүү). Энэ бол өнцгийн өнцөг юм. Үүний дотор xy нь харьцангуй үржүүлсэн R коэффициенттэй бөгөөд энэ нь тойргийн хөдөлгөөний радиусыг өргөтгөхөд хүргэдэг (R нь радиусын хувьд). Хэрэв R -ийг үржүүлэхгүй бол түүний хөдөлгөөний замыг -1 -ээс 1 хүртэл хязгаарлах болно.

Өсөн нэмэгдэж буй x -ийг яагаад ашиглаж болохгүй гэж? Функцийн шинж чанараас хамааран тодорхойлолтын хүрээнд байгаа x -тэй нийцэх цорын ганц y байна. Тиймээс тэгш өнцөгт хэмжээсийн координатын хавтгай системд та тойрог шууд зурах "энгийн функц" -ийг олж чадахгүй. Энэ форматыг цаашид ашиглах боломжгүй гэсэн үг юм.

y = (x -ийн үл мэдэгдэх илэрхийлэл?);

x ++;

Тиймээс бид үзэл бодлоо өөрчлөх ёстой. Өөр өнцгийг бие даасан хувьсагч болгон сонгоод sin ба cos функцийг ашиглан хэвтээ ба босоо координат болгон хувиргаарай.

x = R * cos (өнцөг);

y = R * sin (өнцөг);

өнцөг += 0.05;

Та нарын зарим нь яагаад энэ нь тойргийн хөдөлгөөний замыг харуулдаг вэ гэж гайхаж магадгүй юм. Тригонометрийн функцын тодорхойлолтын дагуу бид энэ функцийг эсрэг талын гипотенузтай харьцуулсан харьцааг амархан няцааж чадна. cos функц нь зэргэлдээх гипотенузын харьцаа юм. Тойргийн цэг хаана байгаагаас үл хамааран r (радиус) өөрчлөгдөхгүй хэвээр байх болно. Тиймээс бид x координат ба y координатын илэрхийлэлийг дүгнэж болно.

Энэ нь математикийн удирдамж биш тул энд би танд тригонометрийн функцын талаар илүү их мэдлэг үзүүлэхээ болих гэж байна. Хэрэв та үүнийг мэдэхийг хүсч байгаа эсвэл зүгээр л мартчихсан бол та үүнийг дахин шалгаж үзэхийг оролдож болно.

Мэдээжийн хэрэг, хэрэв та үүнийг бүрэн ойлгож чадахгүй бол энэ нь зүгээр юм. Та үүнийг хэрхэн тойрог зурах талаар л мэдэх хэрэгтэй. Энэ бол бас нэг төрлийн "програмчлалын санаа" юм. Хожим нь бид зарим төрлийн функцийг хэрэгжүүлэхийн тулд бусад модулиудыг дуудах болно. Үүнийг нарийвчлан мэдэхийн тулд өөрийгөө бүү шахаарай.

Гэсэн хэдий ч sin болон cos функц нь нийтлэг байдаг. Хэрэв та илүү өндөр түвшний бүтээл хийхийг хүсч байвал үүнийг сайтар судалж үзэх нь дээр. Хэрэв энэ асуулт өөрөө өөрсдийгөө математикийн илүү их мэдлэг олж авахад түлхэц өгөх юм бол илүү сонирхолтой зүйлүүд таныг ухаж авахыг хүлээж байна.

Эдгээр нь тригонометрийн функцтэй шууд холбоотой зургууд юм.

Алхам 4: Хөдөлгөөний координатын систем

Өмнөх эффектүүд нь график координатын өөрчлөлтийн тухай юм. Координатын систем нь өөрөө статик юм. Үнэндээ бид хөдөлгөөний эффектийг хэрэгжүүлэхийн тулд координатын хөдөлгөөнийг хийж чадна. Энэ бол далайн эрэг дээрх хүмүүс завин дээрх бусад хүмүүсийг харж байгаатай адил юм. Усан онгоцонд байгаа хүмүүсийн хувьд завь нь хөдөлгөөнгүй байдаг. Гэхдээ хэрэв завь өөрөө хөдөлж байвал яах вэ, завин дээрх хүмүүс түүнтэй хамт хөдөлдөг. Өмнөх тохиолдлууд нь "завин дээр гүйж буй хүмүүс" -ийн тухай юм. Үнэндээ завь хөдлөхгүй байна. Дараахь зүйл бол координатын системийг өөрчлөх нийтлэг функцууд юм.

Орчуулах функц

Өмнө нь ярьж байсан орчуулгын функцийг графикийн координатын системийг хэвтээ чиглэлд шилжүүлэхэд ашигладаг.

Дуудлагын формат:

орчуулах (a, b)

Эхний параметр нь пикселийн хувьд x тэнхлэгийн эерэг чиглэл рүү шилжих гэсэн үг юм. Хоёрдахь параметр нь b пикселийн хувьд y тэнхлэгийн эерэг чиглэл рүү шилжих гэсэн үг юм.

Хоёр кодыг харьцуулж, ялгааг олохыг хичээ. (Кодыг хялбарчлахын тулд бид функцын хэмжээг устгаж болно, дэлгэцийн өргөн ба өндрийг анхдагчаар 100 гэж тохируулдаг.)

Хэрэглэхийн өмнө:

эллипс (0, 0, 20, 20);

Бид хэрэглэсний дараа:

орчуулах (50, 50);

эллипс (0, 0, 20, 20);

Функцийг эргүүлэх

Дуудлагын формат:

эргүүлэх (а)

Энэ нь координатын системийг эргүүлэхэд ашигладаг. Параметр эерэг байвал анхны цэгийг төв цэг болгон сонгож, цагийн зүүний дагуу эргүүлнэ. Параметр оруулах нь радианыг ашиглах тригонометрийн функцтэй ижил байна.

Хэрэглэхийн өмнө:

эллипс (50, 50, 20, 20);

Хэрэглэсний дараа:

эргүүлэх (радиан (30));

эллипс (50, 50, 20, 20);

Хөтөлбөрийн үр нөлөө нь тойргийг координатын төвийн цэгийг цагийн зүүний дагуу 30 градус эргүүлэх явдал юм.

Функцийн хуваарь

Дуудлагын формат:

масштаб (а)

Энэ функц нь координатын системийг томруулж чаддаг. Энэ утга нь масштабаар хэмжихэд зориулагдсан болно. Параметр 1 -ээс хэтэрсэн бол томруулна уу; хэрэв энэ нь 1 -ээс бага бол томруулна уу.

Хэрэглэхийн өмнө:

эллипс (0, 0, 20, 20);

Хэрэглэсний дараа:

масштаб (4);

эллипс (0, 0, 20, 20);

Дээрх зурган дээрх тойрог нь анхны хэмжээнээс 4 дахин томорсон байна. Түүнчлэн, та x тэнхлэг ба тэнхлэгийн чиглэлийг тус тусад нь томруулахын тулд хоёр параметрийг ашиглаж болно.

масштаб (4, 2);

эллипс (0, 0, 20, 20);

Өөрчлөлтийн функцын супер байрлал

Энд супер байрлал нь одоогийн координатын системтэй холбоотой өөрчлөлтүүд юм. Өөрөөр хэлбэл, эффектийг давхцуулж болно.

орчуулах (40, 10);

орчуулах (10, 40);

эллипс (0, 0, 20, 20);

Түүний эцсийн нөлөө нь тэнцүү байх болно

орчуулах (50, 50);

эллипс (0, 0, 20, 20);

Функцийг эргүүлэхтэй ижил

эргүүлэх (радиан (10));

эргүүлэх (радиан (20));

эллипс (50, 50, 20, 20);

Үүнтэй тэнцүү

эргүүлэх (радиан (30));

эллипс (50, 50, 20, 20);

Функц хоёулаа масштаб болон эргүүлэхийн тулд анхны цэг дээр төвийг эргүүлж, эргүүлнэ. Хэрэв бид (50, 50) төв байрлалтай эргүүлэх эффект авахыг хүсч байвал эсрэгээр бодох хэрэгтэй. Эхлээд анхны цэгийг (50, 50) байрлал руу шилжүүлж, дараа нь эргүүлэх хувиргах функцийг нэмнэ үү. Эцэст нь өөрийн графикийг эх цэг дээр нь зурна.

Хэрэглэхийн өмнө:

эллипс (50, 50, 50, 20);

Хэрэглэсний дараа:

орчуулах (50, 50);

эргүүлэх (радиан (45));

эллипс (0, 0, 50, 20); // Эргүүлэх өнцгийн өөрчлөлтийг харахын тулд бид зууван хэлбэртэй болгосон.

Энэ нь мушгирсан мэт санагдаж магадгүй юм. Та илүү их дасгал хийх хэрэгтэй, тэгвэл та үүнийг ойлгох болно. (Та мөн ялгааг харахын тулд функцийн орчуулах, эргүүлэх дарааллыг өөрчлөхийг оролдож болно.)

Хэвтээ ба тойрог хөдөлгөөн

Дараах тохиолдолд координатын системийг өөрчлөх замаар бид хөдөлгөөний үр нөлөөг хэрэгжүүлэх болно. Үүний зэрэгцээ өмнөх бүлгийн жишээг дурдахыг хүсч байна. Ихэнх тохиолдолд та тодорхой үр нөлөөг олж авахын тулд огт өөр аргыг ашиглаж болно.

Алхам 5: Хэвтээ хөдөлгөөн

[cceN_cpp theme = "үүр цайх"]

int x, y; void setup () {size (300, 300); x = 0; y = өндөр/2; } void draw () {background (234, 113, 107); цус харвалтгүй (); орчуулах (x, y); эллипс (0, 0, 50, 50); x ++; } [/cceN_cpp]

Тойргийн координат өөрчлөгдөөгүй боловч түүний координатын систем өөрчлөгдсөн байна.

Эргүүлэх хөдөлгөөн

[cceN_cpp theme = "үүр цайх"] хөвөх r, R, өнцөг; void setup () {size (300, 300); r = 20; // Тойргийн хэмжээ R = 100; // Хөдөлгөөний тойргийн радиус} void draw () {background (234, 113, 107); орчуулах (өргөн/2, өндөр/2); // Анхны цэгийг дэлгэцийн төв рүү зөөнө үү. эргүүлэх (өнцөг); цус харвалтгүй (); эллипс (0, R, r, r); өнцөг += 0.05; } [/cceN_cpp]

Тригонометрийн функцээс хамаагүй илүү ойлгомжтой, энгийн биш гэж үү? Энд танд асуулт байж магадгүй юм. Эргэдэг кодыг жишээ болгон аваарай. Мэдээжийн хэрэг, дээр дурдсан хувиргах функц нь харьцангуй бөгөөд давхцах боломжийг олгодог. Хэрэв бид хөрвүүлэлтийг (өргөн/2, өндөр/2) функцын зурганд бичдэг бол энэ нь функцын сугалаа нэг удаа ажиллах бүрт координатын систем хол зайд шилжих болно гэсэн үг биш юм. анхны сууринаас баруун доод чиглэлд? Үндэслэлээр энэ нь дэлгэцийн төвд үүрд үлдэхгүй.

Та ингэж ойлгож болно. Функцийн зургийн код нь доороос доош хүртэлх үйлдлийг хийж дуусмагц координатын систем хоёр дахь үйлдэл дээр анхны төлөв рүү буцна. Зүүн дээд буланд буцаж очихын тулд координатын системийн анхны цэгийг анхдагчаар тохируулна. Тиймээс, хэрэв бид координатын системийг тасралтгүй өөрчлөхийг хүсч байвал функцийн эргэх өнцгийн параметрүүд нь түүний утгыг байнга нэмэгдүүлэх болно.

Координатын төлөвт хандах

Заримдаа бид координатын системийн статусыг өмнөх статус дээр үндэслэн өөрчлөхийг хүсдэггүй. Энэ үед бид pushMatrix болон popMatrix функцийг ашиглах ёстой. Хоёр функц нь ихэвчлэн хос хэлбэрээр гарч ирдэг. PushMatrix функц нь popMatrix -ээс өмнө байдаг. Тэдгээрийг дангаар нь ашиглах боломжгүй, эс тэгвээс энэ нь буруу болно.

Жишээ:

[cceN_cpp theme = "үүр цайх"] pushMatrix (); // Координатын системийн статус орчуулгыг хадгалах (50, 50); эллипс (0, 0, 20, 20); popMatrix (); // Координатын системийн төлөвийг унших (0, 0, 20, 20); [/cceN_cpp]

Энэ жишээнд translate (50, 50) ашиглахаас өмнө координатын системийн өнөөгийн байдлыг хадгалахын тулд pushMatrix. функцийг ашигладаг. Үүний зэрэгцээ энэ нь анхны статус юм. Бид тойрог зурсны дараа popMatrix -ийг хэрэгжүүлсний дараа энэ байдал буцаж ирэх болно. Энэ үед функцийг шууд хэрэгжүүлээрэй, энэ нь орчуулгын функцэд нөлөөлөөгүй болохыг олж мэдэх болно, харин анхны цэгийн зүүн дээд буланд дөрвөлжин зурна.

Үүнээс гадна pushMatrix болон popMatrix функц нь үүрлэх боломжийг олгодог.

Жишээлбэл

pushMatrix ();

pushMatrix ();

popMatrix ();

popMatrix ();

Уялдаа холбоогоо харуулахын тулд бид өтгөрүүлсэн форматыг сонгодог.

Хосолсон хөдөлгөөн үү, Хөдөлгөөнд байгаа хөдөлгөөн үү?

Одоо чухал хэсгийн хоёр дахь давалгаа эхэлж байна. Зөвхөн урагшлахыг хичээ. Өмнө нь бид завь ба хүмүүсийн зүйрлэлийг ашиглаж байсан. Хэрэв бид хүмүүсийг болон завийг хоёуланг нь хөдөлгөдөг бол далайн эрэг дээрх хүмүүс ямар мэдрэмж төрөх талаар та бодож байсан уу?

Хэвтээ хөдөлгөөнийг координатын системийн эргэх хөдөлгөөнтэй хослуулахтай адил. Энд гол зүйл бол зөвхөн нэг чиглэлд шилжих явдал юм.

[cceN_cpp theme = "үүр цайх"] int x, y; хөвөх өнцөг; void setup () {size (300, 300); дэвсгэр (234, 113, 107); цус харвалтгүй (); x = 0; // x -ийн анхны утга 0 байх үед бид энэ кодын өгүүлбэрийг үл тоомсорлож болно. Хувьсагчийг зарлахад анхдагч утга нь 0. y = 0; // Дээр дурдсантай ижил. өнцөг = 0; // Дээр дурдсантай ижил. } void draw () {өнцөг += 0.25; y--; орчуулах (өргөн/2, өндөр/2); pushMatrix (); эргүүлэх (өнцөг); эллипс (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Мөн дугуй хөдөлгөөн ба координатын системийн масштаб байдаг.

[cceN_cpp theme = "үүр цайх"] хөвөх x, y, өнцөг; void setup () {size (300, 300); дэвсгэр (234, 113, 107); цус харвалтгүй (); } void draw () {өнцөг += 0.01; x = sin (өнцөг) * 100; y = cos (өнцөг) * 100; орчуулах (өргөн / 2, өндөр / 2); pushMatrix (); масштаб (1 + 0.1 * нүгэл (өнцөг * 10)); эллипс (x, y, 5, 5); popMatrix (); } [/cceN_cpp]

Үүнд бүү хуурт! Тойргийн цэг нь үнэндээ дугуй хөдөлгөөн хийдэг. Хэрэв бид үүнийг видео камер ашиглан масштабтай харьцуулах юм бол ойлгоход хэцүү биш юм. Видео камер нь урд эсвэл хойд чиглэлд байнга хөдөлдөг бөгөөд дугуй хөдөлгөөнөөр нэг цэгийг буудаж байна.

Гайхсан уу? Эдгээр нь энгийн үндсэн функцууд юм. Гэхдээ өөр өөр хослолоор бид маш олон янзын эффект үүсгэж чадна. Өнөөдрийг хүртэл хайгуулын ажилд зориулж өрөөгөө үлдээхийн тулд миний өртөлт зогссон.

Алхам 6: Цогц хэрэглээ

Энэ бүлгийн хувьд удахгүй дуусах гэж байна. Сүүлийн хоёр бүлэгт би график хөдөлгөөний үндсэн аргыг танилцуулсан. Анхны санаагаа бодвол та үүнийг илүү гүнзгий ойлгосон байх гэж бодож байна. Наад зах нь, таны лавлахад зориулж дуусгасан жишээг энд оруулав.

[cceN_cpp theme = "үүр цайх"] хөвөх x1, y1, x2, y2, r, R; хөвөх өнцөг1, өнцөг2; void setup () {size (300, 300); r = 12; R = 120; өнцөг1 = 0; өнцөг2 = PI/4; } void draw () {background (234, 113, 107); цус харвалтгүй (); орчуулах (өргөн / 2, өндөр / 2); өнцөг1 += 0.02; өнцөг2 += 0.06; x1 = R *sin (өнцөг1); y1 = R* cos (өнцөг1); x2 = R/2 *нүгэл (өнцөг2); y2 = R/2 *cos (өнцөг2); эллипс (x1, y1, r/2, r/2); эллипс (x2, y2, r, r); эллипс (-x1, -y1, r/2, r/2); эллипс (-x2, -y2, r, r); эллипс (x1, -y1, r/2, r/2); эллипс (x2, -y2, r, r); эллипс (-x1, y1, r/2, r/2); эллипс (-x2, y2, r, r); цус харвалт (255); цус харвалт (3); шугам (x1, y1, x2, y2); шугам (-x1, -y1, -x2, -y2); шугам (x1, -y1, x2, -y2); шугам (-x1, y1, -x2, y2); } [/cceN_cpp]

Энэ жишээ нь бидний танилцуулсан өмнөх бүлгээс өөр мэдлэг агуулаагүй болно.

Аль онооны төлөө таарч байна вэ? Аль мөр таарч байна вэ? Би ч бас ойлгож чадахгүй байна. Гэхдээ энэ нь кодын жижиг хэсгээс гарсныг би санаж байна.

Энэ бол түүний хөдөлгөөний мөн чанар юм. Үлдсэн шугамууд нь зөвхөн толин тусгал эффект юм. Хэрэв та энэ зааврыг үргэлжлүүлэн дагаж мөрдвөл график хөдөлгөөний статусыг бодит цаг хугацаанд өөрчлөхийн тулд шинэчилсэн хувилбар гаргаж, график дээрээ хянагч нэмж болно.

Програмчлалын сонирхолтой зүйл бол та дүрмийг боловсруулж эсвэл нэгтгэж чаддагт оршино. Гэсэн хэдий ч эцсийн хөтөлбөр юу байх нь бүгд таны чадвараас хамаарна. Ихэвчлэн дизайнерууд хүчирхэг график төсөөлөлтэй байдаг. Та толгой дээрээ зураг зурж, дараа нь код болгон орчуулахыг оролдож болно. Түүнчлэн, та код, дүрэм журам, дизайны функц, хувьсагчдаас хүссэнээрээ эхэлж болно. Боловсруулалт бол таны ноорог, код бол таны сойз гэдгийг санаарай! Зүгээр л санаа бодлоо чөлөөтэй цацаарай!

Алхам 7: Төгсгөл

Манай бүлгийн хамгийн сүүлд эхнээсээ удаан хугацаанд хадгалсан асуултандаа эргэн оръё. Хөтөлбөртэй зураг авахын тулд маш их хүчин чармайлт гаргах нь ямар учиртай вэ? Та энэ бүлгийг сурч мэдсэнийхээ дараа маш олон тоглоомын аргыг судлахыг хүлээж байгааг олж мэдэх болно.

[cceN_cpp theme = "үүр цайх"] хөмрөх 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; нүүрD = 300; цус харвалт (8); эллипс (175, 220, earD, earD); эллипс (өргөн - 175, 220, earD, earD); шулуун (100, 100, faceD, faceD); мөр (browX, 160, 220, 240); мөр (өргөн-browX, 160, өргөн-220, 240); дүүргэх (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255)); эллипс (175, 220, eyeD, eyeD); эллипс (өргөн-175, 220, eyeD, eyeD); дүүргэх (255); цэг (өргөн/2, өндөр/2); гурвалжин (170 - cos (frameCount / 10.0) * 20, 300 - sin (frameCount / 10.0) * 20, өргөн - (170 + cos (frameCount / 10.0) * 20), 300 + sin (frameCount / 10.0) * 20, 250, 350); } [/cceN_cpp]

Динамик графикийн хувьд ид шид биш гэж үү? Энд би танд хэт их тохиолдлуудыг үзүүлэхгүй байна. Та надаас хамаагүй илүү эффект зохион бүтээх боломжтой байх. Програм ашиглан зурах давуу тал нь та пиксел бүрээр тоглох боломжтой. Таны график нь битийн зураг биш тул таны график дээрх гол цэг бүрийг хянах боломжтой. Энэ нь бусад програм хангамжийн ойлгож чадахгүй байгаа зарим үр нөлөөг ойлгож чадна.

Хэрэв та бүх зүйлийг эвдэж, дахин нэгтгэхийг хүсч буй зүрх сэтгэлтэй бол энэ хөтөлбөрийг хэрэгжүүлэхэд танд туслах болно.

Энэхүү нийтлэлийг дизайнер Вэнзи -ээс авсан болно.

Алхам 8: Харьцангуй уншилт:

Дизайнерын хувьд сонирхолтой програмчлалын удирдамж-Анхны мэдрэгчийг боловсруулж байна

Дизайнерын хувьд сонирхолтой програмчлалын удирдамж-Анхны боловсруулалтын програмаа үүсгээрэй

Дизайнерын хувьд сонирхолтой програмчлалын заавар - Зургаа ажиллуулаарай (нэгдүгээр хэсэг)

Хэрэв танд асуулт байвал [email protected] руу имэйл илгээх боломжтой.

Энэ нийтлэлийг:

Зөвлөмж болгож буй: