আমি কিছুক্ষণের জন্য মনে রেখেছি এমন একটি ধারণা হ'ল প্রয়োজনীয় বিভিন্ন রঙের জন্য বিভিন্ন-হিসাবে-সম্ভব (সীমাবদ্ধতার মধ্যে) রঙ উত্পন্ন করা। অতিরিক্ত ঝামেলা হ'ল যদি পরে একই লেখচিত্রের জন্য অতিরিক্ত একাধিক রঙের প্রয়োজন হয় (সম্ভবত আরও কয়েকটি বার যোগ করা হচ্ছে) তবে বিদ্যমান রংগুলি একই রাখলে তাদের একই স্কিমের সাথে ফিট করতে হবে।
আমি যে ধারণাটি নিয়ে এসেছি তা হ'ল একটি বিড়বিড় করে কৌশল। রঙের একটি বৃত্তের কল্পনা করুন (প্রতিটি একই তাত্পর্য এবং উজ্জ্বলতার সাথে আলাদা আলাদা রঙ হতে পারে, যদিও আপনি যে কোনও বৃত্তের স্পেসের মাধ্যমে কোনও বৃত্তকে সংজ্ঞায়িত করতে পারেন)। সেই বৃত্তের জন্য ডিগ্রিতে একটি কোণ দেওয়ার পরিবর্তে শূন্যের 255 হতে হবে b (প্রযুক্তিগত ভাষায়, সংযোজন এবং বিয়োগফলটি 256 মডিউল)।
কৌশলটি হ'ল আপনি যখন এই নম্বরগুলিকে বিট-রিভার্স করার জন্য রঙ শূন্য, রঙ এক ইত্যাদি নির্বাচন করেন। সি তে এটি করতে আমি ব্যবহার করতাম ...
value = ((value & 0x0F) << 4) | ((value & 0xF0) >> 4);
value = ((value & 0x33) << 2) | ((value & 0xCC) >> 2);
value = ((value & 0x55) << 1) | ((value & 0xAA) >> 1);
সুতরাং 0, 1, 2, 3, 4 অনুক্রম 0, 128, 64, 192, 32 এ রূপান্তরিত হয়।
মুল বক্তব্যটি হ'ল আপনার 256 টি স্বতন্ত্র রঙ রয়েছে এবং প্রথম দিকের রঙগুলি খুব বেশি বিস্তৃত হয়, পরে রঙগুলি কম বিস্তৃতভাবে ফাঁক হয়ে যায় এবং শূন্যস্থান পূরণ করে (64 থেকে 0 এবং 128 এর মধ্যে অর্ধপথ হয়, 32 আধা পথ হয় 0 এবং 64 ইত্যাদির মধ্যে)।
কোনও নির্দিষ্ট "কোণ" এর জন্য যে কোনও বিট-প্রস্থ কাজ করবে যদি আপনি বিট-বিপরীতটি মানিয়ে নিয়ে যান এবং অবশ্যই আপনি রঙের বিভিন্ন পরামিতিগুলির জন্য একবারে একাধিক চক্র চালাতে পারেন (সম্ভবত হিউ দ্রুত স্পিন করে, তবে স্যাচুরেশন আরও ধীরে ধীরে স্পিন করে)।
এটি কেবলমাত্র আপনার "কোণগুলি" নির্দিষ্ট আরজিবি নম্বরগুলিতে কীভাবে ম্যাপ করবেন বা যে কোনও বিষয়ে আমি কোনও বিশেষজ্ঞ নই - ওহ, এবং অ্যাকশনস্ক্রিপ্ট বিট-ফিডলিকে সমর্থন করে কিনা এই প্রশ্নটি ছেড়ে দেয়।