ছোট্ট চ্যান্ডলার দু: খিত। তাকে উত্সাহিত করার জন্য তাকে মেঘ আঁকুন


57

ছোট্ট চ্যান্ডলার দু: খিত। তাকে উত্সাহিত করার জন্য তাকে মেঘ আঁকুন।
দ্রষ্টব্য: মেঘ আঁকানো আসলে তাকে উত্সাহিত করবে না।

একটি বৃত্তকে 3-টিউপল হিসাবে সংজ্ঞায়িত করা যেতে পারে (x,y,r)যেখানে xকার্টেসিয়ান সমতলে বৃত্তের x অবস্থান, কার্টেসিয়ান সমতলের yবৃত্তের y অবস্থান এবং বৃত্তের rব্যাসার্ধ। xএবং yনেতিবাচক হতে পারে। rসর্বদা ইতিবাচক। ইনপুটটি স্থান পৃথক 3-টিপলস আকারে চেনাশোনাগুলির একটি তালিকা। এই ক্ষেত্রে:

3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8

এর 3,1,1অর্থ " 3,11 ব্যাসার্ধের 3,2,1.5সাথে কেন্দ্রের বিন্দুযুক্ত একটি বৃত্ত । এর অর্থ" 3,21.5 রেডিও ব্যাসার সাথে কেন্দ্র বিন্দুর সাথে একটি বৃত্ত ।

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

চিত্রলেখ

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

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

মেঘ

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

আরেকটি উদাহরণ. ইনপুট:

1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7

আউটপুট:

cloud2

মেঘে যদি "গর্ত" থাকে তবে আপনারও গর্তটি আঁকতে হবে। ইনপুট:

0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 

আউটপুট:

cloud3

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

এটি কোড গল্ফ, তাই স্বল্পতম চরিত্রের গণনা জিততে পারে।


13
উদ্দেশ্যমূলক বিজয়ী মানদণ্ড (এবং প্রথম অনুচ্ছেদ) সহ গ্রাফিকাল-আউটপুট প্রশ্নের জন্য +1।
ডেনিস

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

1
@ জ্যানডভোরাক এই বিধিটির উদ্দেশ্য ছিল "বৃত্তগুলি আঁকুন, তারপরে আবার একটি সাদা ভরাট দিয়ে চেনাশোনাগুলি আঁকুন" বাস্তবায়ন বা এর সাথে সামঞ্জস্যপূর্ণ কিছু। উত্তরটি অঙ্কনের আগে জিনিসগুলি কোথায় আঁকতে হবে তা আসলে গণনা করা হবে বলে আশা করা হচ্ছে । আমি এটিকে আরও পরিষ্কার করার জন্য সম্পাদনা করব।
সোমরস

15
এই প্রশ্নটি ক্লাউড টু বাট ( chrome.google.com/webstore/detail/cloud-to-butt-plus/… ) ইনস্টল করে একেবারে হাসিখুশি ।
এরটি সিডোহল

9
@ সোমকিটেনস আমি "ক্লাউডে" গর্ত "থাকলে এটি হারিয়েছি, আপনারও গর্তটি আঁকতে হবে।"
Erty Seidohl

উত্তর:


25

গণিত 177 126 121 119

ডিস্ক অঞ্চলগুলি দ্বারা সমাধান করা: গণিতবিদের পদ্ধতির

লজিক হয়

  • অঞ্চল 1 (আর 1) তৈরি করুন, চেনাশোনাগুলি (তাদের অভ্যন্তরীণ ব্যতীত);
  • অঞ্চল 2 (আর 2) তৈরি করুন, ডিস্কগুলি (বৃত্তের সীমা ছাড়াই)।
  • অঞ্চল 3 (আর 3 = আর 1-আর 2) তৈরি করুন।
  • -

অঞ্চল অনুমান

এটি নীচে অবিকল গ্রহণ করা পদ্ধতি। এটি উপরের 3 পরিসংখ্যান তৈরি করেছে।

input = "3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8";
circles = ((x - #)^2 + (y - #2)^2 == #3^2) & @@@ 
     ToExpression[#~StringSplit~","] &@(StringSplit@input);
R1 = ImplicitRegion[Or @@ circles, {x, y}];
r1 = RegionPlot[R1, PlotLabel -> "R1: circles containing borders", 
   AspectRatio -> 1, PlotRange -> {{-1, 5}, {-1, 5}}];

innerDisks = ((x - #)^2 + (y - #2)^2 < #3^2) & @@@ 
     ToExpression[#~StringSplit~","] &@(StringSplit@input);
R2 = ImplicitRegion[Or @@ innerDisks, {x, y}];
r2 = RegionPlot[R2, PlotLabel -> "R2: disks within circle borders", 
   AspectRatio -> 1, PlotRange -> {{-1, 5}, {-1, 5}}];
R3 = RegionDifference[R1, R2]
r3 = RegionPlot[R3, PlotLabel -> "R3 = R1-R2", AspectRatio -> 1, 
   PlotRange -> {{-1, 5}, {-1, 5}}];
GraphicsGrid[{{r1, r2, r3}}, ImageSize -> 600]

অন্তর্নিহিত অঞ্চল # 1 হ'ল চেনাশোনাগুলির মিল। অন্তর্নিহিত অঞ্চল # 2 হ'ল চেনাশোনাগুলির মধ্যে থাকা ডিস্কগুলির ইউনিয়ন। তাদের পার্থক্য সীমান্ত হয়।

RegionDifference [
ImplicitRegion [(- 3 + X) ^ 2 + (-1 + Y) ^ 2 == 1 || (-3 + x) ^ 2 + (-2 + y) ^ 2 == 2.25 || (-1 + x) ^ 2 + (-2 + y) ^ 2 == 0.49 || (-0.9 + x) ^ 2 + (-1.2 + y) ^ 2 == 1.44 || (-1 + x) ^ 2 + y ^ 2 == 0.64, {x, y}],
ইম্পিপ্লেটরিজিয়ন [(- 3 + x) ^ 2 + (-1 + y) ^ 2 <1 || (-3 + x) ^ 2 + (-2 + y) ^ 2 <2.25 || (-1 + x) ^ 2 + (-2 + y) ^ 2 <0.49 || (-0.9 + x) ^ 2 + (-1.2 + y) <2 <1.44 || (-1 + x) ^ 2 + y ^ 2 <0.64, {x, y}]]


ডিস্ক অঞ্চলগুলি দ্বারা সমাধান করা: প্রকৌশলের পদ্ধতির (১১৯ টি)

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

s = StringSplit;RegionBoundary@DiscretizeRegion[RegionUnion[Disk[{#, #2}, #3] &@@@
ToExpression[#~s~","] &@(s@InputString[])]]

"3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8"

অঞ্চল সীমানা পৃথক করা হয়।

reg1


প্রান্তগুলি সনাক্ত করে সমাধান করা: ফটোগ্রাফারের দৃষ্টিভঙ্গি - 121 অক্ষর

প্রান্ত সনাক্তকরণ

এটি ডিস্কগুলিকে কালো রঙে আঁকায়, চিত্রকে জালিয়াতি করে, প্রান্তগুলি সনাক্ত করে এবং কালো এবং সাদাকে উল্টে দেয়।

s=StringSplit;ColorNegate@EdgeDetect@Rasterize@Graphics[Disk[{#,#2},#3]&@@@
((ToExpression/@s[#,","])&/@s[InputString[]])]

5 টি বাইট বন্ধ শেভ করা:RegionBoundary@DiscretizeRegion@RegionUnion[{#,#2}~Disk~#3&@@@ToExpression[#~s~","]&@s@InputString[s=StringSplit]]
মার্টিন এন্ডার

সম্ভাব্য s=StringSplitভিতরে প্রম্পট ভিতরে? এটিকে আবার সামনে নিয়ে যাওয়ার চেষ্টা করুন, আপনার বর্তমান সংস্করণটির চেয়ে কম হওয়া উচিত।
মার্টিন এণ্ডার

27

টি-এসকিউএল 235 234 229 212 171 73 বাইট

এটি এসকিউএল সার্ভার 2012+ এ স্থানিক কার্যকারিতা ব্যবহার করে। এটি এসএসএমএসে চালিত হলে (এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও) একটি স্থানিক ফলাফল ফলক তৈরি করে। ইনপুটটি ভেরিয়েবল @ আই থেকে প্রাপ্ত। ইনপুট কোনও টেবিল থেকে নেওয়া যেতে পারলে আমি এটিকে আরও কমাতে পারতাম।

যেহেতু এখন টেবিল ইনপুট অনুমোদিত।

SELECT Geometry::UnionAggregate(Geometry::Point(X,Y,0).STBuffer(R))FROM A

আমি আগের সমাধানটি নীচে রেখেছি।

DECLARE @ VARCHAR(999)='WITH a AS(SELECT *FROM(VALUES('+REPLACE(@i,' ','),(')+'))A(X,Y,R))SELECT Geometry::UnionAggregate(Geometry::Point(X,Y,0).STBuffer(R))FROM a'EXEC(@)

সম্পাদনা : বিপথগামী স্থান, উদ্বৃত্ত সরান মধ্যে এবং subquery

171: সিটিই এবং @ এর সাথে টেবিল তৈরি প্রতিস্থাপন।

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

ডায়নামিক এসকিউএল ভাঙ্গা

DECLARE @i VARCHAR(100) = '1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7' -- Input
DECLARE @ VARCHAR(999) = '
WITH a AS(                                       --CTE to produce rows of x,y,r 
    SELECT *FROM(VALUES('+
        REPLACE(@i,' ','),(')                    --Format @i to a value set
        +'))A(X,Y,R)
)
SELECT Geometry::UnionAggregate(                 --Aggregate Buffered Points
    Geometry::Point(X,Y,0).STBuffer(R)           --Create point and buffer
    )               
FROM a                                           --from the table variable
'
EXEC(@)                                          --Execute Dynamic sql

আমি বলার মধ্যে একটি ত্রুটি 'A' has fewer columns than were specified in the column list
পাচ্ছি

@ জেসানফোন আপনার ইনপুট ভেরিয়েবল @ i সঠিকভাবে সেট করা আছে তা নিশ্চিত করুন। DECLARE @i VARCHAR(100) = '1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7'। দুর্ভাগ্যক্রমে আমি তার এই মুহুর্তে পরীক্ষা করতে পারছি না এবং এসকিউএলফিডাল 2012 এর জন্য দুর্দান্ত খেলছে না
মিকিটি

এসকিউএল জ্যামিতির ফাংশনগুলির সাথে দুর্দান্ত কাজ। ভাল খবর! প্রাক-বিদ্যমান টেবিল দ্বারা ইনপুট এখন স্পষ্টভাবে অনুমোদিত হয় । টেবিল তৈরি এবং জনসংখ্যা বাইট গণনায় অন্তর্ভুক্ত করা উচিত নয়।
ব্র্যাডিসি

আমি কয়েকটি চরিত্র গল্ফ করেছি। লিঙ্কটি কোনও ফল দেয় না। তবে এটি এমএস-এসকিএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে কাজ করে। স্ক্রিপ্ট এখানে , উপভোগ করুন। এটি ব্যবহার করতে নির্দ্বিধায়
t-clausen.dk

@ t-clausen.dk এর জন্য ধন্যবাদ, তবে যেহেতু আমি এটি আপডেট করতে যাচ্ছি তাই আমি এটিকে অনুমোদিত টেবিল ইনপুটটিতে পরিবর্তন করব। আমি এটিকে ব্যাক আপ করতে যাচ্ছিলাম না, তবে ...
মিকিটি

23

গণিত, 175 158 149 বাইট

s=StringSplit;l=ToExpression[#~s~","]&@s@InputString[];RegionPlot[Or@@(Norm@{x-#,y-#2}<#3&@@@l),{x,m=Min@(k={{##}-#3,{##}+#3}&@@@l),M=Max@k},{y,m,M}]

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

মূলত, আমি একটি যৌক্তিক অবস্থা তৈরি করছি যা মেঘের অভ্যন্তরে সমস্ত পয়েন্টের জন্য সত্য এবং এর বাইরে সমস্ত পয়েন্টের জন্য মিথ্যা। আমি এটিকে RegionPlotখাওয়াই যা তারপরে সমস্ত পয়েন্টের অঞ্চল যেখানে অভিব্যক্তি Trueপাশাপাশি এর চারপাশে একটি রূপরেখা রেন্ডার করে ।

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

Ungolfed:

s = StringSplit;
l = ToExpression[#~s~","] &@s@InputString[];
RegionPlot[
 Or @@ (Norm@{x - #, y - #2} < #3 & @@@ l), 
 {x, m = Min@(k = {{##} - #3, {##} + #3} & @@@ l), M = Max@k},
 {y, m, M}
]

1
ImplicitRegionপ্লট করার জন্য স্বয়ংক্রিয়ভাবে যথাযথ x এবং y মানগুলি সন্ধান করে। 122 অক্ষর:s = StringSplit; RegionPlot@ ImplicitRegion[ Or @@ (((x - #)^2 + (y - #2)^2 < #3^2) & @@@ (ToExpression[#~s~","] &@(s@InputString[]))), {x, y}]
ডেভিডসি

@ ডেভিডকার্যাহার দুর্ভাগ্যক্রমে, এটি চিত্রের অনুপাতটিকে বিকৃত করে। (যদিও এই অঞ্চলগুলির সমস্ত কার্যকারিতা জেনে ভাল লাগলো - এছাড়াও আপনি যেগুলি ব্যবহার করেছেন - আমি RegionPlotএখন পর্যন্ত কেবল দেখেছি ))
মার্টিন ইন্ডার

আপনি সম্ভবত ইতিমধ্যে লক্ষ করেছেন যে ,AspectRatio-> 1কোডটি 149 বাইটে ফিরিয়ে আনে, ঠিক এখন এটি যেখানে দাঁড়িয়ে আছে।
ডেভিডসি

2
এটি কি আমি বা এই চিত্রটি মারভিন প্যারানয়েড অ্যান্ড্রয়েডের মতো দেখাচ্ছে?
পাকোগোমেজ

16

পাইথন ৩.৩ ( 183 177 164 160 বাইট)

B=list(map(eval,input().split()))
print("".join(" ## "[sum(any(r*r>(x-d%80/4+10)**2+(y+d//80/4-10)**2for
x,y,r in B)for d in[i,i+1,i+80])]for i in range(6400)))

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

মূল:

           ########
          ##       #
         ##         #
     #####          #
    ##   #          #
   ##               #
  ##                #
 ##                 #
 #                  #
 #                 ##
  #               ##
  #       ##      #
   #      # #    ##
   #      #  #####
   #      #
    #    ##
     #  ##
      ###

আরেকটি:

    ########
  ###       ##
 ##           #
 #            #
##             #
#              #
#              #
#              #
#              #
#               ##
#                 #
 #                 ##
 #                   ######
  #                        #
   ##      ###             #
     #    ## #             #
     #    #  #             #
      #  ## ##             #
       ###  #             ##
            #       #######
            #      ##
            #      #
             #    ##
              #####

গর্ত:

                              ############
                            ###           ##
                          ###               ##
                         ##                   #
                  ########                     #######
                ###                                   ##
              ###                                       ##
             ##                                           #
            ##                                             #
           ##                                               #
          ##                                                 #
         ##                                                   #
        ##                                                     #
       ##                                                       #
      ##                                                         #
      #                                                          #
     ##                                                           #
     #                                                            #
    ##                                                             #
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
   ##                                                               #
  ##                                                                 #
  #                                                                  #
 ##                                                                   #
 #                                                                    #
##                                                                     #
#                                 ####                                 #
#                                ##   #                                #
#                               ##     #                               #
#                              ##       #                              #
#                              #        #                              #
#                              #        #                              #
#                               #      ##                              #
#                                #    ##                               #
#                                 #  ##                                #
#                                  ###                                 #
 #                                                                    ##
 #                                                                    #
  #                                                                  ##
  #                                                                  #
   #                                                                ##
    #                                                              ##
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
    #                                                              #
     #                                                            ##
     #                                                            #
      #                                                          ##
      #                                                          #
       #                                                        ##
        #                                                      ##
         #                                                    ##
          #                                                  ##
           #                                                ##
            #                                              ##
             #                                            ##
              #                                          ##
               ##                                      ###
                 ##                                  ###
                   #######                    ########
                          #                  ##
                           ##              ###
                             ##          ###
                               ###########

1
আমি ভালবাসি যে এটিই একমাত্র আসকি শিল্প সমাধান।
vmrob

কোন আমদানি ... চিত্তাকর্ষক!
রিচার্ড গ্রিন

15

পাইথন - 253 249 215 199

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

from pylab import*
from shapely.geometry import*
c=Point()
for s in raw_input().split():
 x,y,r=eval(s)
 c=c.union(Point(x,y).buffer(r))
plot(*c.exterior.xy)
for i in c.interiors:
 plot(*i.xy)
show()

আউটপুট:

তিন মেঘ

সম্পাদনা করুন (গুলি):

  • 249: sys.argv[1:]দ্বারা প্রতিস্থাপন raw_input().split(), একটিimport sys
  • 215: সরানো k={'color':'k'}বিলাসিতা, প্রতিস্থাপিত savefigদ্বারাshow
  • 199: map(float,s.split(','))দ্বারা প্রতিস্থাপিতeval(s)

11

পাইথন - 535

import math as m
import matplotlib.pyplot as l
c = "3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8"
a = [[float(y) for y in x.split(",")] for x in c.split(" ")]
for a2 in a:
    for x in xrange(0,200):
        q=x*m.pi/100.0
        p=(a2[0]+m.sin(q)*a2[2], a2[1]+m.cos(q)*a2[2])
        cc = []
        for z in a:            
            if z != a2:               
                if ((z[0] - p[0]) ** 2 + (z[1] - p[1]) ** 2 ) < (z[2] ** 2) :
                    cc.append(z)
        if not cc: 
            l.scatter(p[0],p[1])
l.show()

2
এটি আরও নিচে গল্ফ হওয়ার অনেক সম্ভাবনা রয়েছে, উদাহরণস্বরূপ, from math import*নিরবিহীন স্থানগুলি সরিয়ে, কেবলমাত্র এক-বর্ণের পরিবর্তনশীল নামগুলি ব্যবহার করে, তালিকা বোধগম্যতা (উদাহরণস্বরূপ cc=[z for z in a if z!=a2 and (z[0]…)]) ব্যবহার করে । পাইথনে গল্ফ করার টিপসটি একবার দেখুন ।
Wrzlprmft

আপনি পরিবর্তে এক-বর্ণের ভেরিয়েবল নাম ব্যবহার করে কিছু অক্ষর সংরক্ষণ করতে পারেন a2
ProgramFOX

ধন্যবাদ আরজিল ... আমি সম্ভবত আজ রাতেই গল্ফিং শুরু করব (এখনই অন্যান্য কাজগুলি করতে হবে তবে মাটিতে একটি অংশীদারি রাখতে চেয়েছিল)
রিচার্ড গ্রিন

1
হ্যাঁ @ প্রোগ্রাম্রামফক্স ... এটি এমন একটি সংস্করণ যা কাজ করেছিল এবং আমি ডিবাগ করতে পারি .. এটি আজ রাতে আরও সংক্ষিপ্ত হয়ে উঠবে ...
রিচার্ড গ্রিন

3
@ জেমস উইলিয়ামস যদি আপনি লাঠি নিতে চান ... দয়া করে করুন .. আমি কোডটির সুরক্ষিত নই !! এটিকে আপনার নিজের এন্ট্রি হিসাবে যুক্ত করতে নির্দ্বিধায় (যতক্ষণ না আপনি মূল হিসাবে জমা দেন!)
রিচার্ড গ্রীন

9

পাইথন - 296 249 231 223 212

from pylab import*
a=map(eval,raw_input().split())
for x,y,r in a:
 for i in range(200):
  q=i*pi/100;p=x+r*sin(q);t=y+r*cos(q);[z for z in a if z!=(x,y,r)and(z[0]-p)**2+(z[1]-t)**2<z[2]**2]or scatter(p,t)
show()

আসল সমাধানের জন্য ক্রেডিট @ রিচার্ড-গ্রিনে (অনুমতি দেওয়া হয়েছিল) চলে যায় , আমি এটি কিছুটা হিট করে ফেলেছি।


7
ভাল যে আমার ভোট পেয়েছে ...
রিচার্ড গ্রীন

1
pylabপরিবর্তে আমদানি করে আপনি আরও কিছু সঞ্চয় করতে সক্ষম হতে পারেন matplotlib.pyplot
ojdo

@odjo বর্তমানে মোবাইলে, আমি যদি ব্যবহার from pylab import *করতাম তবে আমি কি এখনও কল করতে পারি show()এবং scatter()কোনও রেফারেন্স ছাড়াই?
জেমস উইলিয়ামস

1
@ জেমস উইলিয়ামস নিশ্চিত করেছেন! পাইলাব একটি নাম স্পেস দূষক, এতে অনেক ম্যাটল্যাবের মতো ফাংশন রয়েছে :-)
ওজডো

ব্যবহার করে আপনি এই খাটো করতে পারেন [eval(i)for i in raw_input().split()]পাইথন এর মত evalকরিয়া 1,2,3একটি tuple মধ্যে। আপনাকে অবশ্যই অবশ্যই এটিকে পরিবর্তন করতে [x,y,r]হবে (x,y,r)
কেএসব

7

জাভাস্ক্রিপ্ট (E6) + এইচটিএমএল 322

JSFiddle

প্রতিটি বৃত্তটি প্রায় 100 টি ছোট আরকে বিভক্ত হয় এবং প্রতিটি চাপটি আঁকা হয় যদি এর মধ্যবিন্দুটি অন্য বৃত্তের কোনওটির মধ্যে না থাকে।

<canvas id='c'/>
<script>
t=c.getContext("2d"),z=99,c.width=c.height=400,
l=prompt().split(' ').map(c=>c.split(',').map(v=>40*v)),
l.map(c=>{
  for(i=z;--i+z;)
    s=4/z,r=c[2],x=c[0]+r*Math.cos(a=i*s),y=c[1]+r*Math.sin(a),
    t.beginPath(),
    l.some(q=>c!=q&(d=x-q[0],e=y-q[1],d*d+e*e<q[2]*q[2]))||t.arc(z+c[0],z+c[1],r,a-s,a+s),
    t.stroke()
})
</script>

7

পাইথন 274 বাইট

এটি স্টিডিনের কাছ থেকে ইনপুট নেয় এবং ডিসপ্লেতে প্রতিটি পয়েন্ট চেক করে, পিক্সেলগুলি একের পর এক আঁকায়। একেবারে দক্ষ নয় তবে এটি সমস্ত নিয়ম অনুসরণ করে।

c=[eval(s)for s in raw_input().split()]
import pygame
S=pygame.display.set_mode((500,500))
S.fill([255]*3)
for p in((x,y)for x in range(500)for y in range(500)if 0<min((((x-250)/25.-a)**2+((y-250)/25.-b)**2)**.5-r for(a,b,r)in c)<.1):S.set_at(p,[0]*3)
pygame.display.update()

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

alive = True
while alive:
    pygame.display.update()
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            alive = False

উদাহরণ চিত্রসমূহ:

1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7, 1,2,0.7 এখানে চিত্র বর্ণনা লিখুন

0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 এখানে চিত্র বর্ণনা লিখুন


3
@ edc65 আপনার অর্থ কী তা আমি নিশ্চিত নই। এটি সুনির্দিষ্টভাবে যা করে তা হ'ল বৃত্তের বাইরে 0 এবং 0.1 ইউনিট (0 এবং 2.5 পিক্সেলের মধ্যে) যে কোনও পিক্সেল পূরণ করে fill আপনি কি বলছেন যে অঙ্ক করার জন্য এটি গাণিতিকভাবে সঠিক আরাক্স খুঁজে পাওয়া উচিত? প্রশ্নটি পড়ার সময় থেকে মনে হয় না যে এটি আমার পক্ষে একটি সীমাবদ্ধতা।
কেএসব

4

পার্ল - 430

@e=map{[map{int($_*32)}split',']}(split' ',<>);for$g(@e){for(0..3){($a[$_]>($q=$$g[$_&1]+(($_>>1)*2-1)*$$g[2]))^($_>>1)&&($a[$_]=$q)}}for(2,3){$a[$_]-=$a[$_-2]-1}for(@e){($x,$y,$r)=@$_;$x-=$a[0];$y-=$a[1];for$k($x-$r..$x+$r){for$l($y-$r..$y+$r){$i=(int(sqrt(($x-$k)**2+($y-$l)**2)+0.5)<=>$r)-1;$f[$l][$k]=($j=$f[$l][$k])<-1||$i<-1?-2:$i||$j;}}}print"P1
$a[2] $a[3]
".join("
",map{join' ',map{$_+1?0:1}@$_,('0')x($a[2]-@$_)}@f)."
"

Stbout একটি পিবিএম ফাইল লিখুন।

পরীক্ষার চিত্র (পিএনজি রূপান্তরিত):

দ্বিতীয় পরীক্ষার চিত্র (পিএনজি রূপান্তরিত)

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