বিজ্ঞপ্তি ব্লুজ


21

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইতিবাচক পূর্ণসংখ্যক N নেবে এবং একটি N × N পিক্সেলের চিত্রের সাথে মাপসই করা বৃত্তগুলির এই ধরণটি পুনরায় তৈরি করবে:

অভিনব চেনাশোনা

এই চিত্রটি এন = 946 এর জন্য একটি বৈধ আউটপুট উদাহরণ।

যদি এটি পরিষ্কার না হয় তবে সমস্ত ছোট হালকা-নীল চেনাশোনাগুলির একই ব্যাসার্ধ থাকে এবং চারটি অন্ধকার-নীল বৃত্তগুলিতে একইভাবে অবস্থিত। গা dark়-নীল চেনাশোনাগুলির দ্বিগুণ ব্যাসার্ধ রয়েছে এবং একইভাবে বড় হালকা-নীল বৃত্তে অবস্থিত।

  • নীল দুটি শেডের জায়গায় কোনও দুটি দৃশ্যত পৃথক রঙ ব্যবহার করা যেতে পারে।

  • পটভূমি স্কোয়ারটি রঙিন করা দরকার।

  • অ্যান্টি-এলিয়জিং alচ্ছিক।

  • চিত্রটি কোনও ফাইলে সংরক্ষণ করুন, এটি প্রদর্শন করুন বা কাঁচা চিত্রের ডেটা স্টাডাউটে পাইপ করুন।

  • যে কোনও সাধারণ চিত্র ফাইল ফর্ম্যাট অনুমোদিত।

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

আপনি যদি এই বৃত্তের ধরণটির পুনরাবৃত্ত দিকগুলি আরও স্তরে প্রসারিত করেন তবে ব্রাউনি পয়েন্টগুলি উল্লেখ করে। (আপনার চ্যালেঞ্জ এন্ট্রি থেকে এটি আলাদা রাখুন))


"ব্যাকগ্রাউন্ড স্কোয়ারটি রঙ করা দরকার" বলতে কী বোঝায়? যদি ব্যাকগ্রাউন্ডে ডিফল্টরূপে একটি নির্দিষ্ট রঙ থাকে তবে আমি কি এটি স্পষ্টভাবে পূরণ না করে 2 টি রঙের মধ্যে একটি হিসাবে ব্যবহার করতে পারি?
aditsu

আমি বলতে চাইছি বিজি তৃতীয় ভিন্ন রঙ হতে পারে না
ক্যালভিনের

উত্তর:


5

সিজাম, 83 বাইট

"P1"li___,.5f+2.@/f*1fm2m*{[3{_~mh1<[[VX][ZmqV]]_Wff*+@2f*f.+{~mh}$0=}*;0]0#2%}%]S*

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

সিজেমে ডেডিকেটেড ইমেজ আউটপুট কার্যকারিতা নেই। আমার কোডটি পিবিএম এএসসিআইআইতে একটি চিত্র তৈরি করে। পোস্ট করার জন্য, আমি জিএমপি ব্যবহার করে সেই চিত্রটি পিএনজিতে রূপান্তর করেছি।

নোট করুন যে কোনও বৃত্ত অঙ্কন কার্যকারিতা, বা এর মতো কিছু এটি ব্যবহার করে না। চিত্রটি পিক্সেল দ্বারা পিক্সেল গণনা করা হয়।

নমুনা আউটপুট

3কোডের মাঝখানে প্রায় ধ্রুবক বাড়িয়ে মহকুমার উচ্চতর ডিগ্রি সহজেই তৈরি করা যায় ।

ডিগ্রি 4 এবং 5 চিত্রগুলি দেখতে দেখতে:

ডিগ্রি 4ডিগ্রি 5

কোডের সামগ্রিক ক্রম হ'ল:

  1. সমস্ত পিক্সেলের স্থানাঙ্ক তৈরি করুন, রেঞ্জকে স্বাভাবিকীকরণ করে [-1.0, 1.0]।
  2. সমস্ত পিক্সেল উপর লুপ।
  3. মহকুমার ডিগ্রি ওভার লুপ করুন।
  4. প্রতিটি মহকুমার জন্য, পিক্সেলটি ভিতরে / বাইরে রয়েছে কিনা তা পরীক্ষা করে ফলাফলটি রাখুন। পিক্সেল স্থানাঙ্ককে স্কেল / অনুবাদ 4 টি সাব-সার্কেলের একটিতে কেন্দ্রিক সমন্বয় সিস্টেমে অনুবাদ করে। রূপান্তরিত স্থানাঙ্কগুলি কেন্দ্রের নিকটে অবস্থিত যেখানে বেছে নিন।
  5. প্রতিটি ডিগ্রির বাইনারি ভিতরে / বাইরের ফলাফলগুলি থেকে, পিক্সেলের বাইরে যে প্রথম ডিগ্রি ছিল তার সাথে সামঞ্জস্য রেখে প্রথম 0 খুঁজে বের করুন এবং পিক্সেলের রঙ নির্ধারণের জন্য এর মডুলো 2 নিন।

ব্যাখ্যা:

"P1"    Start of header for PBM ASCII file.
li      Get input n.
__      Two copies for the width/height of the image in the PBM header.
_,      Generate [0 .. n - 1].
.5f+    Add 0.5 to each list entry, since we want to test the pixel centers.
2.@/    Calculate 2.0 / n, which is the distance between two pixels.
f*      Multiply the unscaled pixel coordinates with the pixel distance.
        We now have coordinates in the range [0.0, 2.0].
1fm     Subtract one from each, giving coordinates in range [-1.0, 1.0].
2m*     Cartesian power to calculate all y/x pairs.
{       Start loop over all pixel coordinates.
  [       Start wrapping the inside/outside results for all degrees.
  3{      Start loop over degrees.
    _~mh    Calculate distance from center.
    1<      Compare with 1. This gives inside/outside result for degree.
    [       Start building list of centers for 4 sub-circles.
    [VX]    One is at [0 1]. Note that coordinate order is y/x.
    [ZmqV]  Next one is at [sqrt(3) 0].
    ]       Wrap these two...
    _       ... and copy them.
    Wff*    Mirror all coordinates by multiplying with -1.
    +       Concatenate, giving the centers of all 4 sub-circles.
    @       Get current coordinates to top.
    2f*     Multiply them by 2. Note that the coordinates need to be scaled up by
            a factor 2 to give a circle with half the radius when we test the distance
            to the origin against 1.0.
    f.+     Add the current coordinates to the centers of all 4 sub-circles.
            For each sub-circle, this puts the current coordinates in a coordinate
            space with the origin at the center, and with a radius of 1.0
    {~mh}$  Sort them by distance to the origin...
    0=      ... and take the first one. This picks the sub-circle which has its
            center closest to the current coordinates.
            We now have one coordinate pair, for the closest sub-circle, and are
            ready for the next loop iteration, which tests the next degree of the
            subdivision.
  }*      End loop over degrees.
  ;       Have remaining coordinate pair on stack, pop it.
  0       Add a sentinel for find operation before, so that a 0 is always found.
  ]       End wrapping the inside/outside results for all degrees.
  0#      Find the first 0 (outside) degree.
  2%      Modulo 2 to determine color.
}%      End loop over all pixel coordinates.
]       Wrap the pieces of the PBM header and the pixel list.
S*      Join them with spaces, to produce the necessary spaces for the header.

17

পাইথন 2 + পিআইএল, 262 বাইট

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

এই পদ্ধতির পুনরাবৃত্তি ফাংশন ব্যবহার করে প্রতিটি পৃথক পিক্সেল স্থানাঙ্কের রঙ নির্ধারণ করে cc(x,y,0)একটি বৃত্ত রেন্ডার করে; c(x,y,1)এর বাইরে কাটা চারটি বৃত্ত সহ একটি বৃত্ত রেন্ডার করে; c(x,y,2)ওপিতে চিত্রটি রেন্ডার করে। 2 এর চেয়ে বড় যে কোনও কিছুই আমাকে ব্রাউন পয়েন্ট উপার্জন করে।

import PIL.Image as I
d=3**.5/2
c=lambda x,y,l=0:c(x,y)&~any(c((x+i)*2,(y+j)*2,l-1)for i,j in[(.5,0),(-.5,0),(0,d),(0,-d)])if l else x*x+y*y<1
z=input()
f=lambda s:2.*s/z-1
I.frombytes("L",(z,z),"".join(" ~"[c(f(i%z),f(i/z),2)]for i in range(z*z))).save("p.png")

নন-গল্ফ করা সংস্করণ:

from PIL import Image
import math
def in_shape(x,y, level=0):
    d = math.sqrt(3)/2
    if level == 0:
        return x**2 + y**2 <= 1
    else:
        t = True
        for dx,dy in [(0.5, 0), (-0.5, 0), (0, d), (0,-d)]:
            if in_shape((x+dx)*2, (y+dy)*2, level-1):
                t = False
        return in_shape(x,y) and t

f = lambda s: ((2*s / float(size))-1)

size = input()
img = Image.new("RGB", (size, size))
pix = img.load()
for i in range(size):
    for j in range(size):
        if in_shape(f(i), f(j), 2):
            pix[i,j] = (0,0,0)
        else:
            pix[i,j] = (255,255,255)
img.save("output.png")

বোনাস অতিরিক্ত পুনরাবৃত্তি চিত্র:

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


.save("p.png")কেবল ব্যবহারের পরিবর্তে.show()
অ্যালবার্ট রেনশওয়া

7

পোস্টস্ক্রিপ্ট, 335 বাইট।

%!
/D{def}def/B{bind D}D/E{exch}B/A{add}D/c{3 copy 3 -1 roll A E moveto 0 360 arc}B/f{5 dict begin/d E D/r E D/y E D/x E D gsave x y r c clip d 2 mod setgray x y r c fill d 0 gt{/h 3 sqrt 2 div r mul D/r r 2 div D/d d 1 sub D x r A y r d f x r sub y r d f x y h A r d f x y h sub r d f}if grestore end}B 512 2 div dup dup 2 f showpage

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

পোস্টস্ক্রিপ্ট দোভাষীরা সাধারণত ফাইলের শুরুতে বিশেষ মন্তব্য থেকে মেটাটাটা (পৃষ্ঠার আকার এবং শিরোনামের মতো) পড়েন; স্পষ্টতই আমি %!আমার এন্ট্রি থেকে খালি অপরিহার্য পোস্টস্ক্রিপ্ট স্বাক্ষর মন্তব্য ছাড়া সমস্ত অপসারণ করেছি , তবে এটি এখনও কোনও স্ট্যান্ডার্ড পোস্টস্ক্রিপ্ট ইন্টারপ্রেটারে যেমন ঠিক গোস্টস্ক্রিপ্ট বা ওকুলারে প্রদর্শিত হবে। এটি ডিসপ্লে ব্যবহার করেও দেখা যায়ইমেজম্যাগিক / গ্রাফিক্সম্যাগিকের সাথে উপস্থিত ইউটিলিটিটি ।

নোট করুন যে ফাইলটি একটি নতুন লাইনে শেষ হওয়া উচিত (যা আমি আমার বাইট গণনাতে অন্তর্ভুক্ত করেছি), বা দোভাষীর মন খারাপ হতে পারে।

Nএই কোডের আকারের পরামিতি 512; এটি 2 দ্বারা ভাগ করা হয়েছে এবং পুনরাবৃত্তির ক্রিয়াকলাপের প্রাথমিক কলটির জন্য প্যারামিটারগুলি তৈরি করতে দুবার নকল করা হয়েছে f। পুনরাবৃত্তির গভীরতা 2, যা fইন এর ঠিক আগে দেওয়া হয় 512 2 div dup dup 2 f। আকার ছোট রাখতে আউটপুটটি কালো এবং সাদা। যদিও আপনি কোনও যুক্তিসঙ্গত অ-নেতিবাচক পূর্ণসংখ্যার পুনরাবৃত্তির গভীরতা সেট করতে পারেন তবে এই সংস্করণটি এমনকি গভীরতার সাথেও দুর্দান্ত দেখায়।

এই চিত্রটি একটি ভেক্টর গ্রাফিক, সুতরাং এটি পোস্টস্ক্রিপ্ট ইন্টারপ্রেটার / প্রিন্টারের ব্যবহৃত মানের এবং সেটিংসের উপর নির্ভর করে পিক্সেলাইজেশন ছাড়াই যে কোনও রেজোলিউশনে প্রদর্শিত হতে পারে। (এফডাব্লুআইডাব্লু, পোস্টস্ক্রিপ্টটি বৃত্তাকার আরকগুলি আঁকতে বাজিয়ার কিউবিক বক্ররেখা ব্যবহার করে, ডিফল্ট ত্রুটিটি সর্বদা একটি পিক্সেলের তুলনায় ডিভাইসের জায়গার চেয়ে কম থাকে তা নিশ্চিত করার জন্য যথেষ্ট স্প্লাইন ব্যবহার করা হয়)। যুক্তিযুক্ত উচ্চ মানের আপনি ইমেজম্যাগিকের প্রদর্শনটি ব্যবহার করে এটি দেখতে পারেন:

display -density 300 -geometry 512x512 -page 512x512

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

640x640 বি ও ডাব্লু সার্কেল ফ্র্যাক্টাল


এখানে একটি সামান্য বড় সংস্করণ যা আরজিবি রঙ এবং বিজোড় পুনরাবৃত্তির গভীরতা পরিচালনা করে:

%!PS-Adobe-3.0
/D{def}def/N 512 D/d 2 D/B{bind D}D/E{exch}B/A{add}D/c{3 copy 3 -1 roll A E moveto 0 360 arc}B/k{2 mod 0 eq{.3 .6 .9}{0 .2 .5}ifelse setrgbcolor}B d 1 A k 0 0 N N rectfill/f{5 dict begin/d E D/r E D/y E D/x E D gsave x y r c clip d k x y r c fill d 0 gt{/h 3 sqrt 2 div r mul D/r r 2 div D/d d 1 sub D x r A y r d f x r sub y r d f x y h A r d f x y h sub r d f}if grestore end}B N 2 div dup dup d f showpage

এটি আপনাকে স্ক্রিপ্টের শীর্ষের নিকটে আকারের প্যারামিটার Nএবং পুনরাবৃত্তির গভীরতাও সেট করতে দেয় d

640x640 রঙ বৃত্ত ভঙ্গুর, গভীরতা == 2


অবশেষে, কোডটির আরও পঠনযোগ্য ফর্মটি এখানে। (দুর্ভাগ্যক্রমে, পোস্টস্ক্রিপ্টের জন্য এখানে ব্যবহৃত সিনট্যাক্স হাইলাইটিংটি পছন্দসই হওয়ার জন্য অনেক কিছু ছেড়ে যায় , তবে আমার ধারণা এটি কোনও কিছুর চেয়ে ভাল ...)। স্মার্ট পোস্টস্ক্রিপ্ট দোভাষীরা %%BoundingBox:বিশেষ মন্তব্য থেকে পৃষ্ঠাটির জ্যামিতিটি পড়বেন ।

%!PS-Adobe-3.0
%%BoundingBox: 0 0 640 640
%%Title: Circle fractal
%%Creator: PM 2Ring
%%Creationdate: (Oct 29 2015)
%%Pages: 1 1
%%EndComments

% for http://codegolf.stackexchange.com/questions/61989/circular-blues

% ----------------------------------------------------------------------

16 dict begin

%Total image width & height in points / pixels
/N 640 def

%Maximum recursion depth
/Depth 4 def

% ----------------------------------------------------------------------

%Draw a circle centred at (x,y), radius r. x y r circle -
/circle{
    3 copy      % x y r  x y r
    3 -1 roll   % x y r  y r x
    add exch    % x y r  x+r y
    moveto
    0 360 arc 
}bind def

% ----------------------------------------------------------------------

%Select 1st color if n is even, select 2nd color if n is odd. n color -
/color{
    2 mod 0 eq
    {.36 .6 .9}
    {0 .25 .5}
    ifelse
    setrgbcolor
}bind def

%Do background square
Depth 1 add color
0 0 N N rectfill

/Q 3 sqrt 2 div def

%Recursive circle pattern. x y r Depth cfrac -
/cfrac{
    5 dict begin
    /Depth exch def
    /r exch def
    /y exch def
    /x exch def

    gsave
    x y r circle clip
    Depth color
    x y r circle fill

    Depth 0 gt
    {
        /dy Q r mul def
        /r r 2 div def
        /Depth Depth 1 sub def 

        x r add y r Depth cfrac
        x r sub y r Depth cfrac
        x y dy add r Depth cfrac
        x y dy sub r Depth cfrac
    }if
    grestore
    end
}bind def

%Call it!
N 2 div dup dup Depth cfrac

showpage

% ----------------------------------------------------------------------

%%Trailer
end
%%EOF

এবং এখানে পিএনজি ফর্ম্যাটে গভীরতা == 4 আউটপুট, আবারও রূপান্তর ব্যবহার করে তৈরি করা হয়েছে (এবং অপ্টিম্পিং দিয়ে অনুকূলিত হয়েছে ):

640x640 রঙ বৃত্ত ভঙ্গুর, গভীরতা == 4


6

পাইথন 2 + পিআইএল, 361 বাইট

import PIL.Image as p,PIL.ImageDraw as d
W=input()
q=W/4
h=2*q
t=3*q
e=W/8
o=int(q*3**.5)
I,J=[p.new("1",(s,s),s>h)for s in[W,h]]
Q=lambda i,x,y,s=q,c=0:d.Draw(i).ellipse((x,y,x+s,y+s),fill=c)
Q(I,0,0,W)
Q(J,0,0,h,1)
[Q(J,k,e)for k in[0,q]]
[Q(J,e,e+k/2)for k in[-o,o]]
[I.paste(1,k,J)for k in[(0,q,h,t),(h,q,4*q,t),(q,q-o,t,t-o),(q,q+o,t,t+o)]]
I.save("c.png")

ছবিটি কালো এবং সাদা ফাইলে সংরক্ষণ করে c.png:

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

আমি মূলত চিত্রটির অর্ধেক আকারের একটি বৃত্ত তৈরি করি J। তারপরে আমি চিত্রটিকে আকৃতিটি আঁকতে নিজের মুখোশ হিসাবে ব্যবহার করি I, যার মূল বৃত্ত রয়েছে।

এটির I.show()পরিবর্তে শেষের দিকে এটি সংক্ষিপ্ত করা যেতে পারে I.save("c.png"), তবে পাইথন ২ এ এটি কাজ করিনি someone

নিম্নলিখিত প্রোগ্রামটি প্রশ্ন হিসাবে চিত্রটি উত্পন্ন করে (419 বাইট):

import PIL.Image as p,PIL.ImageDraw as d
W=int(input())
q=W/4
h=2*q
t=3*q
e=W/8
o=int(q*3**.5)
I,J=[p.new(["1","RGB"][s>h],(s,s),s>h and"rgb(13,55,125)")for s in[W,h]]
Q=lambda i,x,y,s=q,c=0:d.Draw(i).ellipse((x,y,x+s,y+s),fill=c)
Q(I,0,0,W,"rgb(97,140,224)")
Q(J,0,0,h,1)
[Q(J,k,e)for k in[0,q]]
[Q(J,e,e+k/2)for k in[-o,o]]
[I.paste("rgb(13,55,125)",k,J)for k in[(0,q,h,t),(h,q,4*q,t),(q,q-o,t,t-o),(q,q+o,t,t+o)]]
I.save("c.png")

-1 ক্যালভিনের চিত্রের মতো সুন্দর নয়;)
বিটা ডেকায়

আমি নিশ্চিত করতে পারি যে .শো () কাজ করে
অ্যালবার্ট

ঠিক আছে, ধন্যবাদ, আমি এর পরিবর্তে এটি ব্যবহার করব save
কেভিন

3

এসভিজি (1249 টি অক্ষর)

হ্যাঁ, প্রচুর অক্ষর। তবে এটি স্থির এবং যে কোনও আকারে রেন্ডার করে, যাতে এটি কিছু বোনাস দেয়।

<svg xmlns="http://www.w3.org/2000/svg"><path d="M15,33c-2.5,0-4.6,1.9-4.9,4.3c2.8,1.6,6.1,2.6,9.5,2.6c0.3-0.6,0.4-1.3,0.4-2C20,35.2,17.8,33,15,33zM15,7c2.8,0,5-2.2,5-5c0-0.7-0.1-1.4-0.4-2c-3.5,0.1-6.7,1-9.5,2.6C10.4,5.1,12.5,7,15,7zM25,33c-2.8,0-5,2.2-5,5c0,0.7,0.1,1.4,0.4,2c3.5-0.1,6.7-1,9.5-2.6C29.6,34.9,27.5,33,25,33zM25,7c2.5,0,4.6-1.9,4.9-4.3C27.1,1,23.9,0.1,20.4,0C20.1,0.6,20,1.3,20,2C20,4.7,22.2,7,25,7zM35,28.7C34.8,26,32.6,24,30,24s-4.8,2.1-5,4.7c-3-1.7-5-5-5-8.7c0,3.7-2,6.9-5,8.7C14.8,26,12.6,24,10,24S5.2,26,5,28.7c-3-1.7-5-5-5-8.7c0,7.4,4,13.9,10,17.3c0.1-1.2,0.4-2.4,0.8-3.4c0.9-1.9,2.3-3.5,4.1-4.5c0,0,0,0,0.1,0c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c0,0,0,0,0.1,0c1.8,1,3.2,2.6,4.1,4.5c0.5,1.1,0.8,2.2,0.8,3.4c6-3.5,10-9.9,10-17.3C40,23.7,38,26.9,35,28.7zM5,11.3c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c3,1.7,5,5,5,8.7c0-3.7,2-6.9,5-8.7c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c3,1.7,5,5,5,8.7c0-7.4-4-13.9-10-17.3c-0.1,1.2-0.4,2.4-0.8,3.4C28.3,8,26.8,9.6,25,10.6c0,0,0,0-0.1,0C24.8,8,22.6,6,20,6s-4.8,2.1-5,4.7c0,0,0,0-0.1,0c-1.8-1-3.2-2.6-4.1-4.5C10.4,5,10.1,3.9,10,2.6C4,6.1,0,12.6,0,20C0,16.3,2,13,5,11.3z"/><circle cx="15" cy="20" r="5"/><circle cx="5" cy="20" r="5"/><circle cx="35" cy="20" r="5"/><circle cx="25" cy="20" r="5"/></svg>

দৃশ্যমান স্নিপেট:

svg { fill: #9FD7FF; background: #2176AA; }
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 40 40">
  <path d="M15,33c-2.5,0-4.6,1.9-4.9,4.3c2.8,1.6,6.1,2.6,9.5,2.6c0.3-0.6,0.4-1.3,0.4-2C20,35.2,17.8,33,15,33zM15,7c2.8,0,5-2.2,5-5c0-0.7-0.1-1.4-0.4-2c-3.5,0.1-6.7,1-9.5,2.6C10.4,5.1,12.5,7,15,7zM25,33c-2.8,0-5,2.2-5,5c0,0.7,0.1,1.4,0.4,2c3.5-0.1,6.7-1,9.5-2.6C29.6,34.9,27.5,33,25,33zM25,7c2.5,0,4.6-1.9,4.9-4.3C27.1,1,23.9,0.1,20.4,0C20.1,0.6,20,1.3,20,2C20,4.7,22.2,7,25,7zM35,28.7C34.8,26,32.6,24,30,24s-4.8,2.1-5,4.7c-3-1.7-5-5-5-8.7c0,3.7-2,6.9-5,8.7C14.8,26,12.6,24,10,24S5.2,26,5,28.7c-3-1.7-5-5-5-8.7c0,7.4,4,13.9,10,17.3c0.1-1.2,0.4-2.4,0.8-3.4c0.9-1.9,2.3-3.5,4.1-4.5c0,0,0,0,0.1,0c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c0,0,0,0,0.1,0c1.8,1,3.2,2.6,4.1,4.5c0.5,1.1,0.8,2.2,0.8,3.4c6-3.5,10-9.9,10-17.3C40,23.7,38,26.9,35,28.7zM5,11.3c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c3,1.7,5,5,5,8.7c0-3.7,2-6.9,5-8.7c0.2,2.6,2.3,4.7,5,4.7s4.8-2.1,5-4.7c3,1.7,5,5,5,8.7c0-7.4-4-13.9-10-17.3c-0.1,1.2-0.4,2.4-0.8,3.4C28.3,8,26.8,9.6,25,10.6c0,0,0,0-0.1,0C24.8,8,22.6,6,20,6s-4.8,2.1-5,4.7c0,0,0,0-0.1,0c-1.8-1-3.2-2.6-4.1-4.5C10.4,5,10.1,3.9,10,2.6C4,6.1,0,12.6,0,20C0,16.3,2,13,5,11.3z"/>
  <circle cx="15" cy="20" r="5"/>
  <circle cx="5" cy="20" r="5"/>
  <circle cx="35" cy="20" r="5"/>
  <circle cx="25" cy="20" r="5"/>
</svg>


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

এই ক্ষেত্রে এসভিজি ঠিক আছে।
ক্যালভিনের শখ 17

আপনি কি 0ভাসমান পয়েন্ট ধ্রুবক নেতৃস্থানীয় বাদ দিতে পারেন ? উদাহরণস্বরূপ, 0.4দ্বারা প্রতিস্থাপন.4 ? বেশিরভাগ ভাষায়, এটি বৈধ। এবং এসভিজি স্পেসের খুব তাত্ক্ষণিক দৃষ্টিভঙ্গি থেকে বোঝা যায় যে এটি সম্ভবত তাদের পাশাপাশি কাজ করা উচিত।
রেটো কোরাাদি

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

2

গণিত 336 359 বাইট

প্রধান গ্রাফিক্স অবজেক্টগুলি সমীকরণের যৌক্তিক সংমিশ্রণের মাধ্যমে সংজ্ঞায়িত অঞ্চলগুলি।

r=Red;i=ImplicitRegion;m=i[-2<x<2&&-2<y<2,{x,y}];n=Input[];
t[a_,b_,c_]:=i[(x+a)^2+(y+b)^2<=c,{x,y}];
a_~f~b_:={t[a,b,1],t[-.5+a,b,1/4],t[.5+a,b,1/4],t[a,b-.865,1/4],t[a,b+.865, 1/4]}
g@d_:=RegionIntersection[m,BooleanRegion[#1&&!#2&&!#3&&!#4&&!#5&,d]]
RegionPlot[{m,t[0,0,4],g@f[1,0],g@f[-1,0],g@f[0,1.75], 
g@f[0, -1.75]},ImageSize->n,PlotStyle->{r,Blue,r,r,r,r}]

মাংসখণ্ডের


1

জাভা, 550

import javafx.application.*;import javafx.scene.*;import javafx.scene.layout.*;import javafx.scene.shape.*;import javafx.stage.*;public
class C extends Application{static long n;Shape d(float m,float k,float x,float y){float h=m/2;Shape
s=new Circle(x+h,y+h,h);return k>0?s.subtract(s,s.union(s.union(s.union(d(h,k-1,x,y+m/4),d(h,k-1,x+h,y+m/4)),d(h,k-1,x+m/4,y-m*.183f)),d(h,k-1,x+m/4,y+m*.683f))):s;}public
void start(Stage s){s.setScene(new Scene(new Pane(d(n,2,0,0))));s.show();}public
static void main(String[]a){n=Long.valueOf(a[0]);launch();}}

বেশিরভাগ ক্ষেত্রে কেবল জাভাএফএক্সের সাথে পরীক্ষামূলক।

স্ক্রীনশট:

স্ক্রিনশট

ব্রাউন পয়েন্টগুলির জন্য, কোডটিতে পরিবর্তন করুন 2( d(n,2,0,0)) একটি আলাদা সংখ্যায়।

পুরানো সংস্করণ, 810

import javafx.application.*;import javafx.scene.*;import javafx.scene.canvas.*;import javafx.scene.effect.*;import javafx.scene.layout.*;import javafx.scene.paint.*;import javafx.stage.*;public
class C extends Application{static long n;Canvas c;GraphicsContext g;void
d(float m,float k,float x,float y){if(k>0){float
h=m/2;g.save();g.beginPath();g.arc(x+h,y+h,h,h,0,360);g.clip();g.fillRect(x,y,m,m);d(h,k-1,x,y+m/4);d(h,k-1,x+h,y+m/4);d(h,k-1,x+m/4,y-m*.183f);d(h,k-1,x+m/4,y+m*.683f);g.restore();}}public
void start(Stage s){c=new Canvas(n,n);g=c.getGraphicsContext2D();g.setGlobalBlendMode(BlendMode.DIFFERENCE);g.setFill(Color.TAN);g.fillRect(0,0,n,n);d(n,3,0,0);Pane
p=new Pane();p.getChildren().add(c);s.setScene(new Scene(p));s.show();}public
static void main(String[]a){n=Long.valueOf(a[0]);launch();}}

আপনি এই স্ক্রিনশটটিতে দেখতে পাবেন এটি কিছু অনাকাঙ্ক্ষিত প্রান্তগুলি ছেড়ে দেয় ।


0

জাভাস্ক্রিপ্ট (ES6), 279

পুনরাবৃত্তভাবে ক্যানভাসগুলি তৈরি করুন এবং তার প্যারেন্ট ক্যানভাসে চারবার শিশু ক্যানভাস যুক্ত করুন। নীচের স্তরে, ক্যানভাসটি একটি একক বৃত্ত; এই ক্যানভাসটি প্যারেন্ট ক্যানভাসে চারবার স্ট্যাম্প হয়ে যায় এবং তারপরে সেই ক্যানভাসটি চূড়ান্ত মাস্টার ক্যানভাসে চারবার স্ট্যাম্প করা হয়।

(n,o=0)=>(r=o-2&&f(n/2,o+1),c=document.createElement`canvas`,X=c.getContext`2d`,d=(x,Q)=>(X.drawImage(r,x,k+Q*k*Math.sqrt(3)),d),c.width=c.height=n,m=n/2,k=n/4,X.fillStyle=o%2||"red",X.fill(X.clip(X.arc(m,m,m,0,7))),r&&d(0,0)(m,0)(k,-1)(k,1),o?c:location=c.toDataURL`image/jpeg`)

জমা ইমেজ

চলমান ডেমো:

শ্বেত স্পেস, মন্তব্য এবং হালকা শৃঙ্খলার সাথে:

f=(n,o=0)=>(
    // recursively create another canvas if we're not at the deepest layer
    var r;
    if(o < 2) { r = f(n/2,o+1); }

    // create this canvas
    c=document.createElement("canvas"),
    c.width=c.height=n,
    X=c.getContext("2d"),

    // helpful postions
    m=n/2, k=n/4, q=k*Math.sqrt(3),

    // draw a circle and clip future draws within this circle
    // either fills red (the shortest color name) or a non-color that defaults to black
    X.fillStyle= o%2 || "red",
    X.arc(m,m,m,0,7),
    X.clip(),
    X.fill(),

    // define a chainable `drawImage` alias (the `d` function returns itself)
    d=(x,y)=>(X.drawImage(r,x,y),d)

    // if we have a recursive canvas, draw it four times by chaining `d`
    if(r) { d(0,k)(m,k)(k,k-q)(k,k+q); }

    // if this is the top-layer (o==0), show the final jpeg
    if(o == 0) { location = c.toDataURL("image/jpeg"); }

    // return this canvas, to be used recursively
    c
)

এটি সহজেই প্রাথমিক o-2বা আরও বড় o-zমান পরিবর্তন করে পুনরাবৃত্তির গভীর স্তর তৈরি করতে পারে ।

নোট করুন যে এটি জমা দেওয়া কেবল ফায়ারফক্সে চলবে, ES6 বৈশিষ্ট্যগুলি ব্যবহারের জন্য fillএবং ক্যানভাস এপিআইতে অসঙ্গতি এবং clipযুক্তিগুলির কারণে।

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