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

Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт: 10 алхам
Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт: 10 алхам

Видео: Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт: 10 алхам

Видео: Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт: 10 алхам
Видео: 15 шинэлэг ор, орон зайг хэмнэх тавилга (олон үйлдэлт) 2024, Долдугаар сарын
Anonim
Загвар зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт
Загвар зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Өнгөний хяналт

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

Алхам 1: Өнгөний талаархи үндсэн мэдлэг

Өнгө нь зарим талаараа хүний зөн совингоос давсан байдаг. Бидний нүцгэн нүдээр харсан олон янзын сайхан өнгө нь яг ижил бүрэлдэхүүн хэсгүүдээс бүрддэг. Зөвхөн улаан, ногоон, цэнхэр гэсэн гурван цайвар өнгөний тусламжтайгаар бид хүний нүдэнд харагдах бүх өнгийг холимогоор бүтээж чадна.

Энэ зарчмын үндсэн дээр таны харж байгаа гар утасны дэлгэц болон компьютерийн дэлгэцийг бүтээсэн болно. Улаан, ногоон, цэнхэр өнгийг гэрлийн анхны гурван өнгө гэж нэрлэдэг. Гурван элементийн харьцаагаар бид тодорхой өнгийг баталгаажуулж чадна. Энэхүү тайлбарлах аргыг мөн RGB горим гэж нэрлэдэг. Үүний дотор улаан нь R, ногоон нь G, цэнхэр нь B байна.

RGB горимоос бусад CMYK горим гэж нэрлэгддэг өөр горим байдаг. Үүнийг ихэвчлэн хэвлэхтэй хослуулдаг. Хэвлэхдээ гурван анхны өнгө байдаг. Гэсэн хэдий ч энэ нь гэрлийн анхны гурван өнгөнөөс ялгаатай юм. Тэд тус тусад нь улаан, шар, цэнхэр өнгөтэй байна. Үүний дотор C нь хөх, M нь ягаан, Y нь шар өнгөтэй байна. Онолын хувьд зөвхөн CMY -ийн тусламжтайгаар бид ихэнх өнгийг хольж чаддаг. Гэхдээ түүхий эд үйлдвэрлэх арга техникээс шалтгаалан бид CMY -ийн ханалтыг 100%хангаж чадахгүй байна. Хэрэв бид эдгээр гурван өнгийг хольсон бол харанхуй өнгийг олж авч чадахгүй. Тиймээс хар хэвлэх бэхэнд зориулагдсан нэмэлт K байдаг.

RGB ба CMYK -ийн хувьд мөн чанарын хувьд хамгийн тод ялгаа байдгийг та л мэдэх хэрэгтэй. RGB бол нэмэлт өнгөний горим бөгөөд илүү олон өнгийг холих замаар тод байдлыг нэмэгдүүлдэг. CMYK бол хасах өнгөний горим бөгөөд илүү олон өнгийг холих замаар харанхуй байдлыг нэмэгдүүлдэг. Доорх зурган дээр бид хоёр горимын ижил төстэй байдал, ялгааг нүдээр харж болно. Зүүн талын зургийг бид гурван өөр өнгийн гар чийдэн асаасан харанхуй байшин гэж төсөөлж болно. Баруун талд байгаа зургийг бид улаан, ногоон, цэнхэр гэсэн гурван пигментээр давхардсаны дараа усан будгийн цаас гэж үзэж болно.

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

Эцэст нь бид танд зориулж HSB гэсэн өөр нэг нийтлэг өнгөний горимыг танилцуулахыг хүсч байна. HSB нь "Анхны өнгө" гэсэн ойлголтгүй байдаг. Хүний нүдний өнгөний мэдрэмжийн дагуу ангилдаг. H нь өнгө, S нь ханалт, B нь тод байдлыг илэрхийлдэг.

Hue нь өнгөний чиг хандлагыг илэрхийлдэг. Өнгө бүр цагаан, саарал биш л бол тодорхой өнгөт хандлагатай байдаг. Өнгө сонгогч дээрх хамгийн баялаг өнгөний шилжилтийн хэсгийг өнгийг тодорхойлоход ашигладаг. PS дахь утга нь 0 -ээс 360 хооронд хэлбэлздэг.

Ханалт гэдэг нь өнгөний цэвэр байдлыг илэрхийлдэг. Өндөр цэвэршилт нь илүү тод өнгө авчирдаг. PS дахь утга нь 0 -ээс 100 хооронд хэлбэлздэг.

Гэрэлтүүлэг гэдэг нь өнгөний хөнгөн байдлыг 0-100 хооронд хэлбэлздэг.

RGB горимтой харьцуулахад HSB -ийн гурван хэмжигдэхүүн нь хүний нүдний өнгийг мэдэрдэг. Зөвхөн HSB -ийн утгыг хар л даа, энэ нь ямар өнгөтэй болохыг ерөнхийд нь төсөөлж болно.

Ижил өнгөний хувьд RGB горим дахь өнгөний утга нь (255, 153, 71), харин HSB -д (27, 72, 100) байна.

Зөвхөн RGB -ийг харвал анхны гурван өнгийг хооронд нь хольсны дараа ямар байхыг харахад хэцүү байдаг. Гэхдээ HSB бол өөр. Та зөвхөн улаан 0, улбар шар 30, шар 60 гэх мэт өнгөний өнгийг сайн мэдэх хэрэгтэй, тэгвэл энэ нь харьцангуй ханасан улбар шар өнгөтэй, өндөр тод, улаан өнгөтэй ойрхон байх болно. 27.

Дараа нь бид хоёр горимын гурван хэмжээсийг x, y, x гэж орон зайд харгалзуулж, өнгөний куб зурж харьцуулалт хийнэ.

RGB ба HSB бол өнгийг тодорхойлох өөр өөр арга юм. Бид хаягийг зүйрлэл болгон авч болно. Хэрэв та Эзэн хааны ордны байрлалыг бусад хүмүүст хэлэхийг хүсч байвал үүнийг Бээжингийн Дунчэн дүүргийн Жингшань фронтын гудамжны 4 тоот гэж хэлж болно гэж бодъё. Эсвэл хойд өргөргийн 15 секунд, 55 минут, 39 градус, зүүн уртрагт 26 секунд 23 минут, 116 градус байна гэж хэлж болно. HSB -ийн тайлбарлах арга нь өмнөхтэй төстэй юм. Хэрэв та харьцангуй газар нутгийг мэддэг бол ерөнхийдөө хаягийн байршлыг мэдэх боломжтой. RGB нь илүү нарийвчлалтай байж болох ч энэ нь маш хийсвэр юм.

HSB горим нь өнгийг илүү тохь тухтай дүрслэхэд туслах зорилготой байсан. Тодорхой төрлийн өнгийг дэлгэц дээр харуулахын тулд эхлээд үүнийг RGB горимд хөрвүүлэх шаардлагатай болдог.

Дээр дурдсанчлан бид RGB, HSB, CMYK гэсэн гурван өнгөний горимыг танилцуулж байна. Хөтөлбөрт та зөвхөн RGB ба HSB гэсэн хоёр горимд анхаарлаа хандуулах хэрэгтэй. Тэд нэгэн зэрэг өөрийн гэсэн давуу талтай бөгөөд өөрийн гэсэн програмтай байдаг. Хэрэв та үүнийг сайн мэддэг бол энэ нь таны дизайны шаардлагыг хангах болно.

Алхам 2: Өнгийг хадгалах өгөгдлийн төрөл

Хөтөлбөрт өнгийг харуулахын тулд ихэвчлэн RGB горимыг ашигладаг. Гэсэн хэдий ч зөвхөн гурван шинж чанарыг хянаж байж бид ямар ч өнгийг харуулах боломжтой юу? Компьютер дээр иймэрхүү байдаг.

Өмнө нь бид боловсруулалтанд R, G, B -ээс бусад өнгөний альфа (ил тод байдал) -ийг тодорхойлж болно гэж дурдсан. Гэхдээ альфа нь өнгөний бүрэлдэхүүн хэсэг биш юм. Түүний оршин тогтнох нь цаанаа өнгө бүхий тохиромжтой хольц юм. Тиймээс, компьютерууд тодорхой төрлийн өнгийг үнэн зөв дүрслэхийн тулд бид зөвхөн гурван хувьсагчийг хянах ёстой.

Дараахь хэсэгт бид өнгийг хадгалахад ихэвчлэн ашигладаг Color төрлийн өгөгдлийн төрлийг танилцуулж эхэлдэг. Энэ нь өмнө нь дурдсан boolena, int, float зэрэг өгөгдлийн төрлүүдтэй төстэй юм.

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

Кодын жишээ (9-1):

[cceN_cpp theme = "үүр цайх"] int r, g, b;

хүчингүй тохиргоо () {

хэмжээ (400, 400);

r = 255;

g = 0;

b = 0;

}

хүчингүй сугалаа () {

дэвсгэр (0);

rectMode (ТӨВ);

дүүргэх (r, g, b);

шулуун (өргөн/2, өндөр/2, 100, 100);

}

[/cceN_cpp]

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

Гэхдээ өгөгдөл хоорондоо уялдаа холбоотой байдаг тул үүнийг хийх нь хэтэрхий төвөгтэй гэдгийг та олж мэдэх болно. Хэрэв та тэдгээрийг ашиглахаар савлах санаа байгаа бол энэ нь илүү тохиромжтой байх болно. Тиймээс өнгө бий болдог.

Кодын жишээ (9-2):

[cceN_cpp theme = "үүр цайх"] өнгө myColor;

хүчингүй тохиргоо () {

хэмжээ (400, 400);

myColor = өнгө (255, 0, 0);

}

хүчингүй сугалаа () {

дэвсгэр (0);

rectMode (ТӨВ);

дүүргэх (myColor);

шулуун (өргөн/2, өндөр/2, 100, 100);

} [/cceN_cpp]

Int гэх мэт өгөгдлийн төрлүүдийн нэгэн адил бид хувьсагч үүсгэхийн тулд эхэндээ "color myColor" -ыг ашиглах ёстой.

Тохиргоонд бид "myColor = color (255, 0, 0)" ашиглан myColor хувьсагчид утгыг өгдөг. Функцийн өнгө (a, b, c) нь энэхүү өгөгдлийн багц нь myColor хувьсагчийг импортлохын тулд өнгөний төрөл үүсгэсэн болохыг зөв илэрхийлж байна. Хэрэв та "myColor = (255, 0, 0)" гэж бичвэл програм буруу болно.

Сүүлд нь бид өнгө дүүргэлтийн ажиллагааг ойлгохын тулд fill () ашигладаг. Функц дүүргэх () ба цус харвалт () хоёулаа давхцах боломжтой. Параметрүүдийн тоо хэмжээ, төрлөөс хамааран өөр өөр нөлөө үзүүлэх болно. Зөвхөн нэг бүхэл тоон хувьсагчийг импортлох нь зөвхөн саарал өнгөний өнгө юм. Хувьсах өнгийг импортлохдоо өнгөний хүрээ илүү том болно гэсэн үг юм. Та мөн өнгөт хувьсагч болон бүхэл тоон хувьсагчийг оруулж, дээрх функцийг бөглөх () функцийг fill (myColor, 150) болгон өөрчилж болно, дараа нь альфаг хоёр дахь параметрээр хянах боломжтой.

Алхам 3: Дүүргэлтийн давхардсан арга

цус харвалт, дэвсгэр нь дүүргэхтэй ижил давхцаж буй аргатай.

Өнгөний сувгийн утгыг уншина уу

Даалгавараас гадна өнгөний хувьсагчийн RGB утгыг бие даан олж авах боломжтой

Кодын жишээ (9-3):

[cceN_cpp theme = "үүр цайх"] өнгө myColor;

хүчингүй тохиргоо () {

myColor = өнгө (255, 125, 0);

println (улаан (myColor));

println (ногоон (myColor));

println (цэнхэр (myColor));

}

[/cceN_cpp]

Консол дахь үр дүн: 255, 125, 0.

Red (), green (), blue () функц нь myColor дахь улаан, ногоон, цэнхэр сувгийн утга руу буцах болно.

Арван зургаатын хуваарилалт

RGB -ийг харуулахын тулд аравтын бутархай тоог ашиглахаас бусад тохиолдолд бид мөн арван зургааг ашиглаж болно. Аравтын бутархай нь 10 -тай таарч 1 -ийг нэмэгдүүлэхийг хэлдэг бол арван зургаатын систем нь 16 -тай таарч 1 -ийг нэмэгдүүлэхийг хэлдэг. 9 хүртэл "," A -аас F хүртэл "нь" 10-15 "гэсэн утгатай тохирч байна.

Доорх зураг бол хөрвүүлэх аргын дүрслэл юм.

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

Олон өнгөт картууд өнгийг харуулахын тулд арван зургаатын аргыг ашигладаг болохыг бид харж байна.

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

Кодын жишээ (9-4):

[cceN_cpp theme = "үүр цайх"] буцааж өнгөӨнгө, өнгөA, өнгөB, өнгөC;

хүчингүй тохиргоо () {

хэмжээ (400, 400);

rectMode (ТӨВ);

цус харвалтгүй ();

backColor = #395b71;

өнгөA = #c4d7fb;

өнгөB = #f4a7b4;

өнгөC = #f9e5f0;

}

хүчингүй сугалаа () {

дэвсгэр (backColor);

дүүргэх (өнгөA);

шулуун (200, 200, 90, 300);

дүүргэх (өнгө B);

шулуун (100, 200, 90, 300);

дүүргэх (өнгөC);

шулуун (300, 200, 90, 300);

} [/cceN_cpp]

Өнгө нь утгыг санамсаргүй байдлаар оруулахаас илүү сайн нөлөө үзүүлэхэд илүү тохь тухтай байдаг.

Арван зургаатын өнгөний утгын өмнө "#" нэмээд дараа нь хувьсах өнгөнд шууд утга өгөх боломжтой.

Алхам 4: HSB горим

RGB горимоос гадна бид HSB горимын талаар ярих болно. HSB горимын үнэ цэнийн хуваарилах аргыг доор харуулав.

Кодын жишээ (9-5):

[cceN_cpp theme = "үүр цайх"] хүчингүй тохиргоо () {

хэмжээ (400, 400);

colorMode (HSB);

}

хүчингүй сугалаа () {

дэвсгэр (0);

rectMode (ТӨВ);

for (int i = 0; i <20; i ++) {

өнгө col = өнгө (i/20.0 * 255, 255, 255);

бөглөх (col);

шулуун (i * 20 + 10, өндөр/2, 10, 300);

}

} [/cceN_cpp]

Боловсруулах явцад HSB горимд шилжихийн тулд бид зөвхөн colorMode (HSB) гэсэн өгүүлбэр нэмэх хэрэгтэй. ColorMode () функцийг ашиглах нь өнгөний горимыг өөрчлөх явдал юм. Хэрэв бид хаалтанд "HSB" гэж бичвэл энэ нь HSB горимд тохируулагдах болно; Бид "RGB" гэж бичих үед энэ нь RGB горимд шилжих болно.

Бид colorMode (HSB) бичихдээ анхаарах ёстой зүйл бол HSB -ийн анхдагч утга нь 255. Энэ нь Photoshop дээрх хамгийн их утгаас огт өөр юм. Photoshop дээр H -ийн хамгийн их утга нь 360, S ба B -ийн хамгийн их утга нь 100. Тиймээс бид хөрвүүлэлт хийх хэрэгтэй.

Хэрэв Photoshop дээрх HSB утга нь (55, 100, 100) бол түүнийг боловсруулалт руу хөрвүүлэх үед энэ утга нь (55/360 × 255, 255, 255), өөрөөр хэлбэл (40, 255, 255) байх ёстой.

colorMode () нь давхцаж болох функц юм. Дараагийн хэсэгт бид үүнийг танд дэлгэрэнгүй танилцуулах болно.

Алхам 5: ColorMode -ийн давхцах арга

Тиймээс, хэрэв та Photoshop дээрх HSB утгыг гараар хөрвүүлэхийг хүсэхгүй байгаа бол "colorMode ()" - ийг "colorMode (HSB, 360, 100, 100)" болгож бичих боломжтой.

HSB горимын хэрэглээний тохиолдол 1

RGB горим нь өнгөний өөрчлөлтийг хянахад тийм ч тохиромжтой биш тул өнөөгийн байдлаар, хэрэв та өнгийг илүү уян хатан удирдахыг хүсч байвал HSB горимыг анхаарч үзэх хэрэгтэй.

Кодын жишээ (9-6):

[cceN_cpp theme = "үүр цайх"] хүчингүй тохиргоо () {

хэмжээ (800, 800);

дэвсгэр (0);

colorMode (HSB);

}

хүчингүй сугалаа () {

цус харвалт (2);

цус харвалт (int (millis ()/1000.0 * 10)%255, 255, 255);

float newX, newY;

newX = mouseX + (дуу чимээ (millis ()/1000.0 + 1.2) - 0.5) * 800;

newY = mouseY + (дуу чимээ (millis ()/1000.0) - 0.5) * 800;

мөр (mouseX, mouseY, newX, newY);

} [/cceN_cpp]

Цус харвах үед H (өнгө) -ийг хянахдаа бид millis () ашигладаг. Энэ нь үйл ажиллагааны хугацааг эхнээс нь өнөөг хүртэл олж авах болно. Ийнхүү цаг урагшлах тусам H (өнгө) -ийн утга автоматаар нэмэгдэж, өнгө нь өөрчлөгдөнө.

Millis () -ийн нэгж нь ms байна. Тиймээс, програмыг 1 секундын турш ажиллуулахад буцаах утга нь 1000 болно. Энэ нь хэт том утгад хүргэх болно. Тиймээс бид үүнийг 1000.0 -т хуваах ёстой.

Өнгө нь үе үе эргэлтэнд орно гэж найдаж байгаа тул эхний параметрийг цус харвалт дээр бичихдээ бид модуль горимд ажиллах ёстой. Энэ нь H (өнгө) 255 -аас хэтэрсэн үед дахин 0 -ээс эхлэх болно.

Function strokeWeight () нь шугамын зузааныг хянах боломжтой. Хаалтанд байгаа параметрүүдийн харгалзах нэгж нь пиксел юм.

Алхам 6: Горимын хэрэглээний тохиолдол 2

Кодын жишээ (9-7):

[cceN_cpp theme = "үүр цайх"] int num; // одоо зурсан шугамын тоо хэмжээ

хөвөх posX_A, posY_A; // А цэгийн координат

хөвөгч posX_B, posY_B; // В цэгийн координат

хөвөх өнцөгA, хурдA; // А цэгийн өнцөг, хурд

хөвөх өнцөгB, хурдB; // В цэгийн өнцөг, хурд

хөвөх радиусX_A, радиусY_A; // X (Y) тэнхлэгт А цэгээс үүссэн зууван радиус.

хөвөх радиус X_B, радиусY_B; // тэр X (Y) тэнхлэг дэх В цэгээс үүссэн зууван радиус.

хүчингүй тохиргоо () {

хэмжээ (800, 800);

colorMode (HSB);

дэвсгэр (0);

хурдA = 0.0009;

хурд B = 0.003;

радиусX_A = 300;

радиусY_A = 200;

радиус X_B = 200;

радиусY_B = 300;

}

хүчингүй сугалаа () {

орчуулах (өргөн/2, өндөр/2);

for (int i = 0; i <50; i ++) {

өнцөгA += хурдA;

өнцөг B += хурд B;

posX_A = cos (өнцөгA) * радиусX_A;

posY_A = нүгэл (өнцөгA) * радиусY_A;

posX_B = cos (өнцөг B) * радиусX_B;

posY_B = нүгэл (өнцөг B) * радиусY_B;

цус харвалт (int (тоо/500.0) % 255, 255, 255, 10);

мөр (posX_A, posY_A, posX_B, posY_B);

тоо ++;

}

} [/cceN_cpp]

Үйл ажиллагааны үр нөлөө:

Гаралтын зураг:

Таны үзсэн загварыг байнгын давхцалаар хөдөлгөөний шугамаар гаргадаг. Шугамын төгсгөлийн хоёр цэгийн ул мөр нь тусдаа хоёр тойрог байна.

HSB горимоор бид өнгөний өөрчлөлтийг хянадаг. Шугам нэмэгдэх тусам өнгө нь нөхөгдөх болно. Хэт хагас ил тод шугамууд давхцах үед энэ нь маш баялаг өнгөний градиент үүсгэх болно.

Бид шугамын тоог хянахын тулд давталтыг ашиглах зорилготойгоор for loop -ийг функцын зурганд суулгасан болно. Энэ нь бид зургийн хурдыг хянадагтай тэнцэнэ. Шүүлтийн нөхцлийн утгыг давталтад оруулах нь зургийн хэмжээг нэмэгдүүлэх болно.

Схемийн зургийг доор харуулав. Та тойргийн хөдөлгөөний ул мөрийг илүү тодорхой харж чадна.

Янз бүрийн хурд, радиусыг тохируулаарай, үүссэн хэв маяг нь бас өөр байх болно. Өнцөг, хурд, radiusX, radiusY гэх мэт хувьсагчдыг өөрчилж, юу болохыг харахыг хичээгээрэй.

Алхам 7: Давхаргын холих горим

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

Давхаргын цонхыг PS дээр нээгээд давхаргын холих горимыг сонгоно уу, дараа нь бид эдгээр сонголтуудыг харах болно.

Эдгээр нь PS дээр байгаа давхаргын горимууд юм. Энгийнээр хэлэхэд холих горимыг өнгө тооцох нэг хэлбэр гэж үзэж болно. Энэ нь "өнгө A" дээр нэмэх нь "өнгө B" байх үед хамгийн сүүлд ямар өнгө үүсгэхийг шийдэх болно. Энд "А өнгө" гэдэг нь одоогийн давхаргын ард байгаа өнгийг хэлдэг (мөн үндсэн өнгө гэж нэрлэдэг). "B өнгө" гэдэг нь одоогийн давхаргын өнгийг хэлдэг (холимог өнгө гэж нэрлэдэг). Хөтөлбөр нь R ба A, B өнгөний RGB утга, альфагийн дагуу С өнгийг олж авахын тулд тооцоолох болно. Үүний үр дүнд дэлгэцийн дэлгэц дээр гарч ирнэ.

Давхаргын өөр горим нь өөр өөр тооцоолох аргуудыг илэрхийлдэг. Энэхүү цуврал нийтлэлийн дараагийн хагаст бид үүнийг нарийвчлан тайлбарлах болно. Одоо бид эхлээд түүний хэрэглээг мэдэх л үлдлээ.

Хөтөлбөрт Нэмэх горимыг ашиглах жишээг авч үзье.

Кодын жишээ (9-8):

[cceN_cpp theme = "үүр цайх"] PImage image1, image2;

хүчингүй тохиргоо () {

хэмжээ (800, 400);

image1 = loadImage ("1.jpg");

image2 = loadImage ("2.jpg");

}

хүчингүй сугалаа () {

дэвсгэр (0);

blendMode (ADD);

зураг (зураг1, 0, 0, 400, 400);

зураг (image2, mouseX, mouseY, 400, 400);

}

[/cceN_cpp]

Үр дүн:

BlendMode () функцийг график холих горимыг тохируулахад ашигладаг. Бид ADD -ийг ард нь бөглөх нь Нэмэх горимыг тохируулсан гэсэн үг юм.

Хөтөлбөрт давхаргын тухай ойлголт байдаггүй. Гэхдээ график бүрэлдэхүүн хэсгүүдийн зургийн дараалал байгаа тул зургийг холихдоо 1 -р зургийг үндсэн өнгө, 2 -р зургийг холимог өнгө гэж үзнэ.

ADD горим нь "Brighten Class" ангилалд багтдаг. Үүнийг хэрэглэсний дараа та гэрэлтсэн эффект авах болно.

Боловсруулахад ашиглаж болох холих горимыг доор харуулав.

Алхам 8: Холих горимыг боловсруулж байна

Үр нөлөөг харахын тулд бид янз бүрийн холих горимыг өөрчлөхийг оролдож болно.

Жишээ (9-8) нь давхцах горимыг ашиглах үед (арын дэвсгэрийг цагаан болгож тохируулах ёстой):

Дэд горимыг ашигласны дараа (арын дэвсгэрийг цагаан болгож тохируулах ёстой):

Алхам 9: Давхарга холих горимын хэрэглээний кейс

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

Кодын жишээ (9-9):

[cceN_cpp theme = "үүр цайх"] хүчингүй тохиргоо () {

хэмжээ (400, 400);

}

хүчингүй сугалаа () {

дэвсгэр (0);

blendMode (ADD);

int num = int (3000 * mouseX/400.0);

for (int i = 0; i <num; i ++) {

хэрэв (санамсаргүй (1) <0.5) {

бөглөх (0, 50, 0);

} өөр {

дүүргэх (50);

}

эллипс (санамсаргүй (50, өргөн - 50), санамсаргүй (50, өндөр - 50), 20, 20);

}

}

[/cceN_cpp]

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

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

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

Алхам 10: Эх сурвалж

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

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

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