فهرست مطالب:

راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ: 10 مرحله
راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ: 10 مرحله

تصویری: راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ: 10 مرحله

تصویری: راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ: 10 مرحله
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, جولای
Anonim
راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ
راهنمای برنامه نویسی پردازش جالب برای طراح-کنترل رنگ

در فصل های قبلی ، ما بیشتر در مورد نحوه استفاده از کد برای انجام شکل دهی به جای نکات آگاهی در مورد رنگ صحبت کرده ایم. در این فصل ، ما قصد داریم این جنبه از دانش را عمیق تر بررسی کنیم.

مرحله 1: اطلاعات اولیه در مورد رنگ

رنگ ، در جنبه های خاصی ، از شهود انسان پیشی گرفته است. رنگهای زیبا و متنوعی که ما با چشم غیر مسلح خود دیده ایم در واقع از اجزای یکسانی تشکیل شده است. تنها با سه رنگ روشن قرمز ، سبز و آبی ، می توانیم همه رنگهایی را که از طریق مخلوط توسط چشم انسان قابل مشاهده است ، ایجاد کنیم.

صفحه موبایل و صفحه کامپیوترهایی که در حال حاضر مشاهده می کنید بر اساس این اصل ایجاد شده اند. قرمز ، سبز و آبی سه رنگ اصلی نور نامیده می شوند. از طریق نسبت سه عنصر ، می توانیم رنگ خاصی را تضمین کنیم. این روش توصیف را حالت RGB نیز می نامند. در میان آن ، قرمز R است ، سبز G است و آبی B است.

به جز حالت RGB ، حالت دیگری به نام حالت CMYK وجود دارد. معمولاً با چاپ ترکیب می شود. در چاپ ، سه رنگ اصلی نیز وجود دارد. با این حال ، این رنگ با سه رنگ اصلی نور متفاوت است. آنها به طور جداگانه قرمز ، زرد و آبی هستند. در میان آن ، C برای فیروزه ای ، M برای سرخابی و Y برای رنگ زرد است. از لحاظ تئوری ، تنها با CMY ، ما می توانیم بیشتر رنگها را با هم ترکیب کنیم. اما به دلیل تکنیک تولید مواد اولیه ، به سختی می توانیم اشباع CMY را به 100٪ برسانیم. اگر این سه رنگ را با هم مخلوط کنیم ، نمی توانیم رنگ مشکی را که به اندازه کافی تیره است به دست آوریم. بنابراین یک K اضافی که مخصوص جوهر چاپ سیاه است ، به عنوان مکمل چاپ وجود دارد.

در مورد RGB و CMYK ، فقط باید بدانید که در طبیعت آشکارترین تفاوت وجود دارد. RGB به علاوه حالت رنگی است که با ترکیب بیشتر رنگها روشنایی را افزایش می دهد. در حالی که CMYK منهای حالت رنگ است ، که با ترکیب رنگهای بیشتر ، تاریکی را افزایش می دهد. در تصویر زیر ، ما می توانیم بصری شباهت ها و تفاوت های این دو حالت را مشاهده کنیم. در تصویر سمت چپ ، می توانیم تصور کنیم یک خانه تاریک با سه رنگ مختلف چراغ قوه روشن است. در تصویر سمت راست ، پس از همپوشانی با سه رنگدانه قرمز ، سبز و آبی ، می توانیم آن را به عنوان کاغذ آبرنگ در نظر بگیریم.

اگر می خواهید ارتباطات نسبی آن بین حالت های مختلف رنگ را عمیق تر بدانید ، می توانید فتوشاپ خود را باز کرده و انتخاب کننده رنگ را انتخاب کنید. سپس می توانید مقادیر رنگ یک رنگ را در حالت های مختلف رنگ به صورت شهودی مشاهده کنید.

در آخرین مورد ، ما می خواهیم حالت رنگ متداول دیگری را برای شما معرفی کنیم ، HSB. HSB مفهومی از "رنگ اصلی" ندارد. با توجه به احساسات چشم انسان نسبت به رنگ ها طبقه بندی می شود. H مخفف hue ، S به معنی اشباع و B به معنای روشنایی است.

رنگ نشان دهنده تمایل به رنگ است. هر رنگی تنها در صورتی تمایل به رنگ دارد که سفید ، خاکستری یا سفید نباشد. غنی ترین منطقه انتقال رنگ در انتخاب کننده رنگ برای نشان دادن رنگ استفاده می شود. مقدار آن در PS از 0 تا 360 متغیر است.

اشباع به معنای خلوص رنگ است. خلوص بیشتر رنگ روشن تری را به ارمغان می آورد. مقدار آن در PS از 0 تا 100 متغیر است.

روشنایی به معنای درجه روشنایی رنگ است که از 0 تا 100 متغیر است.

در مقایسه با حالت RGB ، سه بعد HSB بسیار بیشتر با احساس چشم انسان نسبت به رنگ ها مطابقت دارد. فقط به مقادیر HSB نگاه کنید ، به طور کلی می توانید تصور کنید که چه رنگی است.

در مورد همان رنگ ، مقدار رنگ در حالت RGB (255 ، 153 ، 71) ، در حالی که در HSB (27 ، 72 ، 100) است.

اگر فقط به RGB نگاه کنیم ، قضاوت کردن پس از ترکیب سه رنگ اصلی با هم چگونه دشوار است. اما HSB متفاوت است. شما فقط باید با رنگهایی مانند قرمز 0 ، نارنجی 30 و زرد 60 آشنا شوید ، سپس می دانید که یک رنگ نارنجی نسبتاً اشباع با روشنایی بالا و کمی نزدیک به قرمز هنگامی که H است 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 ، می توانیم آلفا (شفافیت) را برای رنگها تعیین کنیم. اما آلفا به جزء رنگ تعلق ندارد. وجود آن مخلوط مناسب با رنگهای پشت است. بنابراین ، برای اینکه کامپیوترها نوع خاصی از رنگ را با دقت توصیف کنند ، ما فقط باید سه متغیر اصلی را کنترل کنیم.

در ادامه ، ما نوعی از نوع داده را شروع می کنیم که عمدتا برای ذخیره رنگ ها استفاده می شود. مشابه داده های ارجاع شده قبلی مانند boolena ، int ، float است.

در اینجا اجازه دهید ابتدا نحوه استفاده واقعی از رنگ را کاملاً توضیح دهم. این را تصور کنید: فرض کنید اگر فقط بتوانیم از روشهای قبلاً تسلط یافته برای ذخیره داده های خاصی استفاده کنیم ، چه کنیم؟

مثال کد (9-1):

[cceN_cpp theme = "dawn"] int r، g، b؛

void setup () {

اندازه (400 ، 400) ؛

r = 255 ؛

g = 0 ؛

b = 0 ؛

}

void draw () {

پس زمینه (0) ؛

rectMode (CENTER) ؛

پر (r ، g ، b) ؛

راست (عرض/2 ، ارتفاع/2 ، 100 ، 100) ؛

}

[/cceN_cpp]

در مورد رنگ هایی که تمایل به رنگ دارند ، ما باید سه متغیر برای ذخیره داده ها در سه کانال رنگ قرمز ، سبز و آبی ایجاد کنیم. بعداً ، اگر بخواهیم این مجموعه داده های رنگی را فراخوانی کنیم ، باید آن را به صورت fill یا stroke بنویسیم.

اما خواهید دید که انجام این کار بسیار مشکل ساز است زیرا داده ها به هم متصل هستند. اگر ایده بسته بندی آنها را دارید ، راحت تر خواهید بود. بنابراین ، رنگ ایجاد می شود.

مثال کد (9-2):

[cceN_cpp theme = "dawn"] color myColor؛

void setup () {

اندازه (400 ، 400) ؛

myColor = رنگ (255 ، 0 ، 0) ؛

}

void draw () {

پس زمینه (0) ؛

rectMode (CENTER) ؛

پر (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 () و stroke () هر دو امکان همپوشانی دارند. با توجه به کمیت و نوع پارامترها ، تأثیرات متفاوتی خواهد داشت. وارد کردن تنها یک متغیر صحیح ، که نشان دهنده آن است ، یک رنگ با مقیاس خاکستری است. در حالی که یک رنگ متغیر را وارد می کنید ، این بدان معناست که محدوده رنگ بزرگتر خواهد بود. همچنین می توانید یک متغیر رنگ و یک متغیر صحیح وارد کنید ، تابع fill () را در بالا به fill (myColor، 150) تغییر دهید ، سپس می توانید alpha را با پارامتر دوم کنترل کنید.

مرحله 3: روش پر کردن با هم تداخل دارد

ضربه ، پس زمینه دارای روش همپوشانی مشابه با fill هستند.

ارزش رنگ کانال را بخوانید

علاوه بر تکالیف ، می توانید به طور مستقل مقدار RGB را در متغیر رنگ بدست آورید

مثال کد (9-3):

[cceN_cpp theme = "dawn"] color myColor؛

void setup () {

myColor = رنگ (255 ، 125 ، 0) ؛

println (قرمز (myColor)) ؛

println (سبز (myColor)) ؛

println (آبی (myColor)) ؛

}

[/cceN_cpp]

نتیجه در کنسول: 255 ، 125 ، 0.

عملکرد قرمز () ، سبز () ، آبی () نسبتاً به مقدار کانال قرمز ، سبز و آبی در myColor باز می گردد.

تکلیف هگزادسیمال

به جز استفاده از اعداد اعشاری برای نشان دادن RGB ، ما همچنین می توانیم از هگزادسیمال استفاده کنیم. دهدهی به معنای افزایش 1 در صورت برخورد با 10 است. در حالی که هگزادسیمال به معنی افزایش 1 در زمانی که به 16 برسد رابطه نسبی آن با اعشار عبارت است از: "0 تا 9" مربوط به "0" تا 9 "،" A تا F "مربوط به" 10 تا 15 "است.

تصویر زیر تصویری از روش تبدیل است.

البته ، اگر مجموعه ای از مقادیر هگزادسیمال مانند ff7800 دریافت کنیم ، مجبور نیستیم آن را به صورت دستی تبدیل کنیم. این برنامه به طور مستقیم مقادیر را به متغیرهای رنگ اختصاص می دهد. بسیار راحت است.

ما می توانیم ببینیم که بسیاری از کارت های رنگی به صورت آنلاین از روش هگزادسیمال برای نمایش رنگ استفاده می کنند.

مانند دریبل جامعه طراحی ، آثار هنری نیز دارای پالت رنگی هستند. اگر رنگ مورد علاقه خود را مشاهده کردید ، می توانید آن را در برنامه اعمال کنید.

مثال کد (9-4):

[cceN_cpp theme = "dawn"] color backColor ، colorA ، colorB ، colorC ؛

void setup () {

اندازه (400 ، 400) ؛

rectMode (CENTER) ؛

noStroke ()؛

backColor = #395b71؛

colorA = #c4d7fb؛

colorB = #f4a7b4؛

colorC = #f9e5f0؛

}

void draw () {

پس زمینه (backColor) ؛

پر (رنگ A) ؛

راست (200 ، 200 ، 90 ، 300) ؛

پر (رنگ B) ؛

راست (100 ، 200 ، 90 ، 300) ؛

fill (colorC) ؛

راست (300 ، 200 ، 90 ، 300) ؛

} [/cceN_cpp]

در حال حاضر ، رنگ بسیار راحت تر است و جلوه بهتری نسبت به وارد کردن مقادیر به صورت تصادفی دارد.

قبل از مقدار رنگ هگزا دسیمال "#" را اضافه کنید ، سپس می توانید مستقیماً مقدار را به رنگ متغیر اختصاص دهید.

مرحله 4: حالت HSB

در کنار حالت RGB ، در ادامه قصد داریم در مورد حالت HSB صحبت کنیم. در زیر روش تعیین مقدار حالت HSB نشان داده شده است.

مثال کد (9-5):

[cceN_cpp theme = "dawn"] void setup () {

اندازه (400 ، 400) ؛

colorMode (HSB) ؛

}

void draw () {

پس زمینه (0) ؛

rectMode (CENTER) ؛

برای (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 است. بنابراین ما باید تبدیل را انجام دهیم.

اگر مقدار HSB در فتوشاپ (55 ، 100 ، 100) باشد ، هنگام تبدیل به پردازش ، این مقدار باید (555 /360 360 255 ، 255 ، 255) ، یعنی (40 ، 255 ، 255) باشد.

colorMode () یک تابع است که می تواند همپوشانی داشته باشد. در ادامه آن را به تفصیل به شما معرفی می کنیم.

مرحله 5: روش همپوشانی ColorMode

بنابراین ، اگر نمی خواهید مقدار HSB را در Photoshop به صورت دستی تبدیل کنید ، می توانید "colorMode ()" را به "colorMode (HSB ، 360 ، 100 ، 100)" بنویسید.

حالت کاربرد HSB حالت 1

از آنجا که حالت RGB برای کنترل تغییرات رنگ کاملاً مناسب نیست ، در این زمان ، اگر می خواهید رنگ ها را با انعطاف پذیری بیشتری کنترل کنید ، ممکن است حالت HSB را در نظر بگیرید.

مثال کد (9-6):

[cceN_cpp theme = "dawn"] void setup () {

اندازه (800 ، 800) ؛

پس زمینه (0) ؛

colorMode (HSB) ؛

}

void draw () {

سکته مغزی وزن (2) ؛

سکته مغزی (int (millis ()/1000.0 * 10) 255 ، 255 ، 255) ؛

float newX، newY؛

newX = mouseX + (سر و صدا (میلی ثانیه ()/1000.0 + 1.2) - 0.5) * 800 ؛

newY = mouseY + (سر و صدا (میلی ثانیه ()/1000.0) - 0.5) * 800 ؛

خط (mouseX ، mouseY ، newX ، newY) ؛

} [/cceN_cpp]

وقتی H (hues) را در سکته مغزی کنترل می کنیم ، از millis () استفاده کرده ایم. زمان عملیات را از ابتدا تا به امروز بدست می آورد. بنابراین ، با جلو رفتن زمان ، مقدار H (رنگ) به طور خودکار افزایش می یابد ، سپس رنگ تغییر می کند.

واحد millis () ms است. بنابراین ، هنگامی که برنامه به مدت 1 ثانیه اجرا می شود ، مقدار بازگشتی 1000 خواهد بود. این به مقدار بسیار بزرگ منجر می شود. بنابراین باید آن را بر 1000.0 تقسیم کنیم.

از آنجا که ما امیدواریم که رنگها یک دوره تناوبی داشته باشند ، بنابراین هنگامی که ما در نهایت اولین پارامتر را در ضربه می نویسیم ، باید عملیات modulo را انجام دهیم. این می تواند مطمئن شود که وقتی H (hue) از 255 فراتر رفت ، دوباره از 0 شروع می شود.

تابع strokeWeight () می تواند ضخامت خطوط را کنترل کند. واحد مربوط به پارامترهای داخل براکت پیکسل است.

مرحله 6: حالت کاربرد مورد 2

مثال کد (9-7):

[cceN_cpp theme = "dawn"] int num؛ // تعداد خطوطی که در حال حاضر کشیده شده است

شناور posX_A ، posY_A ؛ // مختصات نقطه A

شناور posX_B ، posY_B ؛ // مختصات نقطه B

شناور زاویه A ، speedA ؛ // زاویه نقطه A ، سرعت

شناور زاویه B ، speedB ؛ // زاویه نقطه B ، سرعت

شعاع شناور X_A ، شعاع Y_A ؛ // شعاع بیضی شکل ایجاد شده توسط نقطه A در محور X (Y).

شعاع شناور X_B ، شعاع Y_B ؛ // شعاع بیضی شکل ایجاد شده توسط نقطه B در محور X (Y).

void setup () {

اندازه (800 ، 800) ؛

colorMode (HSB) ؛

پس زمینه (0) ؛

سرعت A = 0.0009 ؛

سرعت B = 0.003 ؛

شعاع X_A = 300 ؛

شعاع Y_A = 200 ؛

شعاع X_B = 200 ؛

شعاع Y_B = 300 ؛

}

void draw () {

ترجمه (عرض/2 ، ارتفاع/2) ؛

برای (int i = 0؛ i <50؛ i ++) {

angleA += speedA ؛

زاویه B += سرعت B ؛

posX_A = cos (angleA) * شعاع X_A ؛

posY_A = گناه (angleA) * شعاع Y_A ؛

posX_B = cos (angleB) * شعاع X_B ؛

posY_B = sin (angleB) * شعاع Y_B ؛

سکته مغزی (int (num/500.0)٪ 255 ، 255 ، 255 ، 10) ؛

خط (posX_A ، posY_A ، posX_B ، posY_B) ؛

num ++؛

}

} [/cceN_cpp]

اثر عملیات:

تصویر خروجی:

الگویی که مشاهده کردید توسط یک خط متحرک از طریق همپوشانی مداوم تولید می شود. آثار دو نقطه انتهایی خط دو دایره جداگانه است.

از طریق حالت HSB ، ما تغییرات رنگ را کنترل کرده ایم. با افزایش خطوط ، رنگ تغییر می کند. هنگامی که خطوط عظیم نیمه شفاف روی هم قرار می گیرند ، شیب رنگ بسیار غنی ایجاد می کند.

ما یک حلقه for را در رسم تابع جاسازی کرده ایم و هدف آن استفاده از حلقه برای کنترل کمیت خط است. معادل آن است که ما سرعت طراحی را کنترل کرده ایم. با افزایش مقدار شرط قضاوت در حلقه for ، رسم seepd را افزایش می دهد.

در زیر شکل شماتیک است. می توانید رد حرکت حلقه ها را واضح تر ببینید.

سرعت و شعاع متفاوت را تنظیم کنید ، الگوهای تشکیل شده نیز متفاوت خواهند بود. سعی کنید متغیرهایی مانند زاویه ، سرعت ، radiusX ، radiusY را تغییر دهید و ببینید چه اتفاقی می افتد.

مرحله 7: حالت ترکیب لایه

حالت های مختلف رنگی که قبلاً صحبت کردیم ، برای رنگ آمیزی قطعات گرافیکی استفاده می شود. به جز استفاده از این روش برای کنترل رنگ ، پردازش می تواند از حالتهای ترکیبی لایه های مختلف مانند Photoshop استفاده کند.

پنجره لایه را در PS باز کنید ، برای انتخاب حالت ترکیب لایه ها کلیک کنید ، سپس می توانیم این گزینه ها را مشاهده کنیم.

این حالت های لایه موجود در PS است. به زبان ساده ، حالت ترکیب را می توان نوعی حالت محاسبه رنگ در نظر گرفت. این تصمیم می گیرد که آخرین رنگ در هنگام ایجاد "رنگ A" به علاوه "رنگ B" ایجاد شود. در اینجا "رنگ A" به معنای رنگ پشت لایه فعلی است (که رنگ پایه نیز نامیده می شود). "رنگ B" به معنای رنگ لایه فعلی است (که رنگ مخلوط نیز نامیده می شود). برنامه محاسبه می کند تا رنگ C را با توجه به مقدار RGB و آلفا رنگ A و B بدست آورد. در نتیجه رنگ روی صفحه نمایش داده می شود.

حالت لایه های مختلف مخفف روش های مختلف محاسبه است. در نیمه بعدی این سری مقالات ، ما آن را با جزئیات توضیح خواهیم داد. اکنون ما فقط باید ابتدا نحوه استفاده از آن را بدانیم.

بیایید به مثال استفاده از Add Mode در برنامه نگاه کنیم.

مثال کد (9-8):

[cceN_cpp theme = "dawn"] PImage image1، image2؛

void setup () {

اندازه (800 ، 400) ؛

image1 = loadImage ("1.jpg")؛

image2 = loadImage ("2.jpg")؛

}

void draw () {

پس زمینه (0) ؛

blendMode (ADD) ؛

تصویر (تصویر 1 ، 0 ، 0 ، 400 ، 400) ؛

تصویر (image2 ، mouseX ، mouseY ، 400 ، 400) ؛

}

[/cceN_cpp]

نتیجه:

Function blendMode () برای تنظیم حالت ترکیب گرافیک استفاده می شود. ما ADD را در پشت پر می کنیم به این معنی که ما Add Mode را تنظیم کرده ایم.

در برنامه ، مفهومی از لایه وجود ندارد. اما از آنجا که ترتیب ترسیم اجزای گرافیکی وجود دارد ، بنابراین هنگام ترکیب تصاویر ، تصویر 1 به عنوان رنگ اصلی و تصویر 2 به عنوان رنگ مختلط در نظر گرفته می شود.

حالت ADD متعلق به "Brighten Class" است. پس از استفاده از آن ، جلوه ای روشن خواهید داشت.

در زیر یک حالت ترکیبی است که می تواند در پردازش استفاده شود.

مرحله 8: پردازش حالت ترکیبی

می توانیم حالت مختلف ترکیب را تغییر دهیم تا تاثیر آن را ببینیم.

وقتی مثال (9-8) حالت همپوشانی را اتخاذ کرد (پس زمینه باید روی سفید تنظیم شود):

پس از استفاده از حالت Substract (پس زمینه باید روی سفید تنظیم شود):

مرحله 9: مورد کاربرد حالت ترکیبی لایه

حالت ترکیب نه تنها می تواند برای تصاویر استفاده شود ، بلکه برای همه اجزای گرافیکی موجود در بوم نیز مناسب است. در زیر استفاده در مورد افزودن حالت نمایش داده شده است. می توان از آن برای آنالوگ جلوه های مختلف نور استفاده کرد.

مثال کد (9-9):

[cceN_cpp theme = "dawn"] void setup () {

اندازه (400 ، 400) ؛

}

void draw () {

پس زمینه (0) ؛

blendMode (ADD) ؛

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

برای (int i = 0؛ i <num؛ i ++) {

if (تصادفی (1) <0.5) {

پر (0 ، 50 ، 0) ؛

} دیگری {

پر کنید (50) ؛

}

بیضی (تصادفی (50 ، عرض - 50) ، تصادفی (50 ، ارتفاع - 50) ، 20 ، 20) ؛

}

}

[/cceN_cpp]

در اینجا ، از طریق تابع تصادفی ، ما رنگ سبز و رنگ سفید را که قبلاً آلفا را حمل کرده اند ، وارد ذرات کرده ایم. ما می توانیم از ماوس برای کنترل مقدار دایره و مشاهده اثر همپوشانی استفاده کنیم.

ADD و SCREEN کاملاً مشابه هستند.اگرچه روشن کردن یکسان است ، تفاوت های ظریف وجود دارد. می توانید آن را به SCREEN جایگزین کرده و مقایسه کنید. پس از همپوشانی ، خلوص و روشنایی ADD بیشتر خواهد بود. برای مقایسه اثر نور مناسب است.

در مورد رنگ ، در اینجا ما در این فصل به پایان رسیدیم. برای این "زبان" ، شما قبلاً به واژگان واژه کافی تسلط دارید. اکنون ، برای لذت بردن از دنیای شکل و رنگ ، عجله کنید تا از کد استفاده کنید!

مرحله 10: منبع

این مقاله از: https://www.elecfreaks.com/11462.html است

اگر س questionsالی دارید ، می توانید با : [email protected] تماس بگیرید.

توصیه شده: