Мазмуну:

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк): 8 кадам
Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк): 8 кадам

Video: Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк): 8 кадам

Video: Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк): 8 кадам
Video: ТОП 5 IT ПРОФЕССИЯ 2024, Июнь
Anonim
Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк)
Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк)

Математика, көбүңүз үчүн, пайдасыздай көрүнөт. Күнүмдүк жашообузда көбүнчө кошуу, азайтуу, көбөйтүү жана бөлүү колдонулат. Бирок, эгер сиз программа менен түзө алсаңыз, анда такыр башкача. Канчалык көп билсеңиз, ошончолук сонун натыйжага ээ болосуз.

1 -кадам: Кыймыл жана функция

Сиздин табитиңизди жакшыртуу үчүн сизге бир нече белгисиз сүрөттөрдү көрсөтөйүн.

Бул эмне? Эми бул суроону биринчи сактаңыз, экинчиси сиз билесиз жана колдоносуз.

Акыркы бөлүмдө биз статикалык графиканы динамикалуу кыла турган функцияларды орнотууну жана функция тартууну үйрөндүк. Бирок, бул кыймылдын форматы өтө эле жөнөкөй. Биз графикти өз мүнөзү менен иштетүү үчүн мурда үйрөнгөн функционалдык билимибизди колдонобуз.

Жогорудагы сүрөттөрдөн канча функцияны тааный аласыз? Алардын кыймыл менен кандай байланышы бар? Эми андан квадрат функция алалы, кээ бир параметрлерди туш келди кошуп, эмне болорун көрөлү. Мисалы, y = x² / 100.

Функциянын сүрөтү ушундай көрүнөт. Төмөндөгү кодду көчүрүңүз.

[cceN_cpp theme = "таң"] сүзүү x, y; void setup () {size (300, 300); background (0); x = 0; } void draw () {stroke (255); strokeWeight (2); y = pow (x, 2) / 100.0; // Функция pow белгиси номеринин nчу күчүнө кайтып келет. (x, 2) xтин квадратын билдирет. Биринчи параметр - базалык номер, экинчиси - индекс. чекит (x, y); x ++; } [/cceN_cpp]

Running Effect

Андан кийин, күнөө функциясын тандаңыз. Формула: y = 150 + sin (x).

Төмөнкү кодду көчүрүү.

[cceN_cpp theme = "таң"] сүзүү x, y; void setup () {size (300, 300); background (0); x = 0; } void draw () {y = height/2 + sin (radians (x)) * 150; // Радиан функциясы xти бурчка айландырат. x ++; инсульт (255); strokeWeight (2); чекит (x, y); } [/cceN_cpp]

Running Effect

Бул кодду иштеткенден кийин алган графикабыз. Жана бул алардын кыймыл жолдору. Мурункусуна салыштырмалуу, жыйынтык ачык көрүнүп турат. Функциянын сүрөтү чындыгында кыймыл трекине туура келет! Бул жетишерлик жөнөкөй. Сиз жөн гана 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)

Сиз ошондой эле функцияны туш келди программага жазып, анын кыймыл треги кандай болорун көрө аласыз. Мааний талаасы менен аныктоо доменинин диапазонун эске алууну унутпаңыз, антпесе сиздин график экраныңыздан чыгып кетет.

TrigonometricFunction

Эми тригонометриялык функциялардын айрым жазууларын билүү үчүн андан ары баралы.

Программада функциянын параметрин бурчка салыштырмалуу киргизүү радианды кабыл алганына көңүл бурушубуз керек. Ошентип, sin90 ° күнөөгө жазылат (PI / 2). Эгерде сиз бул метод менен тааныш болбосоңуз, анда бурчту радианга айландыруу үчүн функционалдык randiansты колдонуп, андан кийин 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 ++; noStroke (); эллипс (x, y, 50, 50); } [/cceN_cpp]

Күнөө функциясы - мезгилдүү функция. Анын минималдуу мааниси -1, ал эми максималдуу мааниси 1. Экрандын бийиктиги 300. y = sin (радиандар (x)) * 150 + 150ге таандык, ошондуктан y маанисинин өзгөрүү диапазону 0 ичинде жакшы башкарылат. 300гө чейин.

Spinning Circle

Ооба, биз акыры ушул бөлүмдүн эң маанилүү бөлүгүнө кирдик. Программада тегерек жолду кантип тартуу керек? Аны көрсөтүү үчүн функцияларды кантип колдонсо болот? Мен сизге бул макаланын башында көргөн эки сүрөттү дагы көрсөтөйүн.

Чынында, алар айлананын координаты менен тригонометриялык функциянын ортосундагы байланышты визуалдуу түрдө ачып беришкен. Жогорудагы сүрөттөрдөгү кыймыл тынымсыз өсүп турган көз карандысыз өзгөрмөлүү driven менен шартталган. Сол - бул күнөө жана кос функциясынын сүрөтү, ал эми оң картага түшүрүлгөндөн кийин тегерек кыймыл жасоочу чекитти билдирет. Бул абдан акылдуу эмеспи? Бул мындан ары табышмактуу эмес. Сиз муну түшүнүү үчүн кодду колдоно аласыз.

Жөнөкөй мисал:

[cceN_cpp theme = "таң"] сүзүү x, y, r, R, бурч; void setup () {size (300, 300); r = 20; // Circle диаметри R = 100; // Кыймыл жолунун радиусу x = 0; бурч = 0; y = бийиктиги/2; } void draw () {background (234, 113, 107); которуу (туурасы/2, бийиктиги/2); // Оригиналдуу чекитти экран борборуна жылдырыңыз. noStroke (); x = R * cos (бурч); y = R * sin (бурч); эллипс (x, y, r, r); бурч += 0,05; } [/cceN_cpp]

Мына! Айлануучу чөйрө пайда болот! Бул жерде көз карандысыз өзгөрмө бурчтун бурулушунун туруктуу өсүшүндө болбойт (сүрөттөгү θге барабар). Бул бурч үчүн турат. Анын ичинде xy салыштырмалуу көбөйтүлгөн R коэффициентине ээ, бул айлананын кыймылынын радиусун кеңейтүүгө алып келет (R - радиус үчүн). Эгерде R көбөйтүлбөсө, анда анын кыймыл жолу -1ден 1ге чейин чектелет.

Эмне үчүн көбөйүп жаткан x колдонулбайт? Функциянын касиетине ылайык, аныктаманын ичиндеги х ар бир y ага дал келген жалгыз yге ээ. Ошентип, тегиз тик бурчтуу өлчөмдөгү координаттар системасында тегеректи түз тартуу үчүн "жөнөкөй функцияны" таба албайсыз. Башкача айтканда, биз мындан ары бул форматты колдоно албайбыз.

y = (x белгисиз туюнтмасы?);

x ++;

Андыктан оюбузду өзгөртүшүбүз керек. Башка бурчту көз карандысыз өзгөрмө катары тандап, андан кийин sin жана cos функциясын колдонуп, аны горизонталдуу жана вертикалдуу координатка айландырыңыз.

x = R * cos (бурч);

y = R * sin (бурч);

бурч += 0,05;

Кээ бирлериңиз эмне үчүн ал айлананын кыймылынын жолун көрсөтө алат деп ойлонушуңуз мүмкүн. Тригонометриялык функциянын аныктамасына ылайык, биз бул функцияны карама -каршы тараптын гипотенузага болгон катышын күнөөлөй алабыз; cos функциясы - гипотенузага чектештердин катышы. Айлананын чекити кайда болбосун, r (радиусу) өзгөрүүсүз калат. Ошентип, биз x координаты менен y координатынын туюнтмасын жыйынтыктай алабыз.

Бул математикалык жетекчилик болбогондуктан, бул жерде мен сизге тригонометриялык функция жөнүндө көбүрөөк билим берүүнү токтотом. Эгер сиз муну билгиңиз келсе же жөн эле унутуп калсаңыз, аны кайра өзүңүз карап көрүңүз.

Албетте, эгер сиз аны толук түшүнө албасаңыз, анда баары жакшы. Сиз аны тегерек чийүү үчүн кантип колдонууну гана билишиңиз керек. Бул дагы "программалоо идеясынын" бир түрү. Кийинчерээк, биз көбүнчө белгилүү бир функцияны ишке ашыруу үчүн башкалар тарабынан жасалган кээ бир модулдарды колдонобуз. Аны майда -чүйдөсүнө чейин билүүгө өзүңүздү түртпөңүз.

Бирок, sin жана cos функциясы кеңири таралган. Эгерде сиз жогорку деңгээлдеги жаратууну кааласаңыз, аны жакшылап билүүгө аракет кылганыңыз оң. Эгерде бул суроо өзүбүздү математикалык билимди көбүрөөк үйрөнүүгө түрткү бере алса, анда сизди кызыктырган нерселер күтүп турат.

Булар тригонометриялык функцияга жакын сүрөттөр.

4 -кадам: Координаттардын кыймылы системасы

Мурунку эффекттер графикалык координаттардын өзгөрүүсү жөнүндө. Координаттар системасынын өзү статикалык. Чындыгында, биз мотордук эффектти ишке ашыруу үчүн координаттардын кыймылын жасай алабыз. Бул жээктеги адамдар кайыктагы башка кишилерди карап жаткандай. Кайыктагы адамдар үчүн кайык статикалык. Бирок, эгерде кайык өзү кыймылда болсо, анда кайыкта жүргөн адамдар аны менен бирге кыймылдашат. Мурунку иштердин бардыгы "кайыкта чуркаган адамдар" жөнүндө. Чынында, кеме жылбайт. Төмөндө координаттар системасын өзгөртүү үчүн кээ бир жалпы функциялар.

Которуу функциясы

Котормо функциясы, биз буга чейин айтканбыз, графиктин координаттар системасын горизонталдуу жылдыруу үчүн колдонулат.

Чакыруу форматы:

которуу (а, б)

Биринчи параметр пиксел үчүн 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, 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); noStroke (); которуу (x, y); эллипс (0, 0, 50, 50); x ++; } [/cceN_cpp]

Айлананын координаты өзгөртүлбөйт, бирок анын координат системасы өзгөрөт.

Ротация кыймылы

[cceN_cpp theme = "таң"] сүзүү r, R, бурч; void setup () {size (300, 300); r = 20; // Circle өлчөмү R = 100; // Кыймылдын радиусу} void draw () {background (234, 113, 107); которуу (туурасы/2, бийиктиги/2); // Оригиналдуу чекитти экран борборуна жылдырыңыз. айлануу (бурч); noStroke (); эллипс (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.to функциясын колдонобуз. Бул ошол эле учурда баштапкы абал. Биз тегеректи тарткандан кийин, popMatrixти ишке ашырабыз, ал ушул статуска кайтып келет. Бул учурда, түз функцияны ишке ашырыңыз, ал функциянын котормосунун таасири болбогонун көрө аласыз, анын ордуна баштапкы чекиттин жогорку сол бурчуна төрт бурчтук тартат.

Мындан тышкары, pushMatrix жана popMatrix функциялары уя салууга мүмкүндүк берет.

Мисалы

pushMatrix ();

pushMatrix ();

popMatrix ();

popMatrix ();

Интуитивдүү түрдө анын байланышын көрсөтүү үчүн биз конденсацияланган форматты тандап алабыз.

Биргелешкен кыймылбы же кыймылдагы кыймылбы?

Эми маанилүү бөлүктүн экинчи толкуну башталат. Тек алга умтылуга тырыс. Буга чейин биз кайык менен адамдардын метафорасын колдонгонбуз. Элди да, кайыкты да кыймылга келтирсек, жээктеги адамдар кандай сезимде болорун ойлонуп көрдүңүз беле?

Горизонталдык кыймылды координаттар системасынын айлануучу кыймылы менен айкалыштыруу сыяктуу. Бул жерде негизи бир гана багытта кыймылдоо.

[cceN_cpp theme = "таң"] int x, y; сүзүү бурчу; void setup () {size (300, 300); фон (234, 113, 107); noStroke (); x = 0; // xтин баштапкы мааниси 0 болгондо, биз бул коддун сүйлөмүн этибарга албай койсок болот. // Жогорудагыларга окшош. бурч = 0; // Жогорудагыларга окшош. } void draw () {angle += 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); noStroke (); } void draw () {angle += 0.01; x = sin (бурч) * 100; y = cos (бурч) * 100; которуу (туурасы / 2, бийиктиги / 2); pushMatrix (); масштаб (1 + 0.1 * sin (бурч * 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; angle1 = 0; бурч2 = PI/4; } void draw () {background (234, 113, 107); noStroke (); которуу (туурасы / 2, бийиктиги / 2); angle1 += 0,02; angle2 += 0.06; x1 = R *sin (бурч1); y1 = R* cos (бурч1); x2 = R/2 *sin (бурч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); strokeWeight (3); сап (x1, y1, x2, y2); сызык (-x1, -y1, -x2, -y2); сап (x1, -y1, x2, -y2); сызык (-x1, y1, -x2, y2); } [/cceN_cpp]

Бул мисал мурунку бөлүмүбүздөн башка эч кандай билимди камтыбайт.

Кайсы пункттар үчүн дал келет? Кайсы саптар дал келет? Мен да түшүнө албай жатам. Бирок ал коддун кичинекей бөлүмүнөн келип чыкканын эстейм.

Бул анын кыймылынын табияты. Калган сызыктар жөн гана күзгү эффект. Эгер сиз бул көрсөтмөнү аткара берсеңиз, анда графикалык кыймыл статусун реалдуу убакытта өзгөртүү үчүн, жаңыртылган версияны жасап, графикаңызга контроллерди кошо аласыз.

Программалоонун кызыктуу жери, сиз эрежелерди иштеп чыгууга же айкалыштырууга болот. Бирок, акыркы программа кандай болот, баары сиздин жөндөмүңүзгө жараша болот. Адатта дизайнерлер күчтүү графикалык фантазияга ээ. Сиз башыңызга сүрөттү чийип, анан аны кодго которууга аракет кылсаңыз болот. Ошондой эле, сиз каалагандай коддон жана регламенттен, дизайн функцияларынан жана өзгөрмөлөрдөн баштасаңыз болот. Эсиңизде болсун, иштетүү бул сиздин эскизиңиз, ал эми кодуңуз - щеткаларыңыз! Жөн гана эркин ой -пикирлериңизди чачыңыз!

7 -кадам: END

Акыркы бөлүмүбүздө, башынан бери көпкө сакталган суроого кайрылалы. Программа менен сүрөт тартуу үчүн ушунчалык көп күч жумшоонун эмне кереги бар? Бул бөлүмдү үйрөнгөндөн кийин, сиз изилдөөнүн күтүп жаткан көптөгөн оюн ыкмаларын таба аласыз.

[cceN_cpp theme = "таң"] 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 + күнөө (frameCount / 10.0) *20; eyeD = 60 + sin (frameCount/30.0) *50; faceD = 300; strokeWeight (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]

Бул динамикалык графика үчүн сыйкырдуу эмеспи? Бул жерде мен сизге өтө көп иштерди көрсөтпөйм. Сиз мага караганда алда канча жакшы эффект түзө аласыз. Программа менен сүрөт тартуунун артыкчылыгы бар, сиз ар бир пиксел менен ойной аласыз. Графигиңиз bitmap болбогондуктан, графигиңиздеги ар бир негизги пункт көзөмөлдөнөт. Бул башка программалык камсыздоого мүмкүн болбогон кээ бир эффекттерди ишке ашыра алат.

Эгерде сизде бардыгын талкалап, кайра бириктирүүнү каалаган жүрөгүңүз болсо, окуу программасы сизге бул идеяны ишке ашырууга чоң жардам берет.

Бул макала дизайнер Вензиден келет.

8 -кадам: Салыштырмалуу окуу:

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Баштапкы тийүүнү иштетүү

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Биринчи иштетүү программаңызды түзүңүз

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү - Сүрөтүңүздү иштетиңиз (Биринчи бөлүк)

Эгерде сизде кандайдыр бир суроолор болсо, [email protected] электрондук дарегине жөнөтө аласыз.

Бул макала:

Сунушталууда: