আপনার গুগল ওভারলর্ডদের সন্তুষ্ট করুন: "জি" লোগো আঁকুন


136

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইতিবাচক পূর্ণসংখ্যক N নেবে এবং এই * নির্মাণ অনুসারে গুগলের "জি" লোগোটির একটি N × N পিক্সেল চিত্রটি আউটপুট করে :

"জি" লোগো নির্মাণ

উদাহরণস্বরূপ, যদি এন 400 হয় তবে একটি 400 × 400 পিক্সেল লোগো সঠিক মাত্রা এবং রঙ সহ আউটপুট হওয়া উচিত:

"জি" লোগো 400x400 উদাহরণ

এটি কতটা বড় বা ছোট এন নির্বিশেষে এটিকে সঠিক দেখা উচিত। যেমন এখানে এন = 13:"জি" লোগো 13x13 উদাহরণ

আপনার কোডটি ইন্টারনেটে সংযুক্ত হওয়ার দরকার নেই। উদাহরণস্বরূপ, একটি বাহ্যিকভাবে হোস্ট করা svg স্কেলিং অনুমোদিত নয়। (আপনার কোডে এনকোড করা একটি এসজিজি স্কেল করা ভাল হবে would)

অ্যান্টি-এলিয়জিং ব্যবহার করা যেতে পারে বা নাও হতে পারে। এটা আপনার উপর নির্ভর করছে.

লক্ষ্য করুন যে "G" এর অনুভূমিক দণ্ডটি চিত্রের ডান প্রান্তে সমস্ত পথ প্রসারিত করে না। চেনাশোনটি কেটে ফেলার আগে চেনাশোনাটি সাধারণত ডান প্রান্তে সাধারণত অভ্যন্তরের দিকে বক্ররেখা হয়।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


* এই চ্যালেঞ্জের জন্য লোগো নির্মাণ সহজ করা হয়েছে। সঠিক নির্মাণটি এখানে এবং এখানে দেখা যায় ।


1
ন্যূনতম এন আছে? কোনও 1x1 চিত্র সমাধানটি যত ভালই হোক তা বিবেচনা না করেই সম্ভবত অজ্ঞাতনীয় আউটপুট তৈরি করবে।
jpmc26

@ jpmc26 এন একটি ধনাত্মক পূর্ণসংখ্যা, সুতরাং সর্বনিম্ন 1. অবশ্যই অবশ্যই 1x1 চিত্রটি সনাক্তযোগ্য হতে পারে না, তবে "এটি সঠিক হওয়া উচিত" অর্থ, উদাহরণস্বরূপ, কোনও কালো চিত্র এমনকি সেই স্কেলটিতেও তা বোঝায় না।
ক্যালভিনের

4
1x1 চিত্রের প্রত্যাশিত আউটপুটটি কী, তবে? ছবিতে রঙের কোনও একক পিক্সেল? একটি সাদা ছবি? 2x2 সম্পর্কে কি? ছবিতে এখনও আকারের পিক্সেলের চেয়ে আরও বেশি রঙ রয়েছে। যদি কোনও চিত্র এই আকারগুলিতে অগ্রহণযোগ্য হয় তবে, চ্যালেঞ্জটি কী এবং কোনটি গ্রহণযোগ্য নয় তা সংজ্ঞায়িত করা উচিত, যেহেতু আপনি সঠিক চিত্রের নিকটে এসেও কোনও চিত্র তৈরি করতে পারবেন না , তাই না? (যদি এটি আমার চ্যালেঞ্জ হত তবে আমি এটিকে সহজ রাখতে তাদের বাদ দিয়েছি, তবে আপনার সিদ্ধান্তটিও You আপনাকে নতুন যাচাইকরণের সাথে বিদ্যমান উত্তরগুলি বাদ দিবেন না তাও আপনাকে যাচাই করতে হবে, আমি মনে করি))
জেএমসি 26 ই

@ jpmc26 নং 1x1 বা অন্যান্য ছোট চিত্রটি সঠিক দেখাচ্ছে কিনা তা জানাতে লোকেরা সাধারণ জ্ঞান ব্যবহার করতে পারে।
ক্যালভিনের

আমাদের কী কোনও প্রাক-তৈরি ডাউনলোড করার .svgএবং এটিকে আমাদের দ্রবণে এনকোড করার অনুমতি দেওয়া হয়েছে , বা আমাদের কি এটি প্রাথমিকভাবে তৈরি করতে হবে?
জুনিয়ররুবিস্ট

উত্তর:


55

গণিত, 229 226 225 224 221 206 169 বাইট

ধন্যবাদ 1 মার্টিনএেন্ডার 1 বাইটের জন্য, @ শিপহার্স্ট 37 বাইটের জন্য!

Graphics[{RGBColor@{"#EA4335","#FBBC05","#34A853","#4285F4"}[[#]],{0,-1}~Cuboid~{√24,1},Annulus[0{,},{3,5},{(2#-9)Pi/4,ArcCsc@5}]}&~Array~4,ImageSize->#,PlotRange->5]&

কী মজার চ্যালেঞ্জ!

ব্যাখ্যা

...&~Array~4

1 থেকে 4 অবধি ...

RGBColor@{"#EA4335","#FBBC05","#34A853","#4285F4"}[[#]]

রঙের হেক্স কোডগুলিকে RGBColorঅবজেক্টে রূপান্তর করুন , যাতে সেগুলি গুগল লোগো গ্রাফিকগুলিতে প্রয়োগ করা যায়। রঙ প্যালেটটি <input>th রঙে পরিবর্তন করুন ।

{0,-1}~Cuboid~{√24,1}

একটি ভরাট আয়তক্ষেত্র তৈরি করুন (2 ডি কিউবয়েড), যার তির্যক কোণগুলি (0, -1) এবং (স্কয়ার্ট (24), 1)।

Annulus[0{,},{3,5},{(2#-9)Pi/4,ArcCsc@5}]}

Annulusঅভ্যন্তরীণ ব্যাসার্ধ 3 এবং বাহ্যিক ব্যাসার্ধের সাথে উত্সকে কেন্দ্র করে চারটি ভরাট কোয়ার্টার- উত্পন্ন করুন past অতীত আঁকবেন না ArcCsc@5(যেখানে নীল বিভাগটি শেষ হয়)।

Graphics[ ... , ImageSize->#,PlotRange->5]

X = -5 থেকে x = 5 (প্যাডিং সরিয়ে দেয়) আকার এন x এন দিয়ে একটি গ্রাফিক তৈরি করুন।

আউটপুট

এন = 10

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

এন = 100

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

এন = 200

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

এন = 10000 (সম্পূর্ণ রেজোলিউশনের জন্য ছবিতে ক্লিক করুন)

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


44

সি (উইন্ডোজ), 311 বাইট

#include <windows.h>
main(int c,char**v){float x,y,a,b,N=atoi(*++v);HDC d=GetDC(GetDesktopWindow());for(x=0;x<N;x+=1)for(y=0;y<N;y+=1){a=2*x/N-1;b=2*y/N-1;SetPixel(d,x,y,(a>0&&a<.8&&b*b<.04)?0xF48542:(a*a+b*b>1||a*a+b*b<.36)?0xFFFFFF:(a*a<b*b)?((b<0)?3490794:5482548):(a<0)?376059:(b<-.2)?0xFFFFFF:0xF48542);}}

কমান্ড লাইন আর্গুমেন্ট হিসাবে "এন" লাগে এবং সরাসরি স্ক্রিনে আঁকেন।

আন golfed:

#include <windows.h>
// atoi() will work fine without any #include file!
// -> don't #include it!

main(int c,char **v)
{
    float x,y,a,b,N=atoi(*++v);

    /* Access the screen for directly drawing! */
    HDC d=GetDC(GetDesktopWindow());

    /* Iterate over the pixels */
    for(x=0;x<N;x+=1)
        for(y=0;y<N;y+=1)
    {
        /* Convert x,y into "relative" coordinates: The image
         * is 2.0x2.0 in size with (0.0,0.0) in the center */
        a=2*x/N-1;
        b=2*y/N-1;

        /* Draw each pixel */
        SetPixel(d,x,y,
            (a>0 && a<.8 && b*b<.04)?0xF48542: /* The bar of the "G" in the middle */
            (a*a+b*b>1 || a*a+b*b<.36)?0xFFFFFF: /* Not on one of the circle segments */
            (a*a<b*b)?((b<0)?0x3543EA:0x53A834): /* Top and bottom segments */
            (a<0)?0x5BCFB: /* Left segment */
            (b<-.2)?0xFFFFFF:0xF48542); /* Right segment: A bit more complicated... */
    }

    /* Note: Under good old Windows 3.x we would require to
     * call "ReleaseDC" here; otherwise the system would
     * "crash" (however the image would have been drawn!)
     * No need for this in modern Windows versions! */
}

আপনি রাখতে পারেন 0xF48542এবং 0xFFFFFFপূর্ণসংখ্যার মধ্যে।
ইয়াতসি

আপনি কোন সংকলক / লিঙ্কার ব্যবহার করেছেন?
মিংডব্লিউয়ের

@vsz সম্ভবত, ভিজ্যুয়াল স্টুডিওর সংকলক।
Kroltan

@vsz আমি এটি মিশিং-এ সংকলন করতে পারি gcc g.c -lgdi32
jingyu9575

2
-1>>8এছাড়াও কাজ করতে পারে
মার্ক কে

33

পাইথন 2, 244 220 বাইট

[-1,1] plane 2 বিমানে মার্টিন রোজেনোর রূপান্তর ব্যবহার এবং অপসারণ 0.বা বন্ধনীগুলির মতো ছোটখাটো গল্ফিং

N=input()
R=[2*z/(N-1.)-1for z in range(N)]
B="\xFF"*3,"B\x85\xF4"
print"P6 %d %d 255 "%(N,N)+"".join([B[0<x<.8and.04>y*y],["4\xA8S",B[y>-.2],"\xFB\xBC\x05","\xEAC5"][(x>y)+2*(-x>y)]][.36<x*x+y*y<1]for y in R for x in R)

ব্যাখ্যা:

N=input()
R=[2*z/(N-1.)-1for z in range(N)]
#N*N points on the [-1,1]^2 plane

B="\xFF"*3,"B\x85\xF4"
#white and blue

print"P6 %d %d 255 "%(N,N) + "".join(
#binary PPM header
 [
  B[0<x<.8and.04>y*y],
  #blue rectangle part of the G, or white
  ["4\xA8S",B[y>-.2],"\xFB\xBC\x05","\xEAC5"][(x>y)+2*(-x>y)]
  #[green, [white,blue], yellow, red]-arcs with 4 way selector
 ]
 [.36<x*x+y*y<1]
 #radius checker, outside=0 blue rectangle or white, inside=1 colored arcs
  for y in R for x in R
  #for all points
 )

বাইনারি পিপিএম হিসাবে আউটপুট, ব্যবহার:

python golf_google.py > google.ppm

উদাহরণ

  • 13

13

  • 50

50

  • 100

100

  • 1337

1337

পূর্ববর্তী 244 বাইট সমাধান

N=input()
S="P6 %d %d 255 "%(N,N)
R=range(N)
B=["\xFF"*3,"B\x85\xF4"]
for Y in R:
 for X in R:y=Y-N/2;x=X-N/2;S+=[B[0<x<0.4*N and abs(y)<0.1*N],["4\xA8S",B[y>-0.1*N],"\xFB\xBC\x05","\xEAC5"][(x>y)+2*(-x>y)]][0.3*N<(y**2+x**2)**.5<0.5*N]
print S

যদি অন্যথায় বিলোপের আগে অগল্ফড বিটা সংস্করণ:

N=input()
print"P3 %d %d 255 "%(N,N)
R=range
M=N/2
r="255 0 0 "
g="0 255 0 "
b="0 0 255 "
c="255 255 0 "
w="255 255 255 "
for Y in R(N):
 for X in R(N):
  y=Y-M
  x=X-M
  d=(y**2+x**2)**.5 #radius
  if 0.3*N<d<0.5*N: #inside circle
   if x>y:          #diagonal cut bottom-left to top right
    if -x>y:        #other diagonal cut
     print r
    else:
     if y>-0.1*N:print b #leave some whitespace at blue
     else: print w
   else:
     if -x>y:
      print c
     else:
      print g
  else:
   if 0<x<0.4*N and -0.1*N<y<0.1*N: #the straight part of G
    print b
   else:
    print w

হুম, নিশ্চিত কিনা 1forকাজ করে।
ইয়তসি

1
@ টুকুএক্সএক্স এটি করে
mbomb007

আপনি কি নমুনা আউটপুট অন্তর্ভুক্ত করতে পারেন?
সাইয়েস

@ 1forকুইস নমুনা আউটপুট যোগ করার জন্য @ টুক্কাএক্স ধন্যবাদ জানিয়েছে
কার্ল ন্যাপফ

আপনার কোডের আকারে যে 0.x.x
দশমিকগুলি রয়েছে সেটিকে

27

জাভাস্ক্রিপ্ট (ES6), 408 ... 321 317 বাইট

ক্যানভাস উপাদানটির জন্য জাভাস্ক্রিপ্ট + 24 13 বাইটের 384 383 371 367 359 327 316 308 304 বাইট

(f=d.style).width=f.height=(d.width=d.height=n=prompt(f.background='#FFF'))+'px';q=n/2;with(d.getContext`2d`)['#EA4335','#FBBC05','#34A853','#4285F4'].map((c,i)=>beginPath(lineWidth=y=n/5,strokeStyle=fillStyle=c,arc(q,q,z=q-y/2,(j=2*i+1)*(r=-.7854),(j+(i-3?2:1.256))*r,1),stroke(),fillRect(q,z,q*.98,y)))
<canvas id=d>

ঘড়ির কাঁটার বিপরীতে আঁকতে 1 বাইট সংরক্ষণ করা হয়েছে।
কনর ও ব্রায়েনকে 11 টি বাইটস এইচটিএমএলে সংরক্ষণ করা হয়েছে। প্রিনজর্নকে ব্লক ধন্যবাদ
ব্যবহার করে 12 বাইট সংরক্ষণ করা হয়েছে with
4 টি বাইটের আরও ভাল ব্যবহারের সাথে সংরক্ষণ করা হয়েছে z=q-y/2
8 বাইট ব্যবহার দ্বারা সংরক্ষিত parentNodeএবং backgroundঅ্যালেক্সিস টিলার ধন্যবাদ।
32 বাইটগুলি নীল চাপ / বারের আরও সঠিক অঙ্কন ব্যবহার করে সংরক্ষণ করা হয়েছে যাতে এর আর একটি অংশ আর মুছতে হবে না।
11 টি বাইটস তার প্যারেন্ট নোডের পরিবর্তে ক্যানভাস সিএসএস স্থাপন করে সংরক্ষণ করেছে তেজাস কালে ধন্যবাদ।
8 টি বাইট সংরক্ষণ করেছে withএবং mapএকটি একক বিবৃতি দিয়ে ('2d'), এর n/5পরিবর্তে .2*nএবং এর মধ্যে ব্যাকগ্রাউন্ডটি আরম্ভ করার পরিবর্তে `2d` করেছে prompt(...)। দ্বারা
প্রতিস্থাপন 4 বাইট সংরক্ষণ Math.PI/4করা.7854 যা রবআউকে যথেষ্ট নির্ভুলতার জন্য ধন্যবাদ বলে মনে হচ্ছে।


ব্যাখ্যা:

(f=d.style).width=f.height=(d.width=d.height=n=prompt(f.background='#FFF'))+'px';q=n/2 

ক্যানভাসের মাত্রাটি ব্যবহারকারী ইনপুট দিয়ে শুরু করা হয়েছে এবং পটভূমিটি সাদা সেট করা আছে। qআরম্ভ করা হয়।

with(d.getContext`2d`)['#EA4335','#FBBC05','#34A853','#4285F4'].map((c,i)=>beginPath(lineWidth=y=n/5,strokeStyle=fillStyle=c,arc(q,q,z=q-y/2,(j=2*i+1)*(r=-.7854),(j+(i-3?2:1.256))*r,1),stroke(),fillRect(q,z,q*.98,y)))

প্রতিটি বর্ণের জন্য সর্বশেষ (নীল) একটির কিছু সামঞ্জস্য সহ বৃত্তের অংশটি আঁকুন। বারটি একই বর্ণের জন্য একই স্থানে একই রঙের জন্য আঁকা যাতে কেবল সর্বশেষ (নীল) একটি দৃশ্যমান।


2
<canvas id=d></canvas>কাজ করা উচিত, এবং <canvas id=d>কাজ করতে পারে।
কনর ও'ব্রায়ান

1
ব্যাকগ্রাউন্ডের সাথে ব্যাকগ্রাউন্ড কালার প্রতিস্থাপন করে আপনি আরও 5 টি অক্ষর হারাতে পারেন।
অ্যালেক্সিস টাইলার

1
D.penderElement এর পরিবর্তে d.penderNode ব্যবহার করুন
অ্যালেক্সিস টাইলার

1
আপনি কেন প্যারেন্ট নোডের মাত্রা নির্ধারণ করছেন। শুধু d.styleকাজ করে। যা অনুমতি দেয়(f = d.style).width = f.height = n = prompt() + 'px';
তেজস কালে

1
আপনি 2 বাইট শেভ করার .785398পরিবর্তে ব্যবহার করতে পারেন Math.PI/4(বা আরও কম নির্ভুলতা ঠিক থাকলে আরও বেশি।
রবআউ

25

বিবিসি বেসিক, 177 বাইট

Http://www.bbcbasic.co.uk/bbcwin/download.html এ দোভাষী ডাউনলোড করুন

I.n
V.19;16,234,67,53,275;64272;1468;531;16,43060;83,787;16,34114;7668;n;n;
F.t=1TO8.256S.1/n
a=t*PI/4y=n*SIN(a)x=n*COS(a)V.18;t-1>>1,25,85,x*.6;y*.6;25,85,x;y;
N.PLOT101,0,-n/5

বিবিসি বেসিক 2 ইউনিট = 1 পিক্সেল ব্যবহার করে, তাই আমরা nকেন্দ্রে একটি জি ব্যাসার্ধ ইউনিট (= n / 2 পিক্সেল) প্লট করি n,n

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

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

Ungolfed

INPUTn
REM reprogram pallette
VDU19;16,&EA,&43,&35,275;16,&FB,&BC,5,531;16,&34,&A8,&53,787;16,&42,&85,&F4
ORIGINn,n               :REM move origin to position n,n on screen.
FORt=1TO8.256STEP1/n    :REM from 1/8 turn to 8.56 turns in small steps
  GCOL0,t-1>>1          :REM set the colours, 0=red, 1=yellow, 2=green, 3=blue
  a=t*PI/4              :REM convert angle from 1/8 turns into radians
  y=n*SIN(a)            :REM find position of outer end of ray
  x=n*COS(a)            :REM plot to coordinates of inner and outer ends of ray
  PLOT85,x*.6,y*.6      :REM PLOT85 actually draws a triangle between the specified point              
  PLOT85,x,y            :REM and the last two points visited.
NEXT                    
PLOT101,0,-n/5          :REM once all is over, cursor is at top right corner of blue rectangle. Draw a rectangle to the bottom left corner as specified.

চমৎকার কাজ! আপনার উত্তরটি দেখার আগে আমি অনুরূপ পদ্ধতি ব্যবহার করে লোগোতে খনি করেছি। আপনি আমাকে প্রায় 81 বাইট দ্বারা পিটিয়েছেন।
গিটারপিকারটি

21

এইচটিএমএল / জেএস, 680 624 বাইট

624 বাইট পেতে, শেষটি সরিয়ে ফেলুন ;, এইচটিএমএল যেভাবে আমদানি করে তার জন্য নীচের স্নিপেটের জন্য এটি প্রয়োজন। এছাড়াও, ফায়ারফক্স image-rendering: pixelatedতার -moz-crisp-edgesপরিবর্তে সমর্থন করে না এবং এটি প্রয়োজন বলে মনে হচ্ছে (ধন্যবাদ @ ওল্ডারেমিক্স !) যা একটি ফায়ারফক্স সমাধান +7 করে তবে এটি প্রত্যাশার মতো ক্রোমে কাজ করে।

অনুরোধ করতে জাভাস্ক্রিপ্ট Nএবং <style>উপাদানগুলিকে অবস্থান / রঙ করতে একটি ব্লক ব্যবহার করে। ক্যানভাসে শৈলী প্রয়োগ করার পরিবর্তে মৌলিক এইচটিএমএল উপাদানগুলি ব্যবহার করে (যা এটি প্রদর্শিত হয়, এটি একটি খুব ছোট পদ্ধতির ছিল!)। এটি data:কেবল রঙিন উপাদানগুলির পরিবর্তে একটি ইউআরআই পটভূমি চিত্র ব্যবহার করে একটি পুনঃনির্মাণ পদ্ধতি । এই নতুনটি যদি কম ব্রাউজারগুলিতে কাজ করে তবে আমি নীচের পূর্ববর্তী পদ্ধতিটি রেখেছি।

আমি ভেবেছিলাম এটি শেষ হওয়ার চেয়ে অনেক ছোট হতে চলেছে তবে এটি একটি আকর্ষণীয় অনুশীলন ছিল!

<body id=x onload=x.style.fontSize=prompt()+'px'><u><a></a><b></b><i></i><s><style>u,a,b,i,s{position:relative;display:block}b,i,s{position:absolute}a,u{width:1em;height:1em}a,b{border-radius:50%}a{image-rendering:pixelated;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAFklEQVQI12N45Wzq1PqF4fceVpMVwQAsHQYJ1N3MAQAAAABJRU5ErkJggg)no-repeat;background-size:100%;transform:rotate(45deg)}b{top:.2em;left:.2em;width:.6em;height:.6em;background:#fff}i{border-top:.4em solid transparent;border-right:.4em solid#fff;top:0;right:0}s{top:.4em;right:.1em;width:.4em;height:.2em;background:#4285f4;

পূর্ববর্তী সংস্করণ:

<body id=x onload=x.style.fontSize=prompt()+'px'><a b><b l style=padding-left:.5em></b><b y></b><b g></b></a><i style=height:.4em></i><i style="background:#ea4335;border-radius:0 1em 0 0;transform-origin:0%100%;transform:rotate(-45deg)"></i><i b z style=top:.2em;left:.2em;width:.6em;height:.6em></i><i l z style="top:.4em;height:.2em;border-radius:0 2%10%0/0 50%50%0;width:.4em"><style>*{position:relative;background:#fff}a,b,i{display:block;float:left;width:.5em;height:.5em}a{height:1em;width:1em;transform:rotate(45deg);overflow:hidden}i{position:absolute;top:0;left:.5em}[b]{border-radius:50%}[g]{background:#34a853}[l]{background:#4285f4}[y]{background:#fbbc05}[z]{z-index:1


1
বিশ্বাসঘাতক! (স্রেফ ঠাট্টা করা, দুর্দান্ত এক ;-))
দাদা

আমার ব্রাউজারে পুরানো সংস্করণ রঙের মধ্যে সামান্য ফাঁক দেখায় এবং নতুন সংস্করণ রঙের মধ্যে একটি গ্রেডিয়েন্ট ট্রানজিশন দেয় (ফায়ারফক্স 49.0.1 32-বিট উইন 10 এক্স 64-এ)
alldayremix

1
@ ওল্ডায়েরেমিক্স হুমম, দেখতে ফায়ারফক্সের image-rendering: -moz-crisp-edgesপরিবর্তে থাকা দরকার pixelated। যে প্রভাব একটি নোট যোগ করবে। আমি বেশ গ্রেডিয়েন্ট স্টাইল পছন্দ করি! :)
ডম হেস্টিংস

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

20

ইমেজম্যাগিক (তবে সত্যই পোস্টস্ক্রিপ্ট), 268 255 249 বাইট সহ বাশ করুন

C=' setrgbcolor 2.5 2.5 2'
A=' arc stroke '
echo "%!PS
122.4 dup scale
.92 .26 .21$C 45 136$A.98 .74 .02$C 135 226$A.20 .66 .33$C 225 316$A.26 .52 .96$C 315 371$A
4.95 2.5 moveto
2.5 2.5 lineto
stroke"|convert - -crop 612x612+0+180 -scale "$1" o.png

অপসারণের জন্য স্কেলিং দ্বিগুণ করলেন setlinewidth, এর সাথে একটি স্কেল ফ্যাক্টর প্রতিস্থাপন dupকরলেন এবং Aভেরিয়েবলের সাথে একটি স্থান একীভূত করতে পারেন ( Cকারণ $C45এটি "ভেরিয়েবল C45" হিসাবে পার্স করা যায় না )।

এই সম্পাদনাগুলির পরামর্শ দেওয়ার জন্য জুজাকে ধন্যবাদ!

ওল্ড স্কেল, 255 বাইট

C=' setrgbcolor 5 5 4'
A=' arc stroke'
echo "%!PS
61.2 61.2 scale
2 setlinewidth
.92 .26 .21$C 45 136$A
.98 .74 .02$C 135 226$A
.20 .66 .33$C 225 316$A
.26 .52 .96$C 315 371$A
9.9 5 moveto
5 5 lineto
stroke"|convert - -crop 612x612+0+180 -scale "$1" o.png

লাগে এন নির্জন যুক্তি এবং আউটপুট o.png হিসেবে।

ওল্ড স্কেলের জন্য অগল্ফড পোস্টস্ক্রিপ্ট

%!PS
% Scale so default page has width of 10
61.2 61.2 scale
2 setlinewidth
% Red arc
.92 .26 .21 setrgbcolor
5 5 4 45 136 arc
stroke
% Yellow arc
.98 .74 .02 setrgbcolor
5 5 4 135 226 arc
stroke
% Green arc
.20 .66 .33 setrgbcolor
5 5 4 225 316 arc
stroke
% Blue arc
.26 .52 .96 setrgbcolor
5 5 4 315 371 arc
% Blue in-tick
9.9 5 moveto
5 5 lineto
stroke

2
স্কেল লাইন থেকে একটি চর মুণ্ড করে আপনি এই খাটোটি তৈরি 61.2 dup scaleকরতে পারেন আপনি সি এর মতো একটি স্থানও যুক্ত করতে পারেন C=' setrgbcolor 5 5 4 'এবং 4 টি স্পেস শেভ করতে পারেন । আপনি যদি এটি অর্ধ স্কেলে ডিজাইন করেন তবে আপনি বাদ দিতে পারেন2 setlinewidth
joojaa

19

ম্যাটল্যাব, 189 184 বাইট

[X,Y]=meshgrid(-5:10/(input("")-1):5);[A,R]=cart2pol(-X,Y);I=round(A*2/pi+3);I(R<3)=1;I(X>0&Y.^2<1)=5;I(R>5)=1;image(I)
colormap([1,1,1;[234,67,53;251,188,5;52,168,83;66,133,244]/255])

ungolfed

[X,Y]=meshgrid(-5:10/(input("")-1):5);    % coordinates in 10th of image width
[A,R]=cart2pol(-X,Y);                     % angle and radius
I=round(A*2/pi+3); % map [0-45,45-135,135-225,225-315,315-360] to [1,2,3,4,5]
I(R<3)=1;                                 % clear inner pixels
I(X>0&Y.^2<1)=5;                          % draw horizontal line
I(R>5)=1;                                 % clear outer pixels
image(I)
colormap([1,1,1;[234,67,53;251,188,5;52,168,83;66,133,244]/255])

19

পার্ল 5, 486 477 476 450 ( -MImagerপতাকার জন্য +7 ) = 457 বাইট

ফাংশনাল newকল ব্যবহার করে এবং প্যারেন্স থেকে মুক্তি পেয়ে এবং চূড়ান্ত সেমিকোলনের popপরিবর্তে ব্যবহার করে আমি দাদাকে কয়েক বাইট সংরক্ষণ করেছি $ARGV[0]। এটি $n=popযেখানে প্রথম ব্যবহৃত হয়েছিল সেখানে রেখে এবং 'পরিবর্তে পার্ল 4 নেমস্পেস নোটেশন ব্যবহার করে আমি আরও কিছু সংরক্ষণ করেছি ::

$i=new Imager xsize=>$n=pop,ysize=>$n;$h=$n/2;$s=$n*.6;$f=$n*.4;$c='color';($b,$r,$y,$g,$w)=map{new Imager'Color"#$_"}qw(4285f4 ea4335 fbbc05 34a853 fff);$i->box(filled=>1,$c,$w);$i->arc($c,$$_[0],r=>$h,d1=>$$_[1],d2=>$$_[2])for[$b,315,45],[$r,225,315],[$y,135,225],[$g,45,135];$i->circle($c,$w,r=>$n*.3,filled=>1);$i->box($c,$b,ymin=>$f,ymax=>$s,xmin=>$h,xmax=>$n*.9,filled=>1);$i->polygon($c,$w,x=>[$n,$n,$s],y=>[0,$f,$f]);$i->write(file=>'g.png')

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

G.pl একটি ফাইলের জন্য নীচের কোডটি অনুলিপি করুন -MImagerপতাকাটির জন্য আমাদের অতিরিক্ত +7 বাইট প্রয়োজন , তবে এটি আমাদের কিছুটা বাইট সঞ্চয় করে কারণ আমাদের প্রয়োজন নেই use Imager;

$ perl -MImager g.pl 200

এখানে বিভিন্ন আকার আছে:

এন = 10

10px

এন = 100

100px

এন = 200

200px

সম্পূর্ণ অবহেলিত কোডটি সোজা-এগিয়ে।

use Imager;
my $n = $ARGV[0];
my $i = Imager->new( xsize => $n, ysize => $n );

my $blue   = Imager::Color->new('#4285f4');
my $red    = Imager::Color->new('#ea4335');
my $yellow = Imager::Color->new('#fbbc05');
my $green  = Imager::Color->new('#34a853');
my $white  = Imager::Color->new('white');

$i->box( filled => 1, color => 'white' );
$i->arc( color => $blue,   r => $n / 2, d1 => 315, d2 => 45 );     # b
$i->arc( color => $red,    r => $n / 2, d1 => 225, d2 => 315 );    # r
$i->arc( color => $yellow, r => $n / 2, d1 => 135, d2 => 225 );    # y
$i->arc( color => $green,  r => $n / 2, d1 => 45,  d2 => 135 );    # g
$i->circle( color => $white, r => $n * .3, filled => 1 );
$i->box(
    color  => $blue,
    ymin   => $n * .4,
    ymax   => $n * .6,
    xmin   => $n / 2,
    xmax   => $n * .9,
    filled => 1
);
$i->polygon( color => $white, x => [ $n, $n, $n * .6 ], y => [ 0, $n * .4, $n * .4 ] );
$i->write( file => 'g.png' );

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


খুব সুন্দর! গল্ফিং সম্পর্কে কেবল কয়েকটি বিশদ: popপরিবর্তে $ARGV[0]$h=($n=pop)/2পরিবর্তে $n=pop;...;$h=$n/2new Imager::Color"#$_"পরিবর্তে Imager::Color->new("#$_")। (এবং আপনি সর্বশেষ সেমিকোলনটি বাদ দিতে ভুলে গেছেন)। তবে আবার, এটি কেবলমাত্র কয়েকটি ছোট বিবরণ, আপনার কোডটি সত্যিই দুর্দান্ত! (আমি এটি করতে পারিনি! এমনকি আমি এটি সম্পর্কে জানতাম না Imager, যা বেশ সুবিধাজনক!)
দাদা

@ দাদাকে ধন্যবাদ আসলে এটি বেশ সোজা-ফরোয়ার্ড কোড। আমি লোককে SO- তে পদ্ধতি স্বরলিপিটি ব্যবহার করার বিষয়ে এতটা সংশোধন করি যে উদ্দেশ্য হিসাবে এটি করা সত্যিই কঠিন। তবে আপনি ঠিক বলেছেন। এই প্রথম আমি নিজের ইমেজার ব্যবহার করেছি। আমার মনে হয় আমি এটি পার্ল সাপ্তাহিক দেখেছি।
সিম্বাবাক

Imager'Colorপার্ল 4 নেমস্পেস ডিলিমিটারের সাহায্যে @ দাদা অন্য বাইট সংরক্ষণ করে। :)
সিম্বাব্যু

প্রকৃতপক্ষে, আমি প্রথমবার সেই সিনট্যাক্সটির জন্য ব্যবহার দেখতে পাচ্ছি! এছাড়াও, :) এর -MImagerচেয়ে সংক্ষিপ্তuse Imager;
দাদা 21

1
@Dada আমি যাহাই হউক না যে এক কাজ করতে যাচ্ছেন হয়েছিল: P এবং নির্বাণ $n=popমধ্যে newargs ডান বন্ধনী এবং একটি সেমিকোলন সংরক্ষণ
simbabque

14

পিএইচপি + এসভিজি, 300 বাইট

<svg width=<?=$_GET["w"]?> viewBox=0,0,10,10><def><path id=c d=M0,5A5,5,0,0,1,5,0V2A3,3,0,0,0,2,5 /></def><?foreach(["fbbc05"=>-45,"ea4335"=>45,"4285f4"=>168.5,"34a853"=>225]as$k=>$v)echo"<use xlink:href=#c fill=#$k transform=rotate($v,5,5) />"?><rect x=5 y=4 fill=#4285f4 width=4.9 height=2 /></svg>

স্কেলিং অংশটি হল width=<?=$_GET[w]?>

333 মানের আউটপুট

<svg width="333" viewBox="0 0 10 10">
<def><path id="c" d="M 0,5 A 5 5 0 0 1 5,0 V 2 A 3,3 0 0 0 2,5"/></def>
<use xlink:href="#c" fill="#fbbc05" transform="rotate(-45,5,5)"/><use xlink:href="#c" fill="#ea4335" transform="rotate(45,5,5)"/><use xlink:href="#c" fill="#4285f4" transform="rotate(168.5,5,5)"/><use xlink:href="#c" fill="#34a853" transform="rotate(225,5,5)"/>
<rect x="5" y="4" fill="#4285f4" width="4.9" height="2"/>
</svg>


1
অ্যাট্রিবিউটের ডাবল কোট ( ") এবং পরবর্তী বৈশিষ্ট্যগুলির মধ্যে স্থানটি গল্ফ করতে পারবেন না ? যেমন <svg width="333" viewBox="0 0 10 10">-><svg width="333"viewBox="0 0 10 10">
Bojidar Marinov

@ বোজিদারমারিনভ হ্যাঁ এটি কোর্টিক্ট এটি কয়েকটি বাইট সংরক্ষণ করে। আপনাকে ধন্যবাদ
Jurg Hülsermann

1
পথের ডেটাতে অক্ষর এবং সংখ্যাগুলির মধ্যে ফাঁকা স্থানগুলি সরিয়ে ফেলুন: M 0,5 A 5 5 0 0 1 5,0 V 2 A 3,3 0 0 0 2,5=>M0,5A5 5 0 0 1 5,0V2A3,3 0 0 0 2,5
darrylyeo

1
অবশ্যই। এছাড়াও, আপনার echoবক্তব্যটির জন্য, ইনলাইন ভেরিয়েবলগুলি মঞ্জুর করতে এবং সেমিকোলনটি অপসারণ করতে একটি ডাবল-কোটেড স্ট্রিং ব্যবহার করুন: echo'<use xlink:href="#c"fill="#'.$k.'"transform="rotate($v,5,5)"/>';=>echo"<use xlink:href='#c'fill='#$k'transform='rotate($v,5,5)'/>"
darrylyeo

2
আমি মনে করি বেশিরভাগ ডাবল উক্তিগুলি নিরাপদে সরিয়ে নেওয়া যেতে পারে। পছন্দ করুন <rect x=5 y=4 fill=#4285f4 width=4.9 height=2 />( /যদিও, এর আগে আপনার অবশ্যই একটি জায়গা দরকার ))
আর্নল্ড

14

লোগো, 258 বাইট

... কারণ আমি লোগোগুলি লোগো ব্যবহার করে তৈরি করা উচিত । এটি একটি ফাংশন হিসাবে প্রয়োগ করা হয়। আমি Calormen.com এর অনলাইন লোগো দোভাষী ব্যবহার করে এটি তৈরি করেছি

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

Golfed

to g:n
ht
make"a arctan 1/:n
seth 78.46
repeat 326.54/:a[make"h heading
pu fd:n/2 pd
setpc"#4285f4
if:h>135[setpc"#34a853]if:h>225[setpc"#fbbc05]if:h>315[setpc"#ea4335]bk:n*.2 pu bk:n*.3
rt:a]home bk:n*.1
filled"#4285f4[fd:n/5 rt 90 fd:n*.49 rt 90 fd:n/5]end

নমুনা

g 200 গুগল লোগো, আকার 200px

Ungolfed

to g :n ; Draw a G of width/height n

hideturtle ; Hide the turtle, since she's not part of the Google logo

;Determine the proper size of the angle to rotate so that the circle stays smooth within 1 px at this size
make "a arctan 1/:n 

setheading 78.46 ; Point toward the top corner of the upcoming rectangle

repeat 326.54 / :a [ ; Scoot around most of the circle, :a degrees at a time

  make"h heading ; Store heading into a variable for golfing purposes

  ; Position pen at the next stroke
  penup 
  forward :n / 2
  pendown

  ; Set the pen color depending on the heading
  setpencolor "#4285f4
  if :h > 135 [ setpencolor "#34a853]
  if :h > 225 [ setpencolor "#fbbc05]
  if :h > 315 [ setpencolor "#ea4335]

  ; Draw the stroke and return to center
  back :n * .2
  penup
  back :n * .3

  right :a ; Rotate to the next sweep heading
]

; Draw the rectangle
home
back :n * .1
filled "#4285f4 [
  forward :n/5
  right 90
  forward :n * .49 ;This is just begging to be :n / 2 but I couldn't bring myself to do it.  Proper math is more like :n * (sqrt 6) / 5
  right 90 
  forward :n / 5
]

end

12

জাভাস্ক্রিপ্ট (ES7), 285 258 254 252 251 বাইট

লোগোটির প্রস্থের জন্য প্রম্পট করে (999 অবধি) এবং এটি একটি ক্যানভাসে প্রতি পিক্সেল পিক্সেল এ আঁকে।

সম্পাদনা করুন : প্রাথমিক সংস্করণ কার্তেসিয়ান স্থানাঙ্ককে (x,y)পোলার স্থানাঙ্কে রূপান্তর করছিল (r,a), তবে আমাদের সত্যিকার অর্থে কোণটির দরকার নেই। এর মধ্যে কেবল তুলনা করা সহজ xএবং yআমরা কোন কোয়ার্টারে রয়েছি তা খুঁজে পাওয়া সহজ (এবং উল্লেখযোগ্যভাবে খাটো) ।

সম্পাদনা : ETH প্রোডাকশনগুলির জন্য 1 বাইট সংরক্ষণ করা হয়েছে।

জেএস, 251 224 220 218 217 বাইট

for(w=x=y=prompt(c=c.getContext`2d`)/2;r=(x*x+y*y)**.5,q=(x<y)+2*(x<-y),c.fillStyle='#'+'4285F434A853EA4335FBBC05FFF'.substr(x>0&r<w&y*y<w*w/25?0:r<w*.6|r>w|!q&y<0?24:q*6,6),x-->-w||y-->-(x=w);)c.fillRect(x+w,y+w,1,1)

এইচটিএমএল, 34 বাইট

<canvas id=c width=999 height=999>

ES6 সংস্করণ: 258 231 227 225 224 + 34 = 258 বাইট

স্নিপেটের জন্য প্রস্তাবিত সর্বাধিক প্রস্থ: 190।

for(w=x=y=prompt(c=c.getContext`2d`)/2;r=Math.pow(x*x+y*y,.5),q=(x<y)+2*(x<-y),c.fillStyle='#'+'4285F434A853EA4335FBBC05FFF'.substr(x>0&r<w&y*y<w*w/25?0:r<w*.6|r>w|!q&y<0?24:q*6,6),x-->-w||y-->-(x=w);)c.fillRect(x+w,y+w,1,1)
<canvas id=c width=999 height=999>


আমি জাভাস্ক্রিপ্ট অংশটি সন্ধান করলাম এবং সাথে সাথে ভাবলাম, "পৃথিবীতে কি এইগুলি <-এবং -->অপারেটরগুলি ??" আমি অনুমান করি যখন আপনি ২৪ ঘন্টা ধরে অনুমানমূলক ভাষার জন্য অনুমানমূলক অপারেটরদের সম্পর্কে ভাবতে
থাকবেন

@ এইচটিএমএল প্রোডাকশনগুলি এগুলি এইচটিএমএল ফাইলে যদি ট্যাগের -->ভিতরে রাখা হয় তবে তারা নোটপ্যাড ++ সিনট্যাক্স হাইলাইটারকে বিভ্রান্ত করছে যা এইচটিএমএল মন্তব্যের শুরু (?) হিসাবে ব্যাখ্যা করছে <script>
আর্নৌল্ড

বিশ্বাস করুন বা না রাখুন, নোটপ্যাড ++ সঠিকভাবে সাজানো (যদিও সম্পূর্ণ না)। ES6 কম্প্যাট সারণীতে খুব শেষ আইটেমটি দেখুন ।
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশনস - বাহ! আমি মনে করি এই বাক্য গঠনটির পিছনে কোনও ভাল কারণ রয়েছে তবে আমি এটি দেখতে ব্যর্থ হয়েছি। এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ.
আরনল্ড

ঠিক তাই আপনি জানেন, আমি বিশ্বাস করি এটি একটি লাইনের শুরুতে বৈধ। 123 --> commentআমার ব্রাউজার কনসোলে একটি ত্রুটি ছুড়েছে (ফায়ারফক্স 49), যদিও --> commentনা।
ইটিএইচ প্রডাকশনগুলি

10

সি #, 276 + 21 = 297 বাইট

পদ্ধতির জন্য 276 বাইট + সিস্টেমের জন্য 21 বাইট ra

using System.Drawing;n=>{var q=new Bitmap(n,n);uint W=0xFFFFFFFF,B=0xFF4285F4;for(int y=0,x=0;x<n;y=++y<n?y:x-x++){float a=2f*x/n-1,b=2f*y/n-1,c=b*b;q.SetPixel(x,y,Color.FromArgb((int)(a>0&&a<.8&&c<.04?B:a*a+c>1||a*a+c<.36?W:a*a<c?b<0?0xFFEA4335:0xFF34A853:a<0?0xFFFBBC05:b<-.2?W:B)));}return q;};

মার্টিন রোজনৌর অ্যালগরিদমের উপর ভিত্তি করে। ইমেজটি তৈরির উপায় নিয়ে কঠোর অংশটি আসার জন্য ধন্যবাদ!

using System.Drawing;             // Import System.Drawing
/*Func<int, Bitmap>*/ n =>
{
    var q = new Bitmap(n, n);     // Create nxn output bitmap
    uint W=0xFFFFFFFF,            // White, color used more than once
         B=0xFF4285F4;            // Blue, color used more than once
    for(int y = 0, x = 0; x < n;  // Loops for(x=0;x<N;x+=1) for(y=0;y<N;y+=1) combined
        y = ++y < n               // Increment y first until it reaches n
            ? y           
            : x - x++)            // Then increment x, resetting y
    {
        float a = 2f * x / n - 1, // Relative coords. Refer to Martin Rosenau's
              b = 2f * y / n - 1, // for what this magic is.
              c = b * b;          // b*b is used more than 3 times

        q.SetPixel(x, y,          // Set pixel (x,y) to the appropriate color
            Color.FromArgb((int)  // Cast uint to int :(
            ( // Here lies magic
                a > 0 && a < .8 && c < .04 
                    ? B
                    : a * a + c > 1 || a * a + c < .36
                        ? W
                        : a * a < c 
                            ? b < 0 
                                ? 0xFFEA4335
                                : 0xFF34A853
                            : a < 0
                                ? 0xFFFBBC05
                                : b < -.2
                                    ? W
                                    : B
            )));
    }
    return q;
};

26: 26

400: 400


রঙের কোডে স্বচ্ছতা অন্তর্ভুক্ত করে আপনি বাইটগুলি সংরক্ষণ করতে পারেন অর্থাত্0xFF...
TheLethalCoder

8

জেএস / সিএসএস / এইচটিএমএল (+ জেএস), 40 0 + 701 644 617 593 + 173 90 97 121 = 914 774 754 730 714 বাইট

*{position:absolute}a,h{height:100%;background:#4285F4}a,g{width:100%;border-radius:100%}h{width:30%;height:20%;top:40%}b,c,d,e,f{width:50%;height:50%}b,d,f,h{left:50%}e,f{top:50%}c{border-radius:100% 0 0;background:linear-gradient(45deg,#FBBC05 50%,#EA4335 50%)}d{border-radius:0 100% 0 0;background:linear-gradient(-45deg,transparent 50%,#EA4335 50%)}e{border-radius:0 0 0 100%;background:linear-gradient(-45deg,#34A853 50%,#FBBC05 50%)}f{border-radius:0 0 100%;background:linear-gradient(45deg,#34A853 50%,#4285F4 50%)}b,g{height:40%;background:#FFF}g{width:60%;height:60%;top:20%;left:20%}
<input oninput=with(o.style)height=width=value+"px"><o id=o><a></a><b></b><c></c><d></d><e></e><f></f><g></g><h></h></o>

রূপান্তর পরিবর্তে রৈখিক গ্রেডিয়েন্ট ব্যবহার করে। সম্পাদনা করুন: সংরক্ষিত 140 বাইটগুলি @arrylyeo ধন্যবাদ। গ্রেডিয়েন্টের পরিবর্তে অতিরিক্ত উপাদান ব্যবহার করে 20 বাইট সংরক্ষণ করা হয়েছে। 24 ডি বাইট সংরক্ষণ করেছেন @ ডিবিএসকে ধন্যবাদ। 16 হেডিকে ধন্যবাদ 16 বাইট সংরক্ষণ করা হয়েছে। পিছন থেকে সামনের দিকে, বিভিন্ন স্তরগুলি হ'ল:

  • a নীল বৃত্ত
  • b বারের ওপরের অংশটি অস্পষ্ট করার জন্য একটি সাদা আয়তক্ষেত্র
  • c লাল / হলুদ শীর্ষ বাম কোয়ার্টার
  • d লাল অষ্টান্ট শীর্ষ ডানদিকে
  • e হলুদ / সবুজ নীচে বাম চতুর্থাংশ
  • f সবুজ / নীল নীচে ডান কোয়ার্টারে
  • g ভিতরের সাদা বৃত্ত
  • h অনুভূমিক নীল দণ্ড

ID গুলির পরিবর্তে, আপনি যেমন উপাদান নাম ব্যবহার করা উচিত a, b, i, s, ইত্যাদি ব্যবহার করুন *পরিবর্তে divCSS নির্বাচনকারী জন্য।
darrylyeo

এছাড়াও, backgroundশর্টহ্যান্ড হিসাবে ব্যবহার করুন background-image
darrylyeo

@ স্টারিলিও ধন্যবাদ, এটি আমার স্কোরের জন্য একটি বড় পার্থক্য তৈরি করেছে, আমার এইচটিএমএল থেকে উদ্ধৃতিগুলি সরিয়ে দিতে ভুলেও আমাকে সাহায্য করে নি ...
নীল

হেই, সমস্যা নেই!
darrylyeo

আমি বিশ্বাস করি আপনি যৌগটি ব্যবহার করে এখানে এবং সেখানে কয়েকটি অক্ষর সংরক্ষণ করতে পারেন border-radius। যেমন c{border-radius:100% 0 0;পরিবর্তেc{border-top-left-radius:100%;
আবার DBS

8

রুবি 2.3.1, 376 359 বাইট

আরম্যাগিক রত্ন ব্যবহার করে।

d,f=$*[0].to_i,2.5;g,h,e,c=d-1,d/2,Magick::ImageList.new,Magick::Draw.new;e.new_image(d,d);c.stroke('#EA4335').fill_opacity(0).stroke_width(d*0.2).ellipse(h,h,g/f,g/f,225,315).stroke('#FBBC05').ellipse(h,h,g/f,g/f,135,225).stroke('#34A853').ellipse(h,h,g/f,g/f,45,135).stroke('#4285F4').ellipse(h,h,g/f,g/f,348.5,45).line(h,h,d*0.989,h).draw(e);e.write($*[1])

উদাহরণ

50x50

50x50

হল 250x250

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

500x500

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

1000x1000

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

ফাইল দুটি পরামিতি নেয় - প্রথমটি হচ্ছে মাত্রা এবং দ্বিতীয়টি আউটপুট হিসাবে সংরক্ষণের জন্য ফাইলের নাম।

Ungolfed

require "RMagick"

# Take the user's input for dimension
d = $*[0].to_i

e = Magick::ImageList.new
e.new_image(d, d)

c = Magick::Draw.new

# Start by setting the color to red
c.stroke('#EA4335')

  # set opacity to nothing so that we don't get extra color.
  .fill_opacity(0)

  # set thickness of line.
  .stroke_width(d*0.2)

  # #ellipse creates an ellipse taking
  # x, y of center
  # width, height,
  # arc start, arc end
  .ellipse(d / 2, d / 2, (d - 1) / 2.5, (d - 1) / 2.5, 225, 315)

  # change to yellow and draw its portion
  .stroke('#FBBC05')
  .ellipse(d / 2, d / 2, (d - 1) / 2.5, (d - 1) / 2.5, 135, 225)

  # change to green and draw its portion
  .stroke('#34A853')
  .ellipse(d / 2, d / 2, (d - 1) / 2.5, (d - 1) / 2.5, 45, 135)

  # change to blue and draw its portion
  .stroke('#4285F4')
  .ellipse(d / 2, d / 2, (d-1)/2.5, (d - 1)/2.5, 348.5, 45)

  # creates the chin for the G
  .line(d/2, d/2, d*0.99, d/2)

  # draws to the created canvas
  .draw(e)

# save out the file
# taking the filename as a variable saves a byte over
# "a.png"
e.write($*[1])

আমি প্রথমে তৈলাক্ত_পিএনজি / চুনকি_পিএনজি ব্যবহার করে এটি সমাধান করতে শুরু করেছিলাম তবে আরএম্যাগিকের তুলনায় এটি সম্ভবত খুব জটিল হবে। আর ম্যাগিকের। সেলপিস ফাংশনটি এটিকে বাতাস বানিয়েছে এবং মূল কাজটি ছিল প্রতিটি আকারের / আকারের টিউন করা।

এটি আমার প্রথম কোড গল্ফ জমা (প্রথম এসই উত্তরও) এবং আমি কেবল নিজেকে রুবির সাথে কিছুটা মধ্যবর্তী বিবেচনা করি। আপনার যদি উন্নতি / টিপসের কোনও ইনপুট থাকে তবে নির্দ্বিধায় ভাগ করে নিন!


আমি আমার পোস্ট (404 ত্রুটি) সম্পাদনা করতে পারি না তবে আমি যদি আমার গল্ফযুক্ত দ্রবণ থেকে প্রয়োজনীয় লাইনটি সরিয়ে ফেলতাম যা 17 বাইটগুলি শেভ করে এটি 359 বাইটে নামিয়ে আনত।
মহানগর

5

পাইথন 2, 378 373 বাইট

আমি সত্যিই এটি ব্যবহার করে করতে চেয়েছিলাম turtle। এর জন্য আমাকে জ্যামিতির জ্ঞানটি ধুয়ে ফেলতে হয়েছিল, চ্যালেঞ্জের বিবরণে সরবরাহ করা হয়নি এমন কোণ এবং দৈর্ঘ্য গণনা করে।

সম্পাদনা: মুছে ফেলা হয়েছে up(), যেহেতু এটি করা সবুজ এবং নীল রঙের মধ্যে সাদা রঙের সামান্য স্লাইভটিকে সরিয়ে দেয় এবং অভ্যন্তরীণ বৃত্তটি আরও ভাল দেখায়। এটি প্রোগ্রামটিকে আরও ধীর করে দেয়।

সম্পাদনা করুন: দ্রুত তৈরির 9*nসাথে প্রতিস্থাপন করা 2*nহয়েছে। আমি স্থির করেছি যে এটি এখনও একটি মসৃণ বৃত্ত তৈরি করবে।

from turtle import*
n=input()
C=circle
F=fill
K=color
q=90
w="white"
t=n*.3
lt(45)
def P(c,x,A):K(c);F(1);fd(x);lt(q);C(x,A,2*n);F(0);goto(0,0);rt(q)
for c in"#EA4335","#FBBC05","#34A853":P(c,n/2,q)
P(w,t,360)
K("#4285F4")
F(1)
fd(n/2)
lt(q)
a=11.537
C(n/2,45+a,2*n)
seth(0)
bk(.489*n)
rt(q)
fd(n/5)
lt(q)
fd(t)
F(0)
bk(t)
K(w)
F(1)
fd(.283*n)
lt(94-2*a)
C(t,a-45,2*n)
F(0)

নোট:

  1. ট্রিনকেটগুলি পাইথন 3 ব্যবহার করে, সুতরাং ইনপুটটি অবশ্যই পূর্বে প্রবেশ করতে হবে be
  2. আপনি মুছে ফেললে ট্রিনকেটগুলি খুব ধীরে ধীরে ধীরে চলে যায় , যা আমি কেবল গতির জন্য যুক্ত করেছি।nspeed(0)
  3. কোডের মন্থরতা বেশিরভাগই তৃতীয় প্যারামিটারটি কারণে circleক্রমবর্ধমান O(n)যেহেতু এটি অঙ্কন বৃত্ত রয়েছে কত পক্ষের নির্ধারণ করে খোদাই বহুভুজ।

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

অসমাপ্ত: এটি অনলাইনে চেষ্টা করুন

মজার বিষয়: Trinket একজন কোনো শব্দ বা শব্দগুচ্ছের অক্ষরগুলিকে এদিক-ওদিক করে গঠিত শব্দ বা শব্দগুচ্ছ হয় Tkinter, পাইথন এর গুই প্যাকেজ এবং ভিত্তি turtle


এছাড়াও, যদি কারও কাছে পাইথন ইনস্টল করা থাকে তবে তারা nকি আমার জন্য এটি একটি বড় মূল্য দিয়ে চালাতে পারে ? যদি এটি দেখতে সুন্দর না লাগে sqrtতবে আরও নির্ভুল হওয়ার জন্য আমাকে সেখানে কিছু লাগাতে হবে। আমি গোল করেছি হাজারে।
mbomb007


এটি কেবলমাত্র বৃহত্তর মূল্যবোধ সম্পর্কে আমি উদ্বিগ্ন।
ত্রিনিকেটের


@daHugLenny কোন ধারণা নেই। এটি মেমরির সমস্যা হতে পারে, যেহেতু 10000 এত বড় মূল্য।
mbomb007

5

পিএইচপি + জিডি, 529 449 বাইট

এটি একটি ক্যোরিয় স্ট্রিং প্যারামিটার নেয় nএবং নির্দিষ্ট আকারের লোগোটির একটি পিএনজি সংস্করণ আউটপুট করে।

<?php $n=$_GET['n'];$h=$n/2;$c='imagecolorallocate';$a='imagefilledarc';$i=imagecreatetruecolor($n,$n);$m=[$c($i,66,133,244),$c($i,52,168,83),$c($i,251,188,5),$c($i,234,67,53),$c($i,255,255,255)];imagefill($i,0,0,$m[4]);$j=-11.6;foreach([45,135,225,315]as$k=>$e){$a($i,$h,$h,$n,$n,$j,$e,$m[$k],0);$j=$e;}$a($i,$h,$h,$n*.6,$n*.6,0,0,$m[4],0);imagefilledrectangle($i,$h,$h-$n*.1,$h+$h*.98,$h+$h*.2,$m[0]);header('Content-Type:image/png');imagepng($i);

Ungolfed:

<?php

$n = $_GET['n'];$h=$n/2;
$c = 'imagecolorallocate';$a='imagefilledarc';
$i = imagecreatetruecolor($n,$n);

// Create array of colors
$m=[$c($i,66,133,244),$c($i,52,168,83),$c($i,251,188,5),$c($i,234,67,53),$c($i,255,255,255)];

// Fill background with white
imagefill($i, 0, 0, $m[4]);

// Create four arcs
$j=-11.6;
foreach([45,135,225,315]as$k=>$e){
    $a($i, $h, $h, $n, $n, $j, $e, $m[$k], 0);$j=$e;
}

// Hollow out the center and fill with white
$a($i, $h, $h, $n*.6,$n*.6,0,0,$m[4],0);

// create the horizontal bar
imagefilledrectangle($i,$h,$h-$n*.1,$h+$h*.98,$h+$h*.2,$m[0]);

// Output
header('Content-Type: image/png');
imagepng($i);

N = 13:
13x13

এন = 200:
200x200


বেশিরভাগ স্ট্রিং কনস্ট্যান্টের কোনও উক্তি প্রয়োজন। সত্য রঙের চিত্রের দরকার নেই imagecolorallocate; অঙ্কন ফাংশনগুলিতে রঙ হিসাবে কেবল 0xRRGGBB দিন। আরও কিছু গল্ফিং এবং এটি 329 বাইটে নেমে গেছে: imagefill($i=imagecreatetruecolor($n=$argv[1],$n),0,0,($m=[4359668,3450963,0xfbbc05,0xea4335,0xffffff])[4]);for($j=-11.6;$e=[45,135,225,315][$k];$j=$e)($a=imagefilledarc)($i,$h=$n/2,$h,$n,$n,$j,$e,$m[$k++],0);$a($i,$h,$h,$n*.6,$n*.6,0,0,$m[4],0);imagefilledrectangle($i,$h,$h-$n*.1,$h+$h*.98,$h+$h*.2,$m[0]);imagepng($i,"g.png");সাথে চালানো -r, কমান্ড লাইন থেকে ইনপুট নেয় এবং আউটপুটগুলিতে যায় g.png
তিতাস

দুঃখিত আমার আগের গল্ফ দুটি বাইট খুব ছোট ছিল: [$kহতে হবে [+$k। তবে imagefill($i=imagecreatetruecolor($n=$argv[1],$n),0,0,$w=2**24-1);$j=-11.6;foreach([$b=4359668,3450963,0xfbbc05,0xea4335]as$c)($a=imagefilledarc)($i,$h=$n/2,$h,$n,$n,$j,$j=45+90*$k++,$c,0);$a($i,$h,$h,$p=$n*.6,$p,0,0,$w,0);imagefilledrectangle($i,$h,$n*.4,$n*.99,$p,$b);imagepng($i,"g.png");
টাইটাস

টিটাস ধন্যবাদ আমি এই উত্তর পরে খুঁজে পেয়েছি যে আপনার প্রয়োজন নেই imagecolorallocate। আমি আপনার কোড দিয়ে আমার উত্তর আপডেট করব। কিন্তু নাম ফাইল করার জন্য আপনার কি আউটপুট দরকার? আপনি কি কেবলমাত্র ফাইলের নামটি ছেড়ে দিতে পারবেন না imagepngএবং কেবল স্টডআউটে আউটপুট রাখতে পারবেন?
কোডোস জনসন

5

জাভা, 568 বাইট

গল্ফিংয়ের জন্য সবচেয়ে শক্তিশালী ভাষা নয়, তবে এখানে আমার আন্তরিক প্রচেষ্টা:

import java.awt.image.*;class G{public static void main(String[]b)throws Exception{int n=Integer.parseInt(b[0]),x,y,a,c;BufferedImage p=new BufferedImage(n,n,BufferedImage.TYPE_INT_RGB);for(y=0;y<n;y++){for(x=0;x<n;x++){double u=(x+.5)/n-.5,v=.5-(y+.5)/n,r=Math.hypot(u,v);a=(int)(Math.atan2(v,u)*4/Math.PI);c=0xFFFFFF;if(0<u&u<.4&-.1<v&v<.1)c=0x4285F4;else if(r<.3|r>.5);else if(a==0&v<.1)c=0x4285F4;else if(a==1|a==2)c=0xEA4335;else if(a==-1|a==-2)c=0x34A853;else if(a!=0)c=0xFBBC05;p.setRGB(x,y,c);}}javax.imageio.ImageIO.write(p,"png",new java.io.File("G.png"));}}

ব্যবহার:

> javac G.java
--> Compiles to G.class
> java G 400
--> Writes G.png in current working directory

আন-গল্ফ করা সংস্করণ - মূল ধারণাটি হ'ল সমন্বিত সিস্টেমে কাজ করা u, v ∈ [−0.5, 0.5] এবং চিত্র কেন্দ্র থেকে প্রতিটি পিক্সেলের দূরত্ব এবং কোণ গণনা:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Google {

    public static void main(String[] args) throws IOException {
        int n = Integer.parseInt(args[0]);
        int[] pixels = new int[n * n];

        for (int y = 0; y < n; y++) {
            for (int x = 0; x < n; x++) {
                double u = (x + 0.5) / n - 0.5;
                double v = 0.5 - (y + 0.5) / n;
                double r = Math.hypot(u, v);
                int a = (int)(Math.atan2(v, u) * 4 / Math.PI);
                int c = 0xFFFFFF;
                if (0 < u && u < 0.4 && Math.abs(v) < 0.1)
                    c = 0x4285F4;
                else if (r < 0.3 || r > 0.5)
                    /*empty*/;
                else if (a == 0 && v < 0.1)
                    c = 0x4285F4;
                else if (a == 1 || a == 2)
                    c = 0xEA4335;
                else if (a == -1 || a == -2)
                    c = 0x34A853;
                else if (a != 0)
                    c = 0xFBBC05;
                pixels[y * n + x] = c;
            }
        }

        BufferedImage image = new BufferedImage(n, n, BufferedImage.TYPE_INT_RGB);
        image.setRGB(0, 0, n, n, pixels, 0, n);
        ImageIO.write(image, "png", new File("G.png"));
    }

}

আমার বাস্তবায়ন গণনা করে এবং কাঁচা পিক্সেল আঁকে। অঙ্কনটি করার জন্য গ্রাফিক্স 2 ডি এবং আর্ক 2 ডি এর মতো উচ্চ-স্তরের গ্রাফিক্স রুটিন ব্যবহার করে এমন একটি বিকল্প বাস্তবায়ন তৈরি করা সম্ভব , বিশেষত অ্যান্টি-এলিয়াসিং সহ।


4

যান, 379 বাইট

import ."fmt"
func f(a int)(s string){
m:=map[string]float64{"fbbc05":-45,"ea4335":45,"4285f4":168.5,"34a853":225}
for k,v:=range m{s+=Sprintf("<use xlink:href=#c fill=#%v transform=rotate(%v,5,5) />",k,v)}
return Sprintf("<svg width=%v viewBox=0,0,10,10><def><path id=c d=M0,5A5,5,0,0,1,5,0V2A3,3,0,0,0,2,5 /></def>%v<rect x=5 y=4 fill=#4285f4 width=4.9 height=2 /></svg>",a,s)}

ফাংশনটি fএকটি একক intআর্গুমেন্ট নেয় (স্কেল ফ্যাক্টর) এবং উপযুক্তভাবে স্কেল করা একটি এসভিজি চিত্র আউটপুট দেয়।

আইডিয়নে এটি অনলাইনে চেষ্টা করুন

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

<svg width=333 viewBox=0,0,10,10><def><path id=c d=M0,5A5,5,0,0,1,5,0V2A3,3,0,0,0,2,5 /></def><use xlink:href=#c fill=#34a853 transform=rotate(225,5,5) /><use xlink:href=#c fill=#fbbc05 transform=rotate(-45,5,5) /><use xlink:href=#c fill=#ea4335 transform=rotate(45,5,5) /><use xlink:href=#c fill=#4285f4 transform=rotate(168.5,5,5) /><rect x=5 y=4 fill=#4285f4 width=4.9 height=2 /></svg>

আমাদের গুগল ওভারলর্ডগুলি তাদের নিজস্ব ব্যতীত কোনও প্রোগ্রামিং ভাষায় সন্তুষ্ট করা ভুল বলে মনে হচ্ছে।


4

সিজেম, 141

ri:M.5*:K5/:T;'P3NMSMN255NM2m*[K.5-_]f.-{:X:mh:IK>0{X~0<\zT>|{IT3*<0{X~>X~W*>:Z2+{Z{X0=TW*>}4?}?}?}1?}?}%"^^G_8:nEhB%P9IW@zA"102b256b3/f=:+N*

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

চিত্রটিকে ASCII পিপিএম ফর্ম্যাটে আউটপুট করে।
ব্রাউজারে দেখতে ভালো লাগার মতো একটি ASCII- আর্ট সংস্করণের জন্য, এই কোডটি ব্যবহার করে দেখুন । এটি অ্যালগোরিদমকেও কল্পনা করতে সহায়তা করে।

ব্যাখ্যা:

ri:M                 read input, convert to int and store in M
.5*:K                multiply by 0.5 and store in K (M/2)
5/:T;                divide by 5 and store in T (M/10) and pop
'P3NMSMN255N         ppm header (N=newline, S=space)
M2m*                 generate all pixel coordinates - pairs of numbers 0..M-1
[K.5-_]              push the center (coordinates K-0.5, K-0.5)
f.-                  subtract the center from every pixel
{…}%                 map (transform) the array of coordinate pairs
  :X                 store the current pair in X
  :mh:I              calculate the hypotenuse of X (distance from the center)
                      and store in I
  K>0                if I>K (outside the big circle), push 0
  {…}                else…
    X~               dump X's coordinates (row, column)
    0<               check if the column is <0
    \zT>|            or the absolute value of the row is >T
    {…}              if true (outside the G bar)…
      IT3*<0         if I<T*3 (inside the small circle) push 0
      {…}            else (between the circles)…
        X~>          dump X and check if row>column (diagonal split)
        X~W*>:Z      also check if row>-column (other diagonal) and store in Z
                      (W=-1)
        2+           if in lower-left half, push Z+2 (2 for left, 3 for bottom)
        {…}          else (upper-right half)…
          Z{…}       if it's in the right quadrant
            X0=      get the row coordinate of X
            TW*>     compare with -T, resulting in 0 (above the bar) or 1
          4          else (top quadrant) push 4
          ?          end if
        ?            end if
      ?              end if
    1                else (inside the G bar) push 1
    ?                end if
  ?                  end if
"^^G … @zA"          push a string containing the 5 colors encoded
102b                 convert from base 102 to a big number
                      (ASCII values of chars are treated as base-102 digits)
256b                 convert to base 256, splitting into 15 bytes
3/                   split into triplets (RGB)
f=                   replace each generated number (0..4)
                      with the corresponding color triplet
:+N*                 join all the triplets, and join everything with newlines

3

জাভাস্ক্রিপ্ট (ES6) (+ এসভিজি), 293 বাইট, প্রতিযোগিতামূলক

document.write(`<svg id=o width=${prompt()} viewbox=0,0,50,50>`);m=`39,11`;`#EA433511,11
#FBBC0511,39
#34A85339,39
#4285F445,25L25,25`.replace(/(.{7})(.{5})(.*)/g,(_,s,t,u)=>m=document.write(`<path stroke=${s} d=M${m}A20,20,0,0,0,${t+u} fill=none stroke-width=10 stroke-linejoin=round />`)||t)

দুঃখের বিষয়, বৃত্তাকার লাইন যোগদান বেশ অনুরোধকৃত প্রভাব নয়, তবে এটি বেশ কাছে।


3

ফ্রিমার্কার + এইচটিএমএল / সিএসএস, 46 + 468 = 514 বাইট

এইচটিএমএল:

<div><div></div><div></div><span></span></div>

সিএসএস:

div div,div span{position:absolute}div{width:10px;height:10px;box-sizing:border-box;transform-origin:top left;position:relative;transform:scale(${n*.1})}div div{border:2px solid;border-radius:9px;border-color:transparent #4285f4 transparent transparent;transform:rotate(33.4630409671deg);transform-origin:center}div div+div{border-color:#ea4335 transparent #34a853 #fbbc05;transform:none}div span{display:block;top:4px;bottom:4px;left:5px;right:.1px;background:#4285f4}

ফ্রিমার্কার প্রসেসর ধরে নিচ্ছি nইনপুট উপস্থাপন করে একটি ভেরিয়েবল সেট দিয়ে সম্পাদন করা হয় ।

যাদু সংখ্যার ব্যাখ্যা:

সবকিছু 10x10px মোড়কের উপর ভিত্তি করে তৈরি করা হয়, তারপরে এর দ্বারা ছোট করে দেওয়া হয় n/10

  • নীল অনুভূমিক বাক্সের ডান দিকের দূরত্ব [px]: 5 - স্কয়ার্ট (5 ^ 2 - 1 ^ 2) = 0.10102051443 ( পাইথাগোরাস )
  • নীল চাপের আবর্তন [ডিগ্রি]: 45 - আরকসিন (1/5) = 33.4630409671 ( সাইন )

অবহেলিত জেএসফিডাল


সিএসএস অংশটি স্টাইলের উপাদানটিতে রাখুন এবং জাভাস্ক্রিপ্ট বা পিএইচপি ব্যবহার করুন। (পিএইচপি) এর transform:scale(n)সাথে প্রতিস্থাপন করুন transform:scale(<?=$_GET[n])?>। জাভাস্ক্রিপ্টে আপনি স্টাইল এলিমেন্টে CSS পার্ট সংযোজন করতে পারেন
জার্গ হালসারম্যান

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

নীল দণ্ডটি ডান দিকের ডান দিকের থেকে খুব বেশি দূরে যা মনে হয়
রবআউ

না, আপনি সহজেই পাশের দৈর্ঘ্য 0.5, 0.1 এবং x দিয়ে ডান ত্রিভুজটি কল্পনা করে এটি গণনা করতে পারেন, যেখানে x নীল বারের প্রস্থ বা ডানদিকে 0.5-x নির্দেশ করে den পাইথাগোরাসের উপপাদ্যটি ব্যবহার করে এক্স নির্ধারণ করা যেতে পারে (আমি যে ব্যাখ্যাগুলি যুক্ত করেছি তা দেখুন)।
সিড্রিক রেইচেনবাচ

আমি যে দুটি ব্রাউজার চেষ্টা করেছি (জেন 10 এক্স 64) - জেএসফিডাল সঠিকভাবে প্রদর্শন করে না - ক্রোম দিয়ে 54.0.2840.59 মিটার (-৪-বিট) নীল দণ্ডটি ডানদিকে খুব বেশি প্রসারিত এবং ফায়ারফক্স ৪৯.০.১ (৩২) দিয়ে -বিট) নীল বাঁকা অংশের মাঝখানে কিছুটা ফাঁক রয়েছে
alldayremix

3

হাস্কেল এর 343 অক্টেট

roman@zfs:~$ cat ppmG.hs
ppmG n='P':unlines(map show([3,n,n,255]++concat[
 case map signum[m^2-(2*x-m)^2-(2*y-m)^2,
 (10*x-5*m)^2+(10*y-5*m)^2-(3*m)^2,
 m-x-y,x-y,5*y-2*m,3*m-5*y,2*x-m]of
 1:1:1:1:_->[234,67,53]
 1:1:1:_->[251,188,5]
 [1,_,_,_,1,1,1]->[66,133,244]
 1:1:_:1:1:_->[66,133,244]
 1:1:_:_:1:_->[52,168,83]
 _->[255,255,255]|m<-[n-1],y<-[0..m],x<-[0..m]]))
roman@zfs:~$ wc ppmG.hs
 10  14 343 ppmG.hs
roman@zfs:~$ ghc ppmG.hs -e 'putStr$ppmG$42'|ppmtoxpm
ppmtoxpm: (Computing colormap...
ppmtoxpm: ...Done.  5 colors found.)

/* XPM */
static char *noname[] = {
/* width height ncolors chars_per_pixel */
"42 42 6 1",
/* colors */
"  c #4285F4",
". c #EA4335",
"X c #FBBC05",
"o c #34A853",
"O c #FFFFFF",
"+ c None",
/* pixels */
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OOOOOOOOOOOOOOO............OOOOOOOOOOOOOOO",
"OOOOOOOOOOOO..................OOOOOOOOOOOO",
"OOOOOOOOOO......................OOOOOOOOOO",
"OOOOOOOOO........................OOOOOOOOO",
"OOOOOOOO..........................OOOOOOOO",
"OOOOOOO............................OOOOOOO",
"OOOOOOXX..........................OOOOOOOO",
"OOOOOXXXX........................OOOOOOOOO",
"OOOOXXXXXX.......OOOOOOOO.......OOOOOOOOOO",
"OOOXXXXXXXX....OOOOOOOOOOOO....OOOOOOOOOOO",
"OOOXXXXXXXXX.OOOOOOOOOOOOOOOO.OOOOOOOOOOOO",
"OOXXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OOXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OOXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXOOOOOOOOOOOO                    O",
"OXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOO         O",
"OXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOO         O",
"OOXXXXXXXXXOOOOOOOOOOOOOOOOOOOO         OO",
"OOXXXXXXXXXOOOOOOOOOOOOOOOOOOOO         OO",
"OOXXXXXXXXXXOOOOOOOOOOOOOOOOOO          OO",
"OOOXXXXXXXXooOOOOOOOOOOOOOOOOoo        OOO",
"OOOXXXXXXXoooooOOOOOOOOOOOOooooo       OOO",
"OOOOXXXXXooooooooOOOOOOOOoooooooo     OOOO",
"OOOOOXXXoooooooooooooooooooooooooo   OOOOO",
"OOOOOOXoooooooooooooooooooooooooooo OOOOOO",
"OOOOOOOooooooooooooooooooooooooooooOOOOOOO",
"OOOOOOOOooooooooooooooooooooooooooOOOOOOOO",
"OOOOOOOOOooooooooooooooooooooooooOOOOOOOOO",
"OOOOOOOOOOooooooooooooooooooooooOOOOOOOOOO",
"OOOOOOOOOOOOooooooooooooooooooOOOOOOOOOOOO",
"OOOOOOOOOOOOOOOooooooooooooOOOOOOOOOOOOOOO",
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
};

ব্যাখ্যা

  • "P3" == প্লেইনেক্সট পোর্টেবল পিক্স্যাম্যাপ
  • দেন == উত্পাদন হওয়া ASCII দশমিক "\ xFF \ xFF \ xFF" ভয়ে জন্য হল UTF-8 দুর্নীতি
  • unlines == লাইনে আলাদা দশমিক
  • n == দৈর্ঘ্যে [0..m] সমমিতির জন্য মি = এন -1
  • m²- (2x-m) ²- (2y-m) ²> 0 == (xm / 2) ² + (ym / 2) ² <(এম / 2) = == আউটআর সার্কেলের ভিতরে
  • (10x-5m) ² + (10y-5m) ²- (3 মি) ²> 0 == (xm / 2) ² + (ym / 2) ²> (এম 3/10) ² == বাইরে ইনসার্ক সার্কেল
  • mxy> 0 == x + y <m == ইনপারফিট
  • xy> 0 == x> y == ইনপাইট রাইট
  • 5y-2 মি> 0 == y> এম 2/5 == নীচে জিবারটপ
  • 3y-5y> 0 == y <এম 3/5 == উপরে জিবারবোট
  • 2x-m> 0 == x> মি / 2 == ইনরাইটহাল্ফ
  • [234,67,53] == লাল
  • [251,188,5] == হলুদ
  • [52,168,83] == সবুজ
  • [66,13,244] == নীল
  • [255,255,255] == সাদা

1
আপনি যদি এগুলি সমস্ত 7-বিট ASCII দিয়ে এনকোড না করেন (তবে আপনি যে সর্বোচ্চ চরিত্রের কোডপয়েন্ট ব্যবহার করছেন তা 0x7C/ 124/ |) যা আপনি হ্যাসেলের 338 সেপেটে ব্যবহার করতে পারেন তাই করতে পারেন । তবে গত কয়েক দশক ধরে স্ট্যান্ডার্ড 8-বিট-টু-এ-বাইট ডেটা স্টোরেজে কীভাবে পরিণত হয়েছে তা বিবেচনা করে, আমি মনে করি মৃত ঘোড়াটি পিটিয়ে ছাড়াই "বাইটস" শব্দটি যথেষ্ট নির্দিষ্ট।
স্লিপ ডি থম্পসন

3

এসএএস - 590 536 521 বাইট

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

আমি পঠনযোগ্যতার একটি সামান্যতম রেখার জন্য লাইনটি ছেড়ে দিয়েছি, তবে আমি এগুলিকে ব্যতীত মোটের দিকে গণনা করছি না without

%let R=;
%let F=FILLCOLOR;
ods graphics/width=&R height=&R;
proc template;
define statgraph a;
begingraph;
annotate;
endgraph;
end;
data d;
retain FUNCTION "RECTANGLE" DISPLAY "FILL" DRAWSPACE "graphPERCENT";
length &F$8;
_="CX4285F4";
P=100/&R;
HEIGHT=P;
width=P;
do i=1to &R;
x1=i*P;
U=x1-50;
do j=1to &R;
y1=j*P;
V=y1-50;
r=euclid(U,V);
&F="";
if 30<=r<=50then if V>U then if V>-U then &F="CXEA4335";
else &F="CXFBBC05";
else if V<-U then &F="CX34A853";
else if V<10then &F=_;
if &F>'' then output;
end;
end;
x1=65;
y1=50;
width=30;
height=20;
&F=_;
output;
proc sgrender sganno=d template=a;

সম্পাদনা করুন: ম্যাক্রো ওয়ার্স, ডিফল্ট সেটিংস এবং অপারেটরদের নির্বাচনের মাধ্যমে আরও কয়েকটি বাইট বন্ধ করে দেওয়া হয়েছে।

সম্পাদনা 2: যুক্তির do-endজন্য ব্লকগুলি থেকে মুক্তি পেয়েছে if-then-elseএবং এটি এখনও কোনওভাবে কাজ করে - আমি কীভাবে তা পুরোপুরি বুঝতে পারি না। এছাড়াও, আমি euclidফাংশনটি আবিষ্কার করেছিলাম !


2

এসসিএসএস - 415 বাইট

হিসাবে ইনপুট নেয় $N: 100px;এবং <div id="logo"></div>নিশ্চিত হয় না যে এগুলি মোট হিসাবে গণনা করা উচিত ...

$d:$N*.6;$b:$d/3;#logo{width:$d;height:$d;border:$b solid;border-color:#ea4335 transparent #34a853 #fbbc05;border-radius:50%;position:relative;&:before,&:after{content:'';position:absolute;right:-$b;top:50%;border:0 solid transparent}&:before{width:$b*4;height:$d/2;border-width:0 $b $b 0;border-right-color:#4285f4;border-bottom-right-radius:50% 100%}&:after{width:$N/2;margin:-$b/2 0;border-top:$b solid #4285f4}}

জেএসফিডেলে ডেমো


1

জুসিপিক্সেল প্যাকেজ, 306 বাইট সহ হাস্কেল ll

import Codec.Picture
p=PixelRGB8
c=fromIntegral
b=p 66 133 244
w=p 255 255 255
(n%x)y|y<=x,x+y<=n=p 234 67 53|y>x,x+y<=n=p 251 188 5|y>x,x+y>n=p 52 168 83|y>=0.4*n=b|1>0=w
(n#x)y|d<=h,d>=0.3*n=n%x$y|x>=h,d<=h,abs(y-h)<=n/10=b|1>0=w where h=n/2;d=sqrt$(x-h)^2+(y-h)^2
f n=generateImage(\x y->c n#c x$c y)n n

ব্যবহারের উদাহরণ:

main = writePng "google.png" $ f 1001

এটি সম্ভবত উন্নত করা যেতে পারে। ধারণাটি হ'ল এমন কোনও ফাংশনটি পাস করার জন্য generateImageযা পিক্সেল নির্বাচন করে (সত্যই রঙ) যা পজিশনে x, y যেতে হবে। এর জন্য আমরা একটি ল্যাম্বডা ব্যবহার করি যা nপ্যারামিটার হিসাবে যুক্ত হয় এবং সেগুলি একই সাথে ভাসমানগুলিতে রূপান্তর করে। #ফাংশন মূলত পরীক্ষা যদি আমরা রিং, বার, বা তন্ন তন্ন আছেন। এটি যদি রিং হয় তবে আমরা লাঠিটি পাস করি %, যদি বারটি আমরা কেবল নীল করে ফেলি, অন্যথায় সাদা। %আমরা কোন কোয়াড্রেন্টে আছি তা যাচাই করে এবং যদি এটি নীল না হয় তবে উপযুক্ত রঙটি প্রদান করে। নীল একটি বিশেষ কেস, যেহেতু আমাদের এটি নিশ্চিত করা দরকার যে এটি প্রায় লাল রঙের সাথে আবৃত না হয়, তাই আমরা কেবল y"বার লাইনের" নীচে থাকলে নীল ফিরে আসি অন্যথায় আমরা সাদা ফিরে আসি। এটি সাধারণ ওভারভিউ


0

প্রসেসিং.পি - এনতে সংখ্যার জন্য 244 বাইট +1 বাইট

কোড দিয়ে শুরু করা যাক। এটি প্রসেসিং পরিবেশে আটকানো যায় এবং দৌড়াতে পারে ( Nবিভিন্ন আকারের জন্য পরিবর্তন করা)।

N=400
n=N/2
f=fill
a=['#34A853','#FBBC05','#EA4335','#4285F4']
def setup():
 size(N,N);noStroke()
def draw():
 for i in 1,3,5,7: f(a[i/2]);arc(n,n,N,N,i*PI/4+[0,.59][i>6],(i+2)*PI/4)
 f(205);ellipse(n,n,.6*N,.6*N);f(a[3]);rect(n,n-.1*N,.98*n,.2*N)

ছোট ঠকানো: লোগোটি থেকে যে অংশটি কেটেছিল সেটিকে প্রসেসিংয়ের গ্রেস্কেল শেড 205 এ আঁকানো হয়েছে, এটি ডিফল্ট পটভূমির রঙ। এটি কোনও চিত্রে রফতানি করা একরকম লাগবে না। এটি একটি কল সংরক্ষণ করে background(255)

ব্যাখ্যা

N=400                 # set size
n=N/2                 # precompute center point
f=fill                # 3 usages, saves 3 bytes
a=['#34A853','#FBBC05','#EA4335','#4285F4']
                      # list of colors
def setup():          # called when starting sketch
 size(N,N)            # set size
 noStroke()           # disable stroking
def draw():           # drawing loop
 for i in 1,3,5,7:    # loop over increments of PI/4
  f(a[i/2])           # set fill color using integer
                      # division
  arc(n,n,N,N,i*PI/4+[0,.59][i>6],(i+2)*PI/4)
                      # draw a pizza slice between
                      # two coordinates. The 
                      #     [0,.59][i>6]
                      # accounts for the white part
 f(205)               # set fill color to Processing's
                      # default background
 ellipse(n,n,.6*N,.6*N)
                      # cut out center
 f(a[3])              # set fill to blue
 rect(n,n-.1*N,.98*n,.2*N)
                      # draw the straight part

উদাহরণ

N = 400

এন = 400

N = 13 (প্রসেসিংয়ের সর্বনিম্ন আকার 100x100)

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

বিঃদ্রঃ

যদি আমরা আমাদের Nসুস্পষ্ট কলগুলির জন্য একত্রে মানগুলিতে ম্যানুয়ালি সম্পাদনা করার অনুমতি দিই setupএবং drawপ্রয়োজনীয় না হয় এবং এটি প্রতি ডিজিটে 213 বাইট + 3 বাইটে নেমে যায় N

N=200
size(200,200)
n=N/2
f=fill
a=['#34A853','#FBBC05','#EA4335','#4285F4']
noStroke()
for i in 1,3,5,7:f(a[i/2]);arc(n,n,N,N,i*PI/4+[0,.59][i>6],(i+2)*PI/4)
f(205);ellipse(n,n,.6*N,.6*N);f(a[3]);rect(n,n-.1*N,.98*n,.2*N)

নিজে, এই একটি পুরো প্রোগ্রাম নয়
গরু হাতুড়ে

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