এলোগরিদম এলোমেলোভাবে একটি নান্দনিকভাবে-মনোরম রঙ প্যালেট তৈরি করতে [বন্ধ]


301

আমি প্রচুর সংখ্যক এলোমেলো, নান্দনিকভাবে আনন্দদায়ক রঙ উত্পন্ন করতে একটি সাধারণ অ্যালগরিদমের সন্ধান করছি। সুতরাং কোনও পাগল নিয়ন রঙ, মলের স্মরণ করিয়ে দেওয়ার রং ইত্যাদি নয়

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

যেকোনো পরামর্শই বেশ কাজে দেবে.


2
আমি এমন একটি ওয়েবসাইট তৈরি করব যা প্রতিটি ভিজিটের সময় এলোমেলো রঙ তৈরি করে। একটি "এই রঙের শিলাগুলি" / "এই রঙটি সফলভাবে চলা" ভোট দিন Have তারপরে ভোটের অনুপাত অনুসারে বাছাই করুন।
নসরেডনা

আপনি এইচএসএল এবং এইচএসভি পরীক্ষা করে দেখতে পারেন।
জিম কেইনার

48
"বর্ণগুলি স্মরণ করিয়ে দেয় রঙগুলি" আমি এটি পছন্দ করি
LOL

এটি কোনও অ্যালগরিদম নয়।
ম্যাট দ্য নিনজা

প্রশ্নটি বন্ধ থাকায় আমি একটি মন্তব্য যুক্ত করব। আমি এটি চেষ্টা করি নি, তবে মিডপয়েন্ট ডিসপ্লেসমেন্ট অ্যালগরিদম বা ভেরিয়েন্ট ( লাইটহাউস 3 ডি / ওপেনগল / ট্রেন / ইন্ডেক্স.এফপি? এমপি 2 ) বা পার্লিন নয়েজ ব্যবহার করে, তবে ফ্র্যাক্টাল বা পদ্ধতিগত পদ্ধতিতে চেষ্টা করা আকর্ষণীয় হবে but রঙগুলির আরজিবি উপাদানগুলি মিশ্রিত করতে।
আলফোকস

উত্তর:


426

ধ্রুব রঙের সাথে আপনি এলোমেলো রঙের আরজিবি মানগুলি গড়তে পারেন:

(জাভাতে উদাহরণ)

public Color generateRandomColor(Color mix) {
    Random random = new Random();
    int red = random.nextInt(256);
    int green = random.nextInt(256);
    int blue = random.nextInt(256);

    // mix the color
    if (mix != null) {
        red = (red + mix.getRed()) / 2;
        green = (green + mix.getGreen()) / 2;
        blue = (blue + mix.getBlue()) / 2;
    }

    Color color = new Color(red, green, blue);
    return color;
}


সাদা (255, 255, 255) এর সাথে এলোমেলো রঙ মিশ্রিত করা আসল রঙের আভা রেখে হালকা ভাব বাড়িয়ে নিরপেক্ষ প্যাসেলগুলি তৈরি করে। এই এলোমেলোভাবে উত্পন্ন প্যাসেলগুলি সাধারণত একসাথে ভাল হয়, বিশেষত বড় সংখ্যায়।

উপরের পদ্ধতিটি ব্যবহার করে এখানে কয়েকটি প্যাস্টেল রঙ উত্পন্ন হয়েছে:

প্রথম


আপনি একটি ধ্রুবক প্যাস্টেলের সাথেও এলোমেলো রঙ মিশ্রণ করতে পারেন, যার ফলস্বরূপ নিরপেক্ষ রঙের রঙিন সেট হয়ে যায়। উদাহরণস্বরূপ, হালকা নীল রঙ ব্যবহার করে এরকম রঙ তৈরি হয়:

দ্বিতীয়


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

কিছু অতিরিক্ত সংস্থান:


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

এলোমেলো রঙের উপাদান তৈরি করার সময়, 200 এর মতো কম কিছু দিয়ে উপরের
বাউন্ডকে

87

আমি একটি রঙিন চাকা ব্যবহার করব এবং এলোমেলো অবস্থানের সাথে আপনি সোনার কোণ যুক্ত করতে পারবেন (137,5 ডিগ্রি)

http://en.wikipedia.org/wiki/Golden_angle

যাতে প্রতিটি সময় ওভারল্যাপ হয় না এমন বিভিন্ন রঙ পেতে।

রঙিন চাকাটির জন্য উজ্জ্বলতা সামঞ্জস্য করা আপনি বিভিন্ন উজ্জ্বল / গা color় রঙের সংমিশ্রণ পেতে পারেন।

আমি এই ব্লগ পোস্টটি পেয়েছি যা সুবর্ণ অনুপাত ব্যবহার করে সমস্যা এবং সমাধানের সত্যই ব্যাখ্যা করে।

http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/

আপডেট: আমি এই অন্যান্য পদ্ধতির সন্ধান পেয়েছি:

একে আরওয়াইবি (লাল, হলুদ, নীল) পদ্ধতি বলা হয় এবং এটি এই কাগজে বর্ণিত হয়েছে:

http://threekings.tk/mirror/ryb_TR.pdf

"পেইন্ট ইনস্পায়ার্ড কালার কম্পোজিটিং" হিসাবে।

অ্যালগরিদম রঙগুলি উত্পন্ন করে এবং প্রতিটি নতুন রঙ পূর্বে নির্বাচিতগুলির সাথে এর ইউক্যালিডিয়ান দূরত্বকে সর্বাধিক করতে বেছে নেওয়া হয়।

এখানে আপনি জাভাস্ক্রিপ্ট এএ ভাল বাস্তবায়ন পেতে পারেন:

http://afriggeri.github.com/RYB/

আপডেট 2:

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

http://tools.medialab.sciences-po.fr/iwanthue/index.php


iWantHue উত্তর। সেখানে যাও. বিস্মিত.
ইরংজে ডটকম

23

জাভাস্ক্রিপ্টে:

function pastelColors(){
    var r = (Math.round(Math.random()* 127) + 127).toString(16);
    var g = (Math.round(Math.random()* 127) + 127).toString(16);
    var b = (Math.round(Math.random()* 127) + 127).toString(16);
    return '#' + r + g + b;
}

এখানে ধারণাটি দেখেছেন: http://blog.functionalfun.net/2008/07/random-pastel-colour-generator.html


সম্পূর্ণরূপে সঠিক নয়: আপনাকে একক-অঙ্কের সংখ্যার জন্যও শূন্য-প্যাডিং করা দরকার ... যাইহোক, এখানে লুকারদের জন্য একটি কার্যকারী ফিডল রয়েছে: jsfiddle.net/RedDevil/LLYBQ ----- স্ক্র্যাচ যে ... আমি করিনি +127 বিটটি লক্ষ্য করুন ... তবে তারপরে এটি গা dark় শেডগুলি উত্পন্ন করবে না।
কুমারহর্ষ

2
মূল ধারণাটি ছিল নির্বিচারে মনোরম রঙ উত্পন্ন করা।
গা dark় শেডগুলি

11

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



5

একটি উত্তর যা উপেক্ষা করা উচিত নয়, কারণ এটি সহজ এবং সুবিধার উপস্থাপন করে, তা হ'ল বাস্তব জীবনের ছবি এবং আঁকার নমুনা। আপনি আধুনিক আর্ট ছবি, সিজান, ভ্যান গগ, মনেট, ফটোগুলির থাম্বনেইলে এলোমেলো রঙ চান হিসাবে যতটা এলোমেলো পিক্সেল নমুনা করুন ... সুবিধাটি হ'ল আপনি থিম অনুসারে রঙ পেতে পারেন এবং সেগুলি জৈব রঙ। কেবল একটি ফোল্ডারে 20 - 30 টি ছবি রাখুন এবং প্রতিবার এলোমেলোভাবে নমুনা একটি এলোমেলো পিক করুন।

মনস্তাত্ত্বিক ভিত্তিক প্যালেটটির জন্য এইচএসভি মানগুলিতে রূপান্তর একটি বিস্তৃত কোড অ্যালগরিদম। এইচএসভি এলোমেলো করা সহজ।


1
mkweb.bcgsc.ca/color_summarizer/?analyze এখানে একটি অনলাইন সরঞ্জাম যা বাস্তব জীবনের ফটোগুলি বিশ্লেষণ করতে পারে এবং আপনার কাছে ফিরে আসতে পারে আরজিবি মূল্যবোধের গ্রাফার বলছেন যে বাস্তবের ছবিগুলি তাদের গ্রাফগুলিতে কী অনুভূতি পেতে পারে .... অত্যন্ত দরকারী ওয়েবসাইট, যা প্রয়োজনীয় যদি আপনি এলোমেলো কলার্সের জন্য অ্যাভান্ট-গার্ডের অ্যালগরিদমগুলি ডিজাইন করার চেষ্টা করছেন-
com.prehensible


3

এখানে সি # তে দ্রুত এবং নোংরা রঙের জেনারেটর রয়েছে (এই নিবন্ধে বর্ণিত 'আরওয়াইবি অ্যাপ্রোচ' ব্যবহার করে )। এটি জাভাস্ক্রিপ্ট থেকে একটি পুনর্লিখন ।

ব্যবহার করুন:

List<Color> ColorPalette = ColorGenerator.Generate(30).ToList();

প্রথম দুটি রঙ সাদা এবং কালো একটি ছায়া হতে থাকে। আমি প্রায়শই তাদের এড়িয়ে যাই (লিনক ব্যবহার করে):

List<Color> ColorsPalette = ColorGenerator
            .Generate(30)
            .Skip(2) // skip white and black
            .ToList(); 

বাস্তবায়ন:

public static class ColorGenerator
{

    // RYB color space
    private static class RYB
    {
        private static readonly double[] White = { 1, 1, 1 };
        private static readonly double[] Red = { 1, 0, 0 };
        private static readonly double[] Yellow = { 1, 1, 0 };
        private static readonly double[] Blue = { 0.163, 0.373, 0.6 };
        private static readonly double[] Violet = { 0.5, 0, 0.5 };
        private static readonly double[] Green = { 0, 0.66, 0.2 };
        private static readonly double[] Orange = { 1, 0.5, 0 };
        private static readonly double[] Black = { 0.2, 0.094, 0.0 };

        public static double[] ToRgb(double r, double y, double b)
        {
            var rgb = new double[3];
            for (int i = 0; i < 3; i++)
            {
                rgb[i] = White[i]  * (1.0 - r) * (1.0 - b) * (1.0 - y) +
                         Red[i]    * r         * (1.0 - b) * (1.0 - y) +
                         Blue[i]   * (1.0 - r) * b         * (1.0 - y) +
                         Violet[i] * r         * b         * (1.0 - y) +
                         Yellow[i] * (1.0 - r) * (1.0 - b) *        y +
                         Orange[i] * r         * (1.0 - b) *        y +
                         Green[i]  * (1.0 - r) * b         *        y +
                         Black[i]  * r         * b         *        y;
            }

            return rgb;
        }
    }

    private class Points : IEnumerable<double[]>
    {
        private readonly int pointsCount;
        private double[] picked;
        private int pickedCount;

        private readonly List<double[]> points = new List<double[]>();

        public Points(int count)
        {
            pointsCount = count;
        }

        private void Generate()
        {
            points.Clear();
            var numBase = (int)Math.Ceiling(Math.Pow(pointsCount, 1.0 / 3.0));
            var ceil = (int)Math.Pow(numBase, 3.0);
            for (int i = 0; i < ceil; i++)
            {
                points.Add(new[]
                {
                    Math.Floor(i/(double)(numBase*numBase))/ (numBase - 1.0),
                    Math.Floor((i/(double)numBase) % numBase)/ (numBase - 1.0),
                    Math.Floor((double)(i % numBase))/ (numBase - 1.0),
                });
            }
        }

        private double Distance(double[] p1)
        {
            double distance = 0;
            for (int i = 0; i < 3; i++)
            {
                distance += Math.Pow(p1[i] - picked[i], 2.0);
            }

            return distance;
        }

        private double[] Pick()
        {
            if (picked == null)
            {
                picked = points[0];
                points.RemoveAt(0);
                pickedCount = 1;
                return picked;
            }

            var d1 = Distance(points[0]);
            int i1 = 0, i2 = 0;
            foreach (var point in points)
            {
                var d2 = Distance(point);
                if (d1 < d2)
                {
                    i1 = i2;
                    d1 = d2;
                }

                i2 += 1;
            }

            var pick = points[i1];
            points.RemoveAt(i1);

            for (int i = 0; i < 3; i++)
            {
                picked[i] = (pickedCount * picked[i] + pick[i]) / (pickedCount + 1.0);
            }

            pickedCount += 1;
            return pick;
        }

        public IEnumerator<double[]> GetEnumerator()
        {
            Generate();
            for (int i = 0; i < pointsCount; i++)
            {
                yield return Pick();
            }
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }

    public static IEnumerable<Color> Generate(int numOfColors)
    {
        var points = new Points(numOfColors);

        foreach (var point in points)
        {
            var rgb = RYB.ToRgb(point[0], point[1], point[2]);
            yield return Color.FromArgb(
                (int)Math.Floor(255 * rgb[0]),
                (int)Math.Floor(255 * rgb[1]),
                (int)Math.Floor(255 * rgb[2]));
        }
    }
}

আমি জাভা উত্তরটি সরিয়েছি তবে প্রয়োজনে জাভা সংস্করণটি এই গিস্টটিতে
ডিলান ওয়াটসন

3

একটি আর টু-লাইনারে ডেভিড ক্রের পদ্ধতি:

GetRandomColours <- function(num.of.colours, color.to.mix=c(1,1,1)) {
  return(rgb((matrix(runif(num.of.colours*3), nrow=num.of.colours)*color.to.mix)/2))
}

2
function fnGetRandomColour(iDarkLuma, iLightLuma) 
{       
  for (var i=0;i<20;i++)
  {
    var sColour = ('ffffff' + Math.floor(Math.random() * 0xFFFFFF).toString(16)).substr(-6);

    var rgb = parseInt(sColour, 16);   // convert rrggbb to decimal
    var r = (rgb >> 16) & 0xff;  // extract red
    var g = (rgb >>  8) & 0xff;  // extract green
    var b = (rgb >>  0) & 0xff;  // extract blue

    var iLuma = 0.2126 * r + 0.7152 * g + 0.0722 * b; // per ITU-R BT.709


    if (iLuma > iDarkLuma && iLuma < iLightLuma) return sColour;
  }
  return sColour;
} 

প্যাস্টেলের জন্য, উচ্চতর লুমা গা dark় / হালকা পূর্ণসংখ্যায় পাস করুন - যেমন fnGetRandomColour (120, 250)

ক্রেডিট: সব ক্রেডিট http://paulirish.com/2009/random-hex-color-code-snippets/ stackoverflow.com/questions/12043187/how-to-check-if-hex-color-is-too-black


1

ডেভিড ক্রের মূল উত্তর, আইই এবং নোডেজ নির্দিষ্ট কোড অন্তর্ভুক্ত জাভাস্ক্রিপ্ট অভিযোজন।

generateRandomComplementaryColor = function(r, g, b){
    //--- JavaScript code
    var red = Math.floor((Math.random() * 256));
    var green = Math.floor((Math.random() * 256));
    var blue = Math.floor((Math.random() * 256));
    //---

    //--- Extra check for Internet Explorers, its Math.random is not random enough.
    if(!/MSIE 9/i.test(navigator.userAgent) && !/MSIE 10/i.test(navigator.userAgent) && !/rv:11.0/i.test(navigator.userAgent)){
        red = Math.floor((('0.' + window.crypto.getRandomValues(new Uint32Array(1))[0]) * 256));
        green = Math.floor((('0.' + window.crypto.getRandomValues(new Uint32Array(1))[0]) * 256));
        blue = Math.floor((('0.' + window.crypto.getRandomValues(new Uint32Array(1))[0]) * 256));
    };
    //---

    //--- nodejs code
    /*
    crypto = Npm.require('crypto');
    red = Math.floor((parseInt(crypto.randomBytes(8).toString('hex'), 16)) * 1.0e-19 * 256);
    green = Math.floor((parseInt(crypto.randomBytes(8).toString('hex'), 16)) * 1.0e-19 * 256);
    blue = Math.floor((parseInt(crypto.randomBytes(8).toString('hex'), 16)) * 1.0e-19 * 256);
    */
    //---

    red = (red + r)/2;
    green = (green + g)/2;
    blue = (blue + b)/2;

    return 'rgb(' + Math.floor(red) + ', ' + Math.floor(green) + ', ' + Math.floor(blue) + ')';
}

এটি ব্যবহার করে ফাংশনটি চালান:

generateRandomComplementaryColor(240, 240, 240);

1

স্বতন্ত্র রং ব্যবহার করুন

জাভাস্ক্রিপ্ট লিখিত।

এটি চাক্ষুষভাবে একটি প্যালেট উত্পন্ন করে স্বতন্ত্র রঙের ।

স্বতন্ত্র রঙগুলি অত্যন্ত কনফিগারযোগ্য:

  • প্যালেটে কত রঙ রয়েছে তা চয়ন করুন
  • হিউ একটি নির্দিষ্ট ব্যাপ্তিতে সীমাবদ্ধ করুন
  • ক্রোমা (স্যাচুরেশন) একটি নির্দিষ্ট ব্যাপ্তিতে সীমাবদ্ধ করুন
  • একটি নির্দিষ্ট পরিসরে হালকাতা সীমাবদ্ধ করুন
  • প্যালেটটির সাধারণ মানের কনফিগার করুন

0

আপনি তাদের একটি নির্দিষ্ট উজ্জ্বলতার মধ্যে থাকতে পারে। এটি "নিয়ন" রঙের পরিমাণকে কিছুটা নিয়ন্ত্রণ করবে। উদাহরণস্বরূপ, যদি "উজ্জ্বলতা"

brightness = sqrt(R^2+G^2+B^2)

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


0

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

তবে কিছু আছে নিয়ম রয়েছে যা আপনি ব্যবহার করতে পারেন খারাপ রঙের সংমিশ্রণগুলি মুছতে (অর্থাত্ সংঘাতের রঙগুলির জন্য এবং পরিপূরক রঙগুলি বেছে নেওয়ার নিয়ম রয়েছে)।

আমি আপনাকে আপনার লাইব্রেরির আর্ট সেকশনটি দেখার এবং রঙিন তত্ত্বের বইগুলি পরীক্ষা করার আগে একটি ভাল রঙ কী তা সম্পর্কে আরও ভাল ধারণা অর্জনের জন্য পরামর্শ দেওয়ার পরামর্শ দিই - এটি প্রদর্শিত হবে যা আপনি এমনকি জানেন না কেন নির্দিষ্ট সংমিশ্রণগুলি কাজ করে এবং অন্যরা ডান ' টি।

-Adam


0

আমি দৃ strongly়ভাবে সিজি এইচএসভিটোআরজিবি শেডার ফাংশনটি ব্যবহার করার পরামর্শ দিচ্ছি, তারা দুর্দান্ত ... এটি আপনাকে ক্র্ট মনিটরের মতো নিয়ন্ত্রণের পরিবর্তে চিত্রকরের মতো প্রাকৃতিক রঙ নিয়ন্ত্রণ দেয় যা আপনি সম্ভবত ব্যবহার করেন না!

এটি 1 টি ফ্লোট মান তৈরি করার একটি উপায়। অর্থাত ধূসর, রঙ এবং উজ্জ্বলতা এবং স্যাচুরেশন ইত্যাদির সমন্বয়ে 1000 ডিএসে:

int rand = a global color randomizer that you can control by script/ by a crossfader etc.
float h = perlin(grey,23.3*rand)
float s = perlin(grey,54,4*rand)
float v = perlin(grey,12.6*rand)

Return float4 HSVtoRGB(h,s,v);

ফলাফল হ'ল অসাধারণ রঙ র্যান্ডোমাইজেশন! এটি প্রাকৃতিক নয় তবে এটি প্রাকৃতিক রঙের গ্রেডিয়েন্টগুলি ব্যবহার করে এবং এটি জৈব এবং নিয়ন্ত্রণীয়ভাবে আইরিডসেন্ট / পেস্টেল পরামিতি দেখায়।

পার্লিনের জন্য, আপনি এই ফাংশনটি ব্যবহার করতে পারেন এটি পার্লিনের একটি দ্রুত জিগ জাগ সংস্করণ।

function  zig ( xx : float ): float{    //lfo nz -1,1
    xx= xx+32;
    var x0 = Mathf.Floor(xx);
    var x1 = x0+1;
    var v0 = (Mathf.Sin (x0*.014686)*31718.927)%1;
    var v1 = (Mathf.Sin  (x1*.014686)*31718.927)%1;
    return Mathf.Lerp( v0 , v1 , (xx)%1 )*2-1;
}

0

আমি তৈরি কিছু সাইটের জন্য আমি এখানে কিছু লিখেছি। এটি শ্রেণীর সাথে কোনও ডিভের জন্য একটি এলোমেলো ফ্ল্যাট ব্যাকগ্রাউন্ড-রঙ স্বয়ংক্রিয়ভাবে উত্পন্ন করবে .flat-color-gen। Jquery কেবলমাত্র পৃষ্ঠাটিতে CSS যুক্ত করার উদ্দেশ্যে প্রয়োজনীয়; এটি এর মূল অংশের জন্য প্রয়োজন নেই, যা generateFlatColorWithOrder()পদ্ধতি।

জেএসফিডাল লিংক

(function($) {
    function generateFlatColorWithOrder(num, rr, rg, rb) {
        var colorBase = 256;
        var red = 0;
        var green = 0;
        var blue = 0;
        num = Math.round(num);
        num = num + 1;
        if (num != null) {

            red = (num*rr) % 256;
            green = (num*rg) % 256;
            blue = (num*rb) % 256;
        }
        var redString = Math.round((red + colorBase) / 2).toString();
        var greenString = Math.round((green + colorBase) / 2).toString();
        var blueString = Math.round((blue + colorBase) / 2).toString();
        return "rgb("+redString+", "+greenString+", "+blueString+")";
        //return '#' + redString + greenString + blueString;
    }

    function generateRandomFlatColor() {
        return generateFlatColorWithOrder(Math.round(Math.random()*127));
    }

    var rr = Math.round(Math.random()*1000);
    var rg = Math.round(Math.random()*1000);
    var rb = Math.round(Math.random()*1000);
    console.log("random red: "+ rr);
    console.log("random green: "+ rg);
    console.log("random blue: "+ rb);
    console.log("----------------------------------------------------");
    $('.flat-color-gen').each(function(i, obj) {
        console.log(generateFlatColorWithOrder(i));
        $(this).css("background-color",generateFlatColorWithOrder(i, rr, rg, rb).toString());
    });
})(window.jQuery);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.