সুচিপত্র:

ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ: 10 টি ধাপ
ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ: 10 টি ধাপ

ভিডিও: ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ: 10 টি ধাপ

ভিডিও: ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ: 10 টি ধাপ
ভিডিও: গ্রাফিক্স ডিজাইন পেশা কি হারাম না হালাল ? | Freelancing islam | sheikh ahmadullah 2024, জুলাই
Anonim
ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ
ডিজাইনারের জন্য আকর্ষণীয় প্রসেসিং প্রোগ্রামিং নির্দেশিকা-রঙ নিয়ন্ত্রণ

পূর্ববর্তী অধ্যায়গুলিতে, আমরা রঙ সম্পর্কে জ্ঞান পয়েন্টের পরিবর্তে কীভাবে শেপিং করতে কোড ব্যবহার করতে হয় সে সম্পর্কে আরও কথা বলেছি। এই অধ্যায়ে, আমরা জ্ঞানের এই দিকটি আরও গভীরভাবে অন্বেষণ করতে যাচ্ছি।

ধাপ 1: রঙ সম্পর্কে প্রাথমিক জ্ঞান

রঙ, কিছু দিক থেকে, মানুষের অন্তর্দৃষ্টিকে অতিক্রম করেছে। আমাদের খালি চোখে দেখা বিভিন্ন সুন্দর রং আসলে একই উপাদান নিয়ে গঠিত। শুধুমাত্র লাল, সবুজ এবং নীল তিনটি হালকা রঙের সাহায্যে আমরা মিশ্রণের মাধ্যমে মানুষের চোখ দ্বারা দেখা যায় এমন সব রং তৈরি করতে পারি।

আপনি বর্তমানে যে মোবাইল স্ক্রিন এবং কম্পিউটার স্ক্রিনগুলি দেখেছেন সেগুলি এই নীতির ভিত্তিতে তৈরি করা হয়েছে। লাল, সবুজ এবং নীলকে আলোর তিনটি মূল রঙ বলা হয়। তিনটি উপাদানের অনুপাতের মাধ্যমে আমরা একটি নির্দিষ্ট রঙ নিশ্চিত করতে পারি। বর্ণনার এই পদ্ধতিটিকে RGB মোডও বলা হয়। এর মধ্যে লাল হল R, সবুজ হল G এবং নীল হল B।

আরজিবি মোড বাদে, সিএমওয়াইকে মোড নামে আরেকটি মোড রয়েছে। এটি সাধারণত মুদ্রণের সাথে মিলিত হয়। মুদ্রণে, তিনটি মূল রঙও রয়েছে। যাইহোক, এটি আলোর তিনটি মূল রঙের থেকে আলাদা। তারা আলাদাভাবে লাল, হলুদ এবং নীল। এর মধ্যে C হল সায়ানের জন্য, M হল ম্যাজেন্টার জন্য এবং Y হলুদ রঙের জন্য। তাত্ত্বিকভাবে, শুধুমাত্র CMY দ্বারা, আমরা অধিকাংশ রং মিশ্রিত করতে পারি। কিন্তু কাঁচামালের উৎপাদন কৌশলের কারণে আমরা CMY- র সম্পৃক্তি 100%অর্জন করতে পারি না। যদি আমরা এই তিনটি রং মিশ্রিত করি, তাহলে আমরা কালো রঙ পেতে পারি না যা যথেষ্ট গা dark়। সুতরাং একটি অতিরিক্ত K আছে, যা কালো মুদ্রণের কালির জন্য, মুদ্রণের পরিপূরক হিসাবে।

আরজিবি এবং সিএমওয়াইকে সম্পর্কে, আপনাকে কেবল জানতে হবে যে প্রকৃতির মধ্যে সবচেয়ে স্পষ্ট পার্থক্য রয়েছে। আরজিবি হল প্লাস কালার মোড, যা আরো রং মিশিয়ে উজ্জ্বলতা বাড়ায়। যদিও CMYK হল মাইনাস কালার মোড, যা আরও রং মিশিয়ে অন্ধকার বাড়ায়। নীচের ছবিতে, আমরা দৃশ্যত দুটি মোডের মিল এবং পার্থক্য দেখতে পাচ্ছি। বাম ছবি, আমরা তিনটি ভিন্ন রঙের ফ্ল্যাশলাইট জ্বালিয়ে একটি অন্ধকার ঘর বলে কল্পনা করতে পারি। ডানদিকে ছবি, আমরা লাল, সবুজ এবং নীল তিনটি রঙ্গক দিয়ে ওভারল্যাপ করার পরে এটিকে জলরঙের কাগজ হিসাবে বিবেচনা করতে পারি।

আপনি যদি বিভিন্ন রঙের মোডের মধ্যে এর আপেক্ষিক সম্পর্ক আরও গভীরভাবে জানতে চান, তাহলে আপনি আপনার ফটোশপ খুলতে পারেন এবং রঙ বাছাই করতে পারেন। তারপরে আপনি স্বতন্ত্রভাবে বিভিন্ন রঙের মোডের অধীনে একই রঙের রঙের মানগুলি দেখতে পারেন।

শেষ পর্যন্ত, আমরা আপনার জন্য আরেকটি সাধারণ রঙ মোড, এইচএসবি চালু করতে চাই। HSB- এর "আসল রঙ" এর কোন ধারণা নেই। এটি রঙের জন্য মানুষের চোখের অনুভূতি অনুযায়ী শ্রেণীবদ্ধ করা হয়। H মানে রং, S সম্পৃক্ততার জন্য, এবং B হল উজ্জ্বলতার জন্য।

রঙ রঙ প্রবণতা প্রতিনিধিত্ব করে। প্রতিটি রঙের একটি নির্দিষ্ট ধরনের রঙের প্রবণতা থাকে শুধুমাত্র যদি এটি বাল্ক, সাদা বা ধূসর না হয়। কালার পিকারের সবচেয়ে সমৃদ্ধ রঙ ট্রানজিশন এলাকা রঙ নির্দেশ করতে ব্যবহৃত হয়। PS তে এর মান 0 থেকে 360 পর্যন্ত।

স্যাচুরেশন মানে রঙের বিশুদ্ধতা। উচ্চতর বিশুদ্ধতা আরও উজ্জ্বল রঙ নিয়ে আসে। PS তে এর মান 0 থেকে 100 পর্যন্ত।

উজ্জ্বলতা মানে রঙের লাইটনেস ডিগ্রী, 0 থেকে 100 পর্যন্ত।

আরজিবি মোডের সাথে তুলনা করে, এইচএসবি -র তিনটি মাত্রা রঙের জন্য মানুষের চোখের অনুভূতির সাথে অনেক বেশি সামঞ্জস্যপূর্ণ। শুধু এইচএসবি মানগুলি দেখুন, আপনি সাধারণত কল্পনা করতে পারেন যে এটি কোন ধরণের রঙ।

একই রঙের হিসাবে, আরজিবি মোডে রঙের মান (255, 153, 71), যখন এইচএসবিতে (27, 72, 100)।

আমরা শুধুমাত্র RGB- এর দিকে তাকালে তিনটি মূল রং একসাথে মেশানোর পর এটি কেমন হবে তা বিচার করা কঠিন। কিন্তু HSB ভিন্ন। আপনাকে শুধুমাত্র রঙের রঙের সাথে পরিচিত হতে হবে যেমন লাল 0, কমলা 30 এবং হলুদ 60, তারপর আপনি জানতে পারবেন এটি তুলনামূলকভাবে স্যাচুরেটেড কমলা রঙের সাথে উচ্চ উজ্জ্বলতা এবং সামান্য লাল হলে যখন H হবে 27।

এরপরে, আমরা দুটি মোডের তিনটি মাত্রাকে x, y, x এর সাথে মহাকাশে মিলিয়ে তুলব এবং তুলনা করার জন্য একটি রঙ ঘনক আঁকব।

আরজিবি এবং এইচএসবি রঙ বর্ণনা করার জন্য আলাদা পদ্ধতি। ঠিকানাকে আমরা রূপক হিসেবে নিতে পারি। ধরুন আপনি যদি অন্যদের ইম্পেরিয়াল প্রাসাদের অবস্থান বলতে চান, তাহলে আপনি বলতে পারেন এটি জিংশান ফ্রন্ট স্ট্রিটের No. নম্বরে, ডংচেং এরিয়া, বেইজিংয়ে। অথবা আপনি বলতে পারেন এটি 15 সেকেন্ড, 55 মিনিট, 39 ডিগ্রী উত্তর অক্ষাংশে এবং 26 সেকেন্ড, 23 মিনিট, 116 ডিগ্রী পূর্ব দ্রাঘিমাংশে। HSB এর বর্ণনা পদ্ধতি আগেরটির অনুরূপ। আপনি যদি আপেক্ষিক এলাকার সাথে পরিচিত হন, আপনি সাধারণত ঠিকানাটির অবস্থান জানতে পারেন। যদিও RGB আরো সঠিক হতে পারে, কিন্তু এটি খুব বিমূর্ত।

আরও সুবিধাজনকভাবে বর্ণ বর্ণনা করতে আমাদের সাহায্য করার লক্ষ্যে HSB মোড বিদ্যমান ছিল। স্ক্রিনে একটি নির্দিষ্ট ধরণের রঙ প্রদর্শনের জন্য, আমাদের প্রথমে এটিকে RGB মোডে রূপান্তর করতে হবে।

উপরেরটিতে, আমরা তিনটি রঙের মোড চালু করি: আরজিবি, এইচএসবি, সিএমওয়াইকে। প্রোগ্রামে, আপনাকে কেবল দুটি মোডে ফোকাস করতে হবে: আরজিবি এবং এইচএসবি। তাদের নিজস্ব সুবিধা এবং একই সাথে তাদের নিজস্ব অ্যাপ্লিকেশন রয়েছে। আপনি যদি এর সাথে পরিচিত হন তবে এটি আপনার সর্বাধিক ডিজাইনিং প্রয়োজনীয়তাগুলি পূরণ করবে।

ধাপ 2: রং সংরক্ষণের জন্য ডেটা টাইপ

প্রোগ্রামে রং দেখানোর জন্য, বেশিরভাগ ক্ষেত্রে আমরা আগে RGB মোড ব্যবহার করি। যাইহোক, শুধুমাত্র তিনটি বৈশিষ্ট্য নিয়ন্ত্রণ করে, আমরা কোন রং প্রদর্শন করতে পারি? কম্পিউটারে, এটি এইরকম।

আমরা প্রসেসিং এর আগে উল্লেখ করেছি, আর, জি, বি ছাড়া, আমরা রঙের জন্য একটি আলফা (স্বচ্ছতা) নির্ধারণ করতে পারি। কিন্তু আলফা রঙের উপাদানের অন্তর্গত নয়। এর অস্তিত্ব পিছনে রঙের সাথে সুবিধাজনক মিশ্রণ। অতএব, কম্পিউটারের জন্য একটি নির্দিষ্ট ধরণের রঙকে সঠিকভাবে বর্ণনা করার জন্য, আমাদের কেবলমাত্র তিনটি প্রধান ভেরিয়েবলকে নিয়ন্ত্রণ করতে হবে।

নিম্নলিখিতগুলিতে, আমরা এক ধরণের ডেটা টাইপ রঙ চালু করতে শুরু করি, যা মূলত রং সংরক্ষণের জন্য ব্যবহৃত হয়। এটি পূর্বে উল্লেখিত ডেটা প্রকারের মতই যেমন বুলেনা, ইন্ট, ফ্লোট।

এখানে, আমাকে প্রথমে রঙের আসল ব্যবহার ব্যাখ্যা করতে দিন। এটি কল্পনা করুন: ধরুন আমরা যদি শুধুমাত্র একটি নির্দিষ্ট ডেটা সংরক্ষণের জন্য পূর্বে আয়ত্ত করা পদ্ধতিগুলি ব্যবহার করতে পারি, তাহলে আমরা কী করব?

কোড উদাহরণ (9-1):

[cceN_cpp থিম = "ভোর"] 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 থিম = "ভোর"] রঙ myColor;

অকার্যকর সেটআপ(){

আকার (400, 400);

myColor = রঙ (255, 0, 0);

}

অকার্যকর ড্র () {

পটভূমি (0);

rectMode (কেন্দ্র);

পূরণ করুন (myColor);

রেকট (প্রস্থ/2, উচ্চতা/2, 100, 100);

} [/cceN_cpp]

ভেরিয়েবল তৈরি করতে শুরুতে "কালার মাই কালার" ব্যবহার করতে হবে।

সেটআপে, আমরা ভেরিয়েবল myColor- এর মান নির্ধারণ করতে “myColor = color (255, 0, 0)” ব্যবহার করি। যখন ফাংশন কালার (a, b, c) সঠিকভাবে প্রতিনিধিত্ব করে যে এই ডেটার সেটটি একটি কালার টাইপ তৈরি করেছে যাতে পরিবর্তনশীল myColor আমদানি করা যায়। যদি আপনি "myColor = (255, 0, 0)" লিখেন, তাহলে প্রোগ্রাম ভুল হয়ে যাবে।

শেষ পর্যন্ত, আমরা রঙ প্যাডিং এর ক্রিয়াকলাপ উপলব্ধি করতে fill () ব্যবহার করি। ফাংশন ফিল () এবং স্ট্রোক () উভয়ই ওভারল্যাপ করতে সক্ষম। পরিমাপের পরিমাণ এবং প্রকার অনুযায়ী এর বিভিন্ন প্রভাব থাকবে। শুধুমাত্র একটি পূর্ণসংখ্যা ভেরিয়েবল আমদানি করা, যা এটিকে প্রতিনিধিত্ব করে শুধুমাত্র গ্রেস্কেল সহ একটি রঙ। একটি পরিবর্তনশীল রঙ আমদানি করার সময়, এর অর্থ হল রঙের পরিসর আরও বড় হবে। আপনি একটি কালার ভেরিয়েবল এবং একটি ইন্টিজার ভেরিয়েবলও আমদানি করতে পারেন, উপরে ফাংশন fill () ফিল (myColor, 150) এ পরিবর্তন করতে পারেন, তারপর আপনি দ্বিতীয় প্যারামিটার দিয়ে আলফা নিয়ন্ত্রণ করতে পারেন।

ধাপ 3: ভরাটের ওভারল্যাপিং পদ্ধতি

স্ট্রোক, পটভূমিতে ভরাটের সাথে একই ওভারল্যাপিং পদ্ধতি রয়েছে।

রঙের চ্যানেল মান পড়ুন

অ্যাসাইনমেন্ট ছাড়াও, আপনি স্বাধীনভাবে রঙ ভেরিয়েবলে RGB মান পেতে পারেন

কোড উদাহরণ (9-3):

[cceN_cpp থিম = "ভোর"] রঙ myColor;

অকার্যকর সেটআপ(){

myColor = রঙ (255, 125, 0);

println (লাল (myColor));

println (সবুজ (myColor));

println (নীল (myColor));

}

[/cceN_cpp]

কনসোলে ফলাফল: 255, 125, 0।

ফাংশন লাল (), সবুজ (), নীল () তুলনামূলকভাবে মাইকলারে লাল, সবুজ এবং নীল চ্যানেলের মান ফিরে আসবে।

হেক্সাডেসিমাল অ্যাসাইনমেন্ট

আরজিবি দেখানোর জন্য দশমিক সংখ্যা ব্যবহার করা ব্যতীত, আমরা হেক্সাডেসিমালও ব্যবহার করতে পারি। দশমিক মানে যখন 10 এর সাথে মিলিত হয় তখন 1 বৃদ্ধি পায়। 9 থেকে "," এ থেকে এফ "" 10 থেকে 15 "এর সাথে সামঞ্জস্যপূর্ণ।

নীচের ছবিটি রূপান্তর পদ্ধতির চিত্র।

অবশ্যই, যদি আমরা ff7800 এর মতো হেক্সাডেসিমাল মানগুলির একটি সেট পাই, তাহলে আমাদের এটিকে ম্যানুয়াল দ্বারা রূপান্তর করতে হবে না। প্রোগ্রামটি সরাসরি রঙের ভেরিয়েবলের মান নির্ধারণ করবে। এটা খুবই সুবিধাজনক।

আমরা অনলাইনে অনেক রঙের কার্ড দেখতে পাচ্ছি সবাই রঙ প্রদর্শনের জন্য হেক্সাডেসিমাল পদ্ধতি অবলম্বন করে।

ডিজাইন কমিউনিটি ড্রিবলের মতো, শিল্পকর্ম সংযুক্ত থাকবে রঙের প্যালেট। আপনি যদি একটি প্রিয় রঙ দেখতে পান, আপনি এটি প্রোগ্রামে প্রয়োগ করতে পারেন।

কোড উদাহরণ (9-4):

[cceN_cpp থিম = "ভোর"] রঙ ফিরে রঙ, colorA, colorB, colorC;

অকার্যকর সেটআপ(){

আকার (400, 400);

rectMode (কেন্দ্র);

noStroke ();

backColor = #395b71;

রঙ A = #c4d7fb;

colorB = #f4a7b4;

colorC = #f9e5f0;

}

অকার্যকর ড্র () {

ব্যাকগ্রাউন্ড (ব্যাক কালার);

পূরণ করুন (colorA);

রেকট (200, 200, 90, 300);

পূরণ করুন (colorB);

রেকট (100, 200, 90, 300);

পূরণ করুন (colorC);

রেকট (300, 200, 90, 300);

} [/cceN_cpp]

এখন, রঙগুলি এলোমেলোভাবে ইনপুট করার চেয়ে ভাল প্রভাব সহ অনেক বেশি আরামদায়ক।

হেক্সাডেসিমাল কালার ভ্যালুর আগে "#" যোগ করুন, তারপর আপনি সরাসরি ভেরিয়েবল কালারের মান নির্ধারণ করতে পারেন।

ধাপ 4: HSB মোড

আরজিবি মোডের পাশে, পরবর্তীতে আমরা এইচএসবি মোড সম্পর্কে কথা বলতে যাচ্ছি। নিম্নোক্ত HSB মোডের মান নির্ধারণ পদ্ধতি দেখায়।

কোড উদাহরণ (9-5):

[cceN_cpp থিম = "ভোর"] অকার্যকর সেটআপ () {

আকার (400, 400);

কালার মোড (এইচএসবি);

}

অকার্যকর ড্র () {

পটভূমি (0);

rectMode (কেন্দ্র);

জন্য (int i = 0; i <20; i ++) {

রঙ col = রঙ (i/20.0 * 255, 255, 255);

পূরণ (col);

রেকট (i * 20 + 10, উচ্চতা/2, 10, 300);

}

} [/cceN_cpp]

প্রক্রিয়াকরণে, HSB মোড পরিবর্তন করার জন্য, আমাদের শুধুমাত্র কালারমোড (HSB) এর একটি বাক্য যোগ করতে হবে। রঙ মোড () ফাংশনের ব্যবহার হল রঙ মোড পরিবর্তন করা। যদি আমরা বন্ধনীতে "HSB" লিখি, তাহলে এটি HSB মোডে সেট করা হবে; যখন আমরা "আরজিবি" লিখি, এটি আরজিবি মোডে স্থানান্তরিত হবে।

আমরা যখন কালারমোড (HSB) লিখি, তখন মনোযোগ দেওয়ার মতো বিষয় হল, HSB- এর ডিফল্ট সর্বোচ্চ মান 255। ফটোশপে, H এর সর্বোচ্চ মান 360, S এবং B এর সর্বোচ্চ মান 100। তাই আমাদের রূপান্তর করতে হবে।

যদি ফটোশপে এইচএসবি মান (55, 100, 100) হয়, যখন প্রসেসিংয়ে রূপান্তরিত হয়, এই মানটি (55 /360 × 255, 255, 255), অর্থাৎ (40, 255, 255) হওয়া উচিত।

colorMode () একটি ফাংশন যা ওভারল্যাপ করা যায়। নিম্নলিখিতগুলিতে, আমরা এটি আপনার কাছে বিস্তারিতভাবে পরিচয় করিয়ে দেব।

ধাপ 5: কালারমোডের ওভারল্যাপিং পদ্ধতি

অতএব, যদি আপনি ফটোশপে এইচএসবি মানকে ম্যানুয়ালি রূপান্তর করতে না চান, তাহলে আপনি "কালারমোড ()" কে "কালারমোড (এইচএসবি, 360, 100, 100)" লিখতে পারেন।

এইচএসবি মোড অ্যাপ্লিকেশন কেস 1

যেহেতু আরজিবি মোড রঙের পরিবর্তনগুলি নিয়ন্ত্রণের জন্য খুব সুবিধাজনক নয়, এই সময়ে, যদি আপনি রঙগুলি আরও নমনীয়ভাবে নিয়ন্ত্রণ করতে চান তবে আপনি এইচএসবি মোড বিবেচনা করতে পারেন।

কোড উদাহরণ (9-6):

[cceN_cpp থিম = "ভোর"] অকার্যকর সেটআপ () {

আকার (800, 800);

পটভূমি (0);

কালার মোড (এইচএসবি);

}

অকার্যকর ড্র () {

স্ট্রোকওয়েট (2);

স্ট্রোক (int (মিলিস ()/1000.0 * 10)%255, 255, 255);

ভাসমান 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 (বর্ণ) নিয়ন্ত্রণ করি, তখন আমরা মিলিস () ব্যবহার করেছি। এটি শুরু থেকে বর্তমান পর্যন্ত অপারেশনের সময় পাবে। এভাবে, সময়ের সাথে এগিয়ে যাওয়ার সাথে সাথে, H (hue) এর মান স্বয়ংক্রিয়ভাবে বৃদ্ধি পাবে, তারপর রঙ পরিবর্তন হবে।

মিলিস () এর একক হল ms। সুতরাং, যখন প্রোগ্রামটি 1 সেকেন্ডের জন্য চলে, তখন রিটার্নের মান 1000 হবে। এর ফলে একটি মান হবে যা খুব বড়। তাই আমাদের 1000.0 দিয়ে ভাগ করতে হবে।

কারণ আমরা আশা করি যে রঙগুলি একটি পর্যায়ক্রমিক সঞ্চালন উপস্থাপন করবে, তাই যখন আমরা শেষ পর্যন্ত স্ট্রোকের প্রথম প্যারামিটারটি লিখব তখন আমাদের মডুলো অপারেশন করতে হবে। এটি নিশ্চিত করতে পারে যে এটি আবার 0 থেকে শুরু হবে যখন H (হিউ) 255 ছাড়িয়ে যাবে।

ফাংশন স্ট্রোকওয়েট () লাইনের বেধ নিয়ন্ত্রণ করতে পারে। বন্ধনীতে প্যারামিটারের জন্য সংশ্লিষ্ট ইউনিট হল পিক্সেল।

ধাপ 6: মোড অ্যাপ্লিকেশন কেস 2

কোড উদাহরণ (9-7):

[cceN_cpp থিম = "ভোর"] int num; // বর্তমানে অঙ্কিত রেখার পরিমাণ

ভাসমান posX_A, posY_A; // বিন্দু A এর সমন্বয়

ভাসমান posX_B, posY_B; // বিন্দু B এর সমন্বয়

ভাসা কোণ A, গতি A; // বিন্দু A এর কোণ, গতি

ভাসা কোণ বি, স্পিডবি; // বিন্দু B এর কোণ, গতি

ভাসমান ব্যাসার্ধ X_A, ব্যাসার্ধ Y_A; // X (Y) অক্ষে বিন্দু A দ্বারা গঠিত ডিম্বাকৃতির ব্যাসার্ধ।

ভাসমান ব্যাসার্ধ X_B, ব্যাসার্ধ Y_B; // তিনি ডিম্বাকৃতির ব্যাসার্ধটি X (Y) অক্ষে পয়েন্ট B দ্বারা গঠিত।

অকার্যকর সেটআপ() {

আকার (800, 800);

কালার মোড (এইচএসবি);

পটভূমি (0);

গতি A = 0.0009;

speedB = 0.003;

ব্যাসার্ধ X_A = 300;

ব্যাসার্ধ Y_A = 200;

ব্যাসার্ধ X_B = 200;

ব্যাসার্ধ Y_B = 300;

}

অকার্যকর ড্র () {

অনুবাদ করুন (প্রস্থ/2, উচ্চতা/2);

জন্য (int i = 0; i <50; i ++) {

কোণ A += speedA;

কোণ বি += গতি বি;

posX_A = cos (angleA) * radiusX_A;

posY_A = sin (angleA) * ব্যাসার্ধ Y_A;

posX_B = cos (angleB) * radiusX_B;

posY_B = sin (angleB) * ব্যাসার্ধ Y_B;

স্ট্রোক (int (num/500.0) % 255, 255, 255, 10);

লাইন (posX_A, posY_A, posX_B, posY_B);

সংখ্যা ++;

}

} [/cceN_cpp]

অপারেশন প্রভাব:

আউটপুট ছবি:

আপনি যে প্যাটার্নটি দেখেছেন তা ধ্রুবক ওভারল্যাপিংয়ের মাধ্যমে একটি গতিশীল লাইন দ্বারা উত্পাদিত হয়। রেখার দুটি শেষ বিন্দুর চিহ্নগুলি দুটি বৃত্ত আলাদাভাবে।

এইচএসবি মোডের মাধ্যমে, আমরা রঙের পরিবর্তনগুলি নিয়ন্ত্রণ করেছি। লাইন বৃদ্ধির সাথে, আভা অফসেট হবে। যখন বিশাল অর্ধ-স্বচ্ছ লাইনগুলি ওভারল্যাপ হয়ে যায়, তখন এটি খুব সমৃদ্ধ রঙের গ্রেডিয়েন্ট তৈরি করবে।

আমরা একটি লুপের জন্য ফাংশন ড্র এ এম্বেড করেছি যার লক্ষ্য হল লুপের পরিমাণ নিয়ন্ত্রণের জন্য ব্যবহার করা। এটি এর সমতুল্য যে আমরা অঙ্কনের গতি নিয়ন্ত্রণ করেছি। লুপের জন্য বিচার শর্তের মান বৃদ্ধি, এটি অঙ্কন seepd বৃদ্ধি করবে।

নীচে পরিকল্পিত চিত্র। আপনি চেনাশোনাগুলির মুভমেন্ট ট্রেস আরও স্পষ্টভাবে দেখতে পাবেন।

বিভিন্ন গতি এবং ব্যাসার্ধ সামঞ্জস্য করুন, গঠিত নিদর্শনগুলিও ভিন্ন হবে। কোণ, গতি, ব্যাসার্ধ এক্স, ব্যাসার্ধের মতো ভেরিয়েবল পরিবর্তন করার চেষ্টা করুন এবং দেখুন কী হবে।

ধাপ 7: লেয়ার ব্লেন্ডিং মোড

আমরা আগে যে বিভিন্ন রঙের মোড নিয়ে কথা বলেছিলাম তা সবই গ্রাফিক্সের উপাদানগুলিকে রঙ করতে ব্যবহৃত হয়। রঙ নিয়ন্ত্রণের জন্য এই পদ্ধতি ব্যবহার করা ছাড়া, প্রসেসিং ফটোশপের মতো বিভিন্ন স্তরের ব্লেন্ডিং মোড ব্যবহার করতে পারে।

PS এ লেয়ার উইন্ডো খুলুন, লেয়ারের ব্লেন্ডিং মোড বেছে নিতে ক্লিক করুন, তারপর আমরা এই অপশনগুলো দেখতে পারি।

এগুলি PS এ বিদ্যমান স্তর মোড। সহজভাবে বলতে গেলে, ব্লেন্ডিং মোডকে এক ধরনের কালার ক্যালকুলেশন মোড হিসেবে বিবেচনা করা যেতে পারে। এটি সিদ্ধান্ত নেবে যে শেষ পর্যন্ত কোন রঙ তৈরি করা হবে যখন "রঙ A" এবং "রঙ B"। এখানে "রঙ A" মানে বর্তমান স্তরের পিছনের রঙ (যাকে বেস কালারও বলা হয়)। "রঙ বি" মানে বর্তমান স্তরের রঙ (মিশ্র রঙও বলা হয়)। প্রোগ্রামটি RGB মান এবং রঙ A এবং B এর আলফা অনুযায়ী রঙ C প্রাপ্ত করার জন্য গণনা করবে। এটি স্ক্রিনে ফলাফল রঙ হিসাবে প্রদর্শিত হবে।

বিভিন্ন স্তর মোড বিভিন্ন গণনা পদ্ধতির জন্য দাঁড়িয়েছে। নিবন্ধের এই সিরিজের পরবর্তী অর্ধেক অংশে, আমরা বিস্তারিতভাবে ব্যাখ্যা করব। এখন আমাদের কেবল এর ব্যবহার জানতে হবে।

আসুন প্রোগ্রামে অ্যাড মোড ব্যবহারের একটি উদাহরণ দেখি।

কোড উদাহরণ (9-8):

[cceN_cpp থিম = "ভোর"] PImage image1, image2;

অকার্যকর সেটআপ(){

আকার (800, 400);

image1 = loadImage ("1.jpg");

image2 = loadImage ("2.jpg");

}

অকার্যকর ড্র () {

পটভূমি (0);

blendMode (ADD);

ছবি (image1, 0, 0, 400, 400);

ছবি (image2, mouseX, mouseY, 400, 400);

}

[/cceN_cpp]

ফলাফল:

ফাংশন blendMode () গ্রাফিক্স ব্লেন্ডিং মোড সেট করতে ব্যবহৃত হয়। আমরা ADD এর পিছনে পূরণ করি মানে আমরা অ্যাড মোড সেট করেছি।

প্রোগ্রামে, স্তরের কোন ধারণা নেই। কিন্তু যেহেতু গ্রাফিক উপাদানগুলির অঙ্কন ক্রম আছে, এইভাবে ছবিগুলি মিশ্রিত করার সময়, ছবি 1 কে বেস কালার এবং ইমেজ 2 কে মিশ্র রঙ হিসাবে বিবেচনা করা হয়।

ADD মোড "ব্রাইটেন ক্লাস" এর অন্তর্গত। এটি ব্যবহার করার পরে, আপনি একটি উজ্জ্বল প্রভাব পাবেন।

নীচে একটি মিশ্রণ মোড যা প্রসেসিংয়ে ব্যবহার করা যেতে পারে।

ধাপ 8: প্রসেসিং ব্লেন্ডিং মোড

আমরা প্রভাব দেখতে বিভিন্ন ব্লেন্ডিং মোড পরিবর্তন করার চেষ্টা করতে পারি।

যখন উদাহরণ (9-8) ওভারল্যাপিং মোড গ্রহণ করেছে (পটভূমি সাদাতে সেট করা উচিত):

সাবস্ট্রাক্ট মোড ব্যবহারের পরে (পটভূমি সাদাতে সেট করা উচিত):

ধাপ 9: লেয়ার ব্লেন্ডিং মোড অ্যাপ্লিকেশন কেস

ব্লেন্ডিং মোড শুধুমাত্র ছবিতে ব্যবহার করা যাবে না, তবে ক্যানভাসের সমস্ত গ্রাফিক উপাদানগুলির জন্যও উপযুক্ত। নীচে অ্যাড মোড সম্পর্কে একটি ব্যবহার প্রদর্শন করা হয়েছে। এটি বিভিন্ন আলোর প্রভাব এনালগ করতে ব্যবহার করা যেতে পারে।

কোড উদাহরণ (9-9):

[cceN_cpp থিম = "ভোর"] অকার্যকর সেটআপ () {

আকার (400, 400);

}

অকার্যকর ড্র () {

পটভূমি (0);

blendMode (ADD);

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

জন্য (int i = 0; i <num; i ++) {

যদি (এলোমেলো (1) <0.5) {

পূরণ করুন (0, 50, 0);

} অন্য {

পূরণ করুন (50);

}

উপবৃত্ত (এলোমেলো (50, প্রস্থ - 50), এলোমেলো (50, উচ্চতা - 50), 20, 20);

}

}

[/cceN_cpp]

এখানে, র্যান্ডম ফাংশনের মাধ্যমে, আমরা সবুজ রঙ এবং সাদা রঙ মিশ্রিত করেছি, যা ইতিমধ্যে আলফা বহন করেছে, কণার মধ্যে। আমরা বৃত্তের পরিমাণ নিয়ন্ত্রণ করতে এবং ওভারল্যাপিং প্রভাব দেখতে মাউস ব্যবহার করতে পারি।

ADD এবং SCREEN বেশ মিল।যদিও এটি উজ্জ্বল করার জন্য একই, সূক্ষ্ম পার্থক্য রয়েছে। আপনি এটিকে স্ক্রিনে প্রতিস্থাপন করতে পারেন এবং তুলনা করতে পারেন। ওভারল্যাপ হওয়ার পরে, ADD এর বিশুদ্ধতা এবং উজ্জ্বলতা বেশি হবে। এটা আলো প্রভাব analoging জন্য উপযুক্ত।

রঙের জন্য, এখানে আমরা এই অধ্যায়ে শেষ করেছি। এই "ভাষার" জন্য, আপনি ইতিমধ্যে যথেষ্ট শূন্যস্থান আয়ত্ত করেছেন। এখন, আকৃতি এবং রঙের পৃথিবী উপভোগ করতে কোড ব্যবহার করতে তাড়াতাড়ি করুন!

ধাপ 10: উৎস

এই নিবন্ধটি থেকে:

যদি আপনার কোন প্রশ্ন থাকে, আপনি contact [email protected] এ যোগাযোগ করতে পারেন।

প্রস্তাবিত: