আরজিবি গ্রেডিয়েন্টস জেনারেশন


18

চ্যালেঞ্জ

দুই বড় হাতের হেক্সাডেসিমেল স্ট্রিং প্রদত্ত (উভয় 6 অক্ষর দীর্ঘ, XXXXXX এবং YYYYYY) আরজিবি মানের প্রতিনিধিত্ব (ছোটো থেকে 000000থেকে FFFFFFসমেত), এবং একটি ইতিবাচক নন-জিরো এন পূর্ণসংখ্যা, n + 2 XXXXXX থেকে YYYYYY করার উত্পন্ন রঙের একটি রৈখিক রূপান্তর প্রদর্শন এটির ফলে একটি রঙ গ্রেডিয়েন্ট হয়।

উদাহরণ

ইনপুট

FF3762
F08800
9

আউটপুট

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

FF3762
FD3F58
FC474E
FA4F44
F9573A
F75F31
F66727
F46F1D
F37713
F17F09
F08800

আদেশ সহকারে

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

পরীক্ষামূলক

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

c1=()=>('00000'+(Math.random()*(1<<24)|0).toString(16)).slice(-6);

$("#col").click(function(){
  alert("Your two colors are: "+c1()+" and "+c1()+".");
});
        
$("#colors").blur(function(){
  $("#test").empty();
	var colArr = $("#colors").val().split("\n");
	for(c in colArr){
  	$("#test").append('<div class="tester" style="background-color:#'+colArr[c]+';">'+colArr[c]+'</div>')
  }
  
});
.tester{height: 20px;
width: 60px;padding: 4px;border: 1px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="col">Your two colors</button><br />
<textarea id="colors"></textarea>
<div id="test">

</div>

1) আপনি "আপনার দুটি রঙ" বোতামে ক্লিক করে আপনার পরীক্ষার জন্য দুটি এলোমেলো রঙ অ্যাক্সেস করতে পারেন। ২) অন্তর্বর্তী পদক্ষেপের সংখ্যা আপনার পিপিসিজি ব্যবহারকারীর নামের জায়গাগুলির অন্তর্ভুক্ত অক্ষরের সংখ্যার সমান হবে, "ওয়ালিওয়েস্ট" এর ক্ষেত্রে এটি 9 হবে (উপরে আমার উদাহরণ অনুসারে)। 3) দুটি কোড এবং সংখ্যা দিয়ে আপনার কোডটি চালান এবং একবার আপনার উত্পন্ন তালিকা তৈরি হয়ে গেলে আপনার উত্পন্ন রঙের গ্রেডিয়েন্টটি পেতে আপনার আউটপুটটিকে টেক্সটরিয়ায় আটকানো এবং এটি থেকে দূরে ট্যাব করার বিকল্প রয়েছে।

আমার উদাহরণ এখানে দেখানো হয়েছে:

গ্রেডিয়েন্ট

আমাকে অবশ্যই স্বীকার করতে হবে, দেখতে খুব দুর্দান্ত লাগছে!

দয়া করে নোট করুন: যেমনটি আমি উল্লেখ করেছি, স্নিপেট ব্যবহার করে আপনার আউটপুটটির পরীক্ষা করা alচ্ছিক, তবে এটি উত্সাহিত হয়েছে! :)

আউটপুট

তালিকার আউটপুটটি অবশ্যই উপরের আমার উদাহরণে দেখানো হিসাবে লাইন ফিড (\ n) দ্বারা পৃথক 6 ডিজিটের হেক্স সংখ্যার N + 2 সেট আকারে থাকতে হবে। আউটপুট পৃথক লাইন, স্থান / কমা বিচ্ছিন্ন তালিকার আকারে হতে পারে, একটি অ্যারে বা যা আপনার ভাষার জন্য উপযুক্ত উপযুক্ত ... (ধন্যবাদ মাথা নীচের জন্য নিমিমি) দয়া করে মনে রাখবেন, আপনি যদি আপনার কোডটি পরীক্ষা করে পরিকল্পনা করেন তবে স্নিপেট, তবে আপনি পৃথক প্রতিটি "রঙ" আপনার উপর নির্ভর করে।

বিধি

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




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

উত্তর:


1

এমএটিএল , 31 বাইট

2+1yhjjh2e!1ZA3e!b:1&Ynk8W5Y2Za

এটি রাউন্ডিং ডাউন সহ লিনিয়ার ইন্টারপোলেশন ব্যবহার করে। ইনপুট ফর্ম্যাট হয়

9
FF3762
F08800

এটি অনলাইন চেষ্টা করুন!

গ্রাফিকাল আউটপুট, 31 বাইট

2+1yhjjh2e!1ZA3e!b:t2YG1&Ynk2ZG

এটি ইনপুটগুলির ফলাফল

5
FF3762
F08800

এখানে চিত্র বর্ণনা লিখুন

এমএটিএল অনলাইনে এটি ব্যবহার করে দেখুন ! দোভাষী বর্তমানে পরীক্ষামূলক। আপনি যদি কোনও আউটপুট না পান তবে পৃষ্ঠাটি রিফ্রেশ করুন এবং আবার "চালান" টিপুন।


4

জাভাস্ক্রিপ্ট (ES6), 130 বাইট

g=
(f,t,n)=>[...Array(++n+1)].map((_,i)=>f.replace(/../g,(e,j)=>((`0x${e}`*(n-i)+`0x${t[j]+t[j+1]}`*i)/n|256).toString(16).slice(1)))
;
p=_=>g(f.value,t.value,+n.value).map(e=>o.insertRow().insertCell().appendChild(document.createTextNode(e)).parentNode.bgColor=e);
<input id=f value=e14f09><input id=t value=9a04f6><input id=n value=4 type=number><input type=button onclick=p() value=Go!><table id=o bgcolor=black cellpadding=4>


3

ডায়ালগ এপিএল , 44 বাইট

N এর জন্য প্রম্পট করে , তারপরে বি ইজিনিং-কালার, তারপরে এনডিং -কালার। ⎕IO←0অনেকগুলি সিস্টেমে ডিফল্ট হওয়া দরকার ।

h[↑⌊B∘+¨(⍳2+N)×(-/E B←(h←⎕D,⎕A)∘⍳¨⍞⍞)÷1+N←⎕]

h[... এইচ এর] সূচক (যখন বন্ধনীর সামগ্রীর মূল্যায়ন শেষ করি তখন এর একটি মান থাকে)

N←⎕সংখ্যার এন জন্য প্রম্পট (4)

1+একটি এন যোগ করুন (5)

(... এর ফলাফল ভাগ করার জন্য এটি ব্যবহার করুন ...

  ⍞⍞ দুটি অক্ষরের স্ট্রিংয়ের জন্য প্রম্পট করুন ["7E0E7E", "FF3762"]

  (... )∘⍳¨প্রতিটি স্ট্রিংয়ের অক্ষরের সূচকগুলি এখানে সন্ধান করুন ...

   ⎕D,⎕A ডি আইজিগুলি এর পরে একটি এলফ্যাবেট

   h←নির্ধারিত

  এখন আমাদের "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" আছে

  E B←সূচকগুলি E এবং B তে নির্ধারণ করুন [[7,১,,০,১14,7,১৪], [১৫,১15,৩,7,6,,]]]

  -/বি বিয়োগ করুন এবং থেকে বন্ধ করুন [[-8, -1, -3,7,1,12]]

  এখন পর্যন্ত ফলাফল [[-1.6, -0.2, -0.6,1.4,0.2,2.4]]

(... দ্বারা গুণ করুন ...

  2+Nদুটি প্লাস এন (6)

   প্রথম পূর্ণসংখ্যা [0,1,2,3,4,5]

 এটি আমাদের [[0,0,0,0,0,0], [- 1.6, -0.2, -0.6,1.4,0.2,2.4], [- 3.2, -0.4, -1.2,2.8,0.4,4.8 দেয় ], ...]

B∘+¨প্রতি [[15,15,3,7,6,2], [13.4,14.8,2.4,8.4,6.2,4.4], [11.8,14.6,1.8,9.8,6.4,6.8] এ বি যুক্ত করুন , ... ]

রাউন্ড ডাউন [[15,15,3,7,6,2], [13,14,2,8,6,4], [11,14,1,9,6,6], ...]

টেবিলের তালিকা তৈরি করুন

[[15,15, 3, 7, 6, 2]
 [13,14, 2, 8, 6, 4]
 [11,14, 1, 9, 6, 6]
 [10,14, 1,11, 6, 9]
 [ 8,14, 0,12, 6,11]
 [ 7,14, 0,14, 7,14]]

এখানে আমরা এইচ সূচক , প্রদান

[["F","F","3","7","6","2]
 ["D","E","2","8","6","4]
 ["B","E","1","9","6","6]
 ["A","E","1","B","6","9]
 ["8","E","0","C","6","B]
 ["7","E","0","E","7","E]]

যা হিসাবে একই

[["FF3762"]
 ["DE2864"]
 ["BE1966"]
 ["AE1B69"]
 ["8E0C6B"]
 ["7E0E7E"]]

এবং প্রিন্ট হিসাবে

FF3762
DE2864
BE1966
AE1B69
8E0C6B
7E0E7E

নতিমাত্রা

অনলাইনে চেষ্টা করুন!


চমৎকার কাজ! রূপান্তরটি দুর্দান্ত দেখাচ্ছে!
ওলিওয়েস্ট

@ ওয়েল ওয়েস্ট ধন্যবাদ এটি সম্ভবত বেশিরভাগের চেয়ে পৃথক রৈখিক রূপান্তর: প্রতিটি বর্ণ পৃথকভাবে স্থানান্তরিত হয়।
অ্যাডাম

2

পাইথ - 35 বাইট

ভয়াবহভাবে গল্ফ হয়েছে, সবেমাত্র ছেড়ে দিয়েছেন।

j++hQsMCm.HMsM:F+dc-FdvzCmiR16cd2Qe

এটি এখানে অনলাইনে চেষ্টা করুন

উদাহরণ:

উদাহরণ


আমি 11 লাইন গ্রেডিয়েন্ট গণনা করি, যদিও আপনার পিপিসি নামটিতে কেবল 8 টি অক্ষর রয়েছে ... তাই 7cb472 93fb8a 8আপনার কোডটি পরীক্ষা করার সময় আপনি কি প্রবেশ করে এবং কেবল 10 লাইন আউটপুট পেয়েছেন?
ওয়েলওয়েস্ট

@ ওয়ালিওয়েস্ট ওপিতে ইউজারনেমটি সম্পর্কে সেই অংশটি পুরোপুরি মিস করেছে, আমি ঠিক করেছি আপনি 9 টি কিউজ ব্যবহার করেছেন, ফিক্সিং।
মাল্টেসেন

@ ওয়েলওয়েস্ট আপডেট হয়েছে
মাল্টেসেন

আরে @ মাল্টেসেন, গ্রেডিয়েন্টটি কিছুটা অদ্ভুত বলে মনে হচ্ছে ... আপনি দুটি রেফারেন্স পেয়েছেন 93fb8a... আপনার কোড আউটপুট একই মানের দুটি লাইন দিয়েছে?
ওয়েলওয়েস্ট

2

পাওয়ারশেল ভি 2 +, 176 159 150 বাইট

param($a,$b,$n)$x=$a-split'(..)'-ne'';$a;++$n..1|%{$j=$_;-join($x=$x|%{"{0:x2}"-f(+"0x$_"-[int]((+"0x$_"-"0x$(($b-split'(..)'-ne'')[$i++%3])")/$j))})}

ইনপুটটিকে দুটি স্ট্রিং এবং একটি সংখ্যা হিসাবে নেয়, তারপরে স্টার্ট স্ট্রিংকে প্রতিটি দুটি অক্ষরের বিভাজনে স্ট্রিংগুলির অ্যারে রূপান্তরিত করে, এতে স্টোর করে $x। আমরা তখন আউটপুট $aথেকে আমাদের শুরু অধ্যায়, এবং লুপ ++$nথেকে1 (সঠিক fenceposting নিশ্চিত করার)।

প্রতিটি পুনরাবৃত্তি, $jবর্তমান সংখ্যায় সহায়ক স্থাপন করে (আমরা বর্তমানে আমাদের গন্তব্যে পৌঁছেছি তার মধ্যে সঠিক ধাপটি আমরা পেয়েছি তা নিশ্চিত করার জন্য পরে ব্যবহার করা হয়েছে) এবং একটি লুপের উপর ভিত্তি করে পরবর্তী পদক্ষেপ গণনা করে$x

প্রতিটি অভ্যন্তরীণ লুপ কেবল একটি অ্যাসাইনমেন্ট। আমরা ormat অপারেটরটি ব্যবহার করে $xএকটি নতুন স্ট্রিংয়ের সমান উপযুক্ত জায়গায় সেট করছি । এখানে একটি দুই অঙ্ক হেক্সাডেসিমেল আউটপুট নির্দিষ্ট করে, এবং ইনপুট ডান দিক আছে অপারেটর। পাওয়ারশেলের একটি নেটিভ হেক্সাডেসিমাল-থেকে দশমিক অপারেটর রয়েছে , সুতরাং এই দীর্ঘ প্যারেন্স-নেস্টেড এক্সপ্রেশনটি সেই অপারেটরটিকে বর্তমান হেক্স্সকে সংখ্যায় রূপান্তর করতে ব্যবহার করছে, এখনও পার্থক্যটি সন্ধান করতে বিয়োগ করে (গতিশীলভাবে এখানে বিভক্ত হয়ে গেছে যেমন আমরা করেছি , এবং সঠিক উপাদানটি নির্বাচন করতে মডুলো ব্যবহার করে), ভাগ করে (পাওয়ারশেল ব্যাংকারদের ডিফল্টরূপে গোল করে) এবং আমাদের পরবর্তী হেক্সটি কী হতে হবে তা পেতে বর্তমান হেক্স থেকে সেই পদক্ষেপ গণনা বিয়োগ করে।"{0:x2}"-fx2-f0x$b$a$j বাকি পদক্ষেপগুলি[int]

সেই গণনার ফলাফলটি আবার $xতিনটি হেক্স উপাদান হিসাবে সংরক্ষণ করা হয়। পাইপলাইনে একটি অনুলিপি তৈরি করতে পেরেনগুলিতে এটি আবদ্ধ হয় এবং -joinএকসাথে একটি স্ট্রিং এড হয়। এই সমস্ত ফলস্বরূপ স্ট্রিংগুলি পাইপলাইনে রেখে গেছে এবং Write-Outputপ্রোগ্রামের প্রয়োগের সময় অন্তর্নিহিত মাধ্যমে আউটপুট ঘটে।


উদাহরণ

আমি দেওয়া হয়েছিল 0ba7c5 এবং 6c0e50 আমার দুটি রং জন্য, এবং TimmyD এটা 6 অক্ষর আছে।

PS C:\Tools\Scripts\golfing> .\rgb-gradients-generation.ps1 '0ba7c5' '6c0e50' 6
0ba7c5
1991b4
277ba3
356592
434f82
513971
5f2361
6c0e50

গ্রেডিয়েন্ট উদাহরণ


1

পাইথন 2, 189 বাইট

w='[int(%s[i:i+2],16)for i in range(0,6,2)]'
def f(a,b,n):
 l=lambda x,y:'%02x'%int((x*(n-i)+y*i)/n);c,d,e=eval(w%'a');f,g,h=eval(w%'b');n+=1
 for i in range(n+1):print l(c,f)+l(d,g)+l(e,h)

গ্রেডিয়েন্ট স্ক্রিনশট


রঙের সুন্দর রঙিন জুড়ি, @ অ্যান্ড্রুএপস্টেইন ... কোডটি নিয়ে দুর্দান্ত কাজ!
ওয়েলওয়েস্ট

1

[গ্রোভি] চূড়ান্ত আপডেট (১৯৯ বাইট) - অনুরোধ অনুসারে

অ গলফ

def g(a,b,n){
  (0..(1.0/n)).collect{
    c->
    x={s->s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}};
    (0..2).collect {
      (int)(x(a).get(it)*n*c+x(b).get(it)*(1-n*c))
    }.collect {
      String.format("%X", it)
    }.join()
  }
}
g('FFFFFF','000000',1/10​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​)​​​​​​​​​​​​​​

গলফ

g(a,b,n){(0..(1.0/n)).collect{c->x={s->s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}};(0..2).collect {(int)(x(a).get(it)*n*c+x(b).get(it)*(1-n*c))}.collect{String.format("%X",it)}.join()}}

এখানে ফাইনালের চেষ্টা করুন: https://groovyconsole.appspot.com/script/5130696796405760


নীচে পুরাতন সংস্করণগুলি, ওপি-র মাধ্যমে হ্রাস পেয়েছে


গ্রোভি (123 বাইট)

গলফ

def g(r,g,b,r2,g2,b2,s){(1..(1.0/s)).collect{c->[(int)(r*s*c+r2*(1-s*c)),(int)(g*s*c+g2*(1-s*c)),(int)(b*s*c+b2*(1-s*c))]}}

অ গলফ

def g(r,g,b,r2,g2,b2,s){
  (1..(1.0/s)).collect {
    c ->
    [(int)(r*s*c+r2*(1-s*c)),(int)(g*s*c+g2*(1-s*c)),(int)(b*s*c+b2*(1-s*c))]
  }
}

ইনপুট

r,g,b -> Starting RGB Color
r2,g2,b2 -> Ending RGB Color
s -> Gradient step

আউটপুট উদাহরণ

(00,00,00,255,255,255,.5)

ফলাফল স্বরূপ

[
  [255, 255, 255]
  [127, 127, 127]
  [0, 0, 0]
]

নিজে চেষ্টা করে দেখুন: https://groovyconsole.appspot.com/script/5184465357766656

হেক্স রূপান্তর সহ অন্তর্ভুক্ত

অনুমান করুন আমিও একধরনের প্রতারণা করছি ... হেক্স ব্যবহার করে স্ক্রিপ্টটি এখানে:

হেক্স রূপান্তর সহ নতুন কোড:

​    def g(r,g,b,r2,g2,b2,s){
      (0..(1.0/s)).collect {
        c ->
        String.format("%X", ((int)(r*s*c+r2*(1-s*c)))) +  String.format("%X", ((int)(g*s*c+g2*(1-s*c)))) + "" +  String.format("%X", ((int)(b*s*c+b2*(1-s*c))))
      }
    }

    g(126,34,166,218,26,33,0.0625)​

গল্ফ করা হলে 188 টি অক্ষর:

def g(r,g,b,r2,g2,b2,s){(0..(1.0/s)).collect {c->String.format("%X",((int)(r*s*c+r2*(1-s*c))))+String.format("%X",((int)(g*s*c+g2*(1-s*c))))+String.format("%X",((int)(b*s*c+b2*(1-s*c))))}}

000000 এফএফএফএফএফএফ এবং 16 (ব্যবহারকারীর নাম দৈর্ঘ্য) এর আউটপুট

g(00,00,00,255,255,255,0.0625).each{println it}​

1/16 ধাপ সহ একরঙা গ্রেডিয়েন্ট


ত্রুটি ... কিছুটা অবৈধ, মূল সংস্করণ "(0 .. (1.0 / s)) ব্যবহৃত", "(1 .. (1.0 / s))" হওয়া উচিত ছিল।
ম্যাজিক অক্টোপাস উর্ন

1
হাই @ কারাসোকম্পুটিং ... ইনপুটটি দুটি হেক্সাডেসিমাল স্ট্রিং এবং একটি পূর্ণসংখ্যার হওয়া দরকার ... গ্রোভি এই ফ্যাশনটিতে ইনপুট নিতে পারে কিনা তা আমি নিশ্চিত নই, তবে আপনি সংক্ষিপ্তভাবে পেরেকও লাগেন নি ... আপনি কি দয়া করে আপডেট করতে পারবেন? চ্যালেঞ্জ বিভাগে উল্লিখিত ইনপুটটির উপর ভিত্তি করে আপনার কোড?
ওয়েলওয়েস্ট

{s-> s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}}('FFFFFF') [255,255,255] এর ফলাফলগুলি যদি আপনি সত্যিই আমাকে চান তবে আমি সেই রূপান্তরটি ব্যবহার করে আমার কোডটিতে 62 বাইট যুক্ত করতে পারি।
ম্যাজিক অক্টোপাস উরন

1
ওয়ালি, আমি একটি আপডেট সংস্করণ যুক্ত করেছি এবং আমার চূড়ান্ত বাইট গণনাটি রূপরেখার সাথে অন্তর্ভুক্ত করে 199 এ উন্নীত করেছি।
ম্যাজিক অক্টোপাস উরন

1

আর, 68 বাইট

একটি অন্তর্নির্মিত ফাংশন রয়েছে যা দুটি রঙকে বিভক্ত করে:

a=scan(,'')
colorRampPalette(paste0("#",a[1:2]))(as.numeric(a[3])+2)

ইনপুট:

d9e7a5
3ef951
15

আউটপুট: মান সহ একটি ভেক্টর

"#D9E7A5" "#CFE89F" "#C5E99A" "#BBEA95" "#B2EB90" "#A8EC8A" "#9EED85" "#95EE80"
"#8BF07B" "#81F175" "#78F270" "#6EF36B" "#64F466" "#5BF560" "#51F65B" "#47F756"
"#3EF951"

আর এ বর্ণের বর্ণের জন্য একটি হ্যাশ প্রতীক প্রয়োজন।

রঙিন র‌্যাম্প

একটি ফাংশন মত কিছু প্লট করা যাক:

filled.contour(outer(1:20, 1:20, function(x,y) sin(sqrt(x*y)/3)),
    col = colorRampPalette(paste0("#",a[1:2]))(as.numeric(a[3])+2))

পাপ (SQRT (এক্স * Y) / 3)


দুর্দান্ত উত্তর, তবে সংক্ষিপ্ত বিবরণটি আপনার পিপিসিজি ব্যবহারকারীর নাম হিসাবে যতগুলি পদক্ষেপ ব্যবহার করতে বলেছে, যা স্থান গণনা করে ১৫ টি করে ... আপনি কি দয়া করে আপনার উত্তরটির ভিত্তিতে আপডেট করতে পারবেন FF3762 F08800 15?
ওয়েলওয়েস্ট

@ ওয়েলওয়েস্ট দুঃখিত, আমি সেই অংশটি হারিয়ে ফেলেছি যেখানে একজন দুটি রঙ পেয়ে থাকে এবং নিজের ব্যবহারকারীর দৈর্ঘ্য গণনা করে। এখন উত্তরটি সম্পূর্ণরূপে স্পেসিফিকেশনের সাথে মেনে চলতে হবে!
Andreï Kostyrka

1

সি, 175 169 168 বাইট

i;j;x[6];f(a,b,n)char*a,*b;{char*f="%2x%2x%02x";for(n++;i<=n;i++,puts(""))for(j=sscanf(a,f,x,x+1,x+2)-sscanf(b,f,x+3,x+4,x+5);j++<printf(f+6,x[j]+(x[j+3]-x[j])*i/n););}

Ungolfed:

int i, j;
int x[3], y[3];

f(char *a, char *b, int n) {
  sscanf(a, "%2x%2x%2x", &x[0], &x[1], &x[2]);
  sscanf(b, "%2x%2x%2x", &y[0], &y[1], &y[2]);

  for(i = 0, n++; i <= n; i++) {
    for(j = 0; j < 3; j++)
      printf("%02x", x[j] + (y[j] - x[j]) * i / n);
    puts("");
  }
}

5 টি বাইট শেভ করার জন্য @ এইচ-ওয়াল্টার্সকে ধন্যবাদ!


আমাকে মনে করিয়ে দিন putsসিনট্যাক্স আবার কী করে?
ওয়েলওয়েস্ট

এটি এর মতো printf(), তবে কোনও ফর্ম্যাটিং করে না, পরিবর্তে এটি প্রদত্ত স্ট্রিংটি যেমন রয়েছে তেমনভাবে মুদ্রণ করে এবং এটি একটি নতুন লাইন যুক্ত করে।
জি। স্লাইপেন

আহ, সুতরাং গল্ফ করার কোনও উপায় নেই ... সি এর মতো কিছুটা নিষিদ্ধ, তাই না?
ওয়েলওয়েস্ট

"সুতরাং গল্ফ করার কোনও উপায় নেই" ... অবশ্যই আছে! puts("")লুপের জন্য প্রথমটির তৃতীয় অংশে যান ( পূর্বে ;হওয়ার পরে ,) ... +0 বাইট। তবে এটি আপনাকে দ্বিতীয় লুপ ... -2 বাইটের পরে কোঁকড়া ধনুর্বন্ধনী অপসারণ করতে দেয়। 3 টি থেকে 3 সরিয়ে j<3, এবং এটি আপনার printfবিবৃতি দিয়ে প্রতিস্থাপন করে আপনি আরও 1 বাইট সংরক্ষণ করতে পারেন (এটি চটজলদি ... প্রিন্টফ কেবল 2 ফেরত আসবে, তবে এটি তৃতীয়বারের জন্য মূল্যায়ন করতে হবে)।
এইচ ওয়াল্টারস

... আপনার স্কান্সফ রিটার্ন মানগুলি একে অপরের কাছ থেকে বিয়োগ করে (যার ফলে 0 হয়) এবং আক্ষরিক পরিবর্তে এটি ব্যবহার করে আরও দুটি বাইট সংরক্ষণ করা 0যায় j=0। একবার এখানে সবকিছু ঠিকঠাক হয়ে গেলে আপনার প্রোগ্রামটি 5 বাইট সংক্ষিপ্ত হওয়া উচিত এবং কমপক্ষে 50% অপরিচিত হওয়া উচিত।
এইচ ওয়াল্টারস

1

sh + চিত্রম্যাগিক, 81 বাইট

convert -size 1x$((2+$3)) gradient:#$1-#$2 -depth 8 txt:-|grep -o "[A-F0-9]\{6\}"

ব্যবহার:

> ./grad.sh FF3762 F08800 9
FF3762
FE3F58
FC474E
FB4F45
F9573B
F86031
F66827
F5701D
F37814
F2800A
F08800

("ডিপথ 8" আপনার আইএম ডিফল্ট হিসাবে 8bpp দিয়ে সংকলন করা প্রয়োজন হয় না)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.