Ha (Biohazard प्रतीक) ड्रा


66

एक अलग रंग की पृष्ठभूमि पर एक अनियंत्रित रंग में बायोहाज़र्ड प्रतीक खींचें। विशिष्ट अनुपात अमेरिकी सरकार के संघीय रजिस्टर के 27 जून 1974 के अंक में प्रकाशित किए गए थे ।

विवरण

  • आउटपुट के रूप में, फ़ाइल पर लिखना (रेखापुंज और वेक्टर प्रारूप की अनुमति है) या स्क्रीन पर प्रदर्शित करना दोनों की अनुमति है।

  • आप केवल सीमा या भरे हुए आकार को आकर्षित कर सकते हैं।

  • यदि आप रेखापुंज छवियों का उपयोग करते हैं, तो आपको इनपुट के रूप में एक पैरामीटर (या दो) लेना चाहिए जो आपको आउटपुट के रिज़ॉल्यूशन (जैसे चौड़ाई / ऊंचाई) को समायोजित करने की अनुमति देता है।

  • पृष्ठभूमि में कम से कम प्रतीक के बाउंडिंग बॉक्स का आकार होना चाहिए, लेकिन बड़ा हो सकता है।

  • यूनिकोड प्रतीक un का आउटपुट पर्याप्त नहीं है

  • प्रयुक्त दूरियों के सटीक अनुपात निम्नलिखित आरेख में दिए गए हैं (जो मूल रूप से यहां से थे ):

मैंने भी उन्हीं मापों के साथ एक अतिरिक्त आरेख बनाने की कोशिश की, जो उम्मीद है कि पढ़ने के लिए थोड़ा आसान है:

( 99% अदृश्य पर एक पोस्ट से प्रेरित )


2
Loophole: क्या हम सिर्फ एक 1x1 पिक्सेल की छवि को एक चर आकार की पृष्ठभूमि के अंदर रख सकते हैं?
जॉन ड्वोरक

मुझे नहीं लगता कि यह है, यदि आप संकल्प को पर्याप्त रूप से सेट करते हैं तो प्रतीक अभी भी दिखाई देना चाहिए। और किसी भी मामले में मुझे उम्मीद है कि यहां के लोगों में यह समझने के लिए पर्याप्त सामान्य ज्ञान है कि हमारा क्या मतलब है :)
दोष

1
अगर मेरे पास समय होता तो मैं इसे पोस्टस्क्रिप्ट या कछुए के ग्राफिक्स के साथ आज़माता।
गाइ कोडर

1
@ SriotchilismO'Zaic लंबाई दो हलकों द्वारा निर्धारित की जाती है: उनमें से प्रत्येक में एक दिया केंद्र और त्रिज्या है, इसलिए लंबाई अंतराल के आकार से निर्धारित होती है।
13

1
मूल आरेख में यह "ई" है (क्रॉस सर्कल केंद्रों का प्रतिनिधित्व करता है), और में मैं नीचे जोड़ा (जहां त्रिज्या समरूपता के अक्ष से मिलती है)। 11
दोष

जवाबों:


96

टी-एसक्यूएल, 442 441 426 355 349 344 बाइट्स

DECLARE @ VARCHAR(MAX)=REPLACE(REPLACE(REPLACE('DECLARE @a5MULTIPOINT((0 31),(19 -2),(-19 -2))'',@b5MULTIPOINT((0 39),(26 -6),(-26 -6))'',@5POINT(0 9)'',@d5LINESTRING(0 9,0 99,90 -43,0 9,-90 -43)''SELECT @a830%b821)%86)%d81)%d84%819))).STUnion(@827%820)).STIntersection(@b819)))'
,8,'.STBuffer('),5,' GEOMETRY='''),'%',').STDifference(@')EXEC(@)

REPLACE()लंबे कीवर्ड का उपयोग करके और गतिशील SQL के रूप में निष्पादित करके 70+ बाइट्स सहेजे गए । नीचे स्क्रीनशॉट में पोस्ट-रिप्लेसमेंट कोड देखें।

मैंने नमूना चित्रण से समन्वित मूल्यों को दोगुना कर दिया और प्रदर्शित की गई दशमलव की संख्या को कम करने के लिए 9 इकाइयों को स्थानांतरित किया।

यह SQL 2017 में किया गया था, SQL 2008 में शुरू की गई भू-स्थानिक सुविधाओं का उपयोग करते हुए । उपयोगी बिल्ट-इन ज्यामिति कार्यों के बहुत सारे STBuffer, जिसमें मुझे एक बिंदु के चारों ओर विभिन्न आकारों के सर्कल को परिभाषित करने का एक सरल तरीका मिलता है।

एनोटेट कोड के साथ आउटपुट का दृश्य:

भू-स्थानिक कार्यों का उपयोग करते हुए टी-एसक्यूएल में बायोहाज़र्ड प्रतीक

अधिक टी-एसक्यूएल ड्राइंग के लिए, मेरे ईस्टर बनी देखें ।

SQL में इस तकनीक के अधिक व्यावहारिक अनुप्रयोगों के लिए, इस लेख को पढ़ें या इस वीडियो को देखें । एसई के पास एक संबंधित साइट है, gis.stackexchange.com

संपादन:

  1. 104 से 99 तक एक समन्वय को बदलकर 1 बाइट को बचाया।
  2. व्यक्तिगत रूप से प्रत्येक के बजाय, वस्तुओं STDifferenceका एक लेकर 15 बाइट्स सहेजे गए STUnion
  3. REPLACE()बार-बार कीवर्ड्स का उपयोग करके 71 बाइट्स की बचत की , फिर डायनेमिक SQL के रूप में निष्पादित किया। के अधिक प्रतिस्थापन को छोड़ने के लिए 2 संपादित करें STDifference
  4. 9 इकाइयों को केंद्र में ले जाकर 4 बाइट्स सहेजे गए, जिन्होंने कुछ निर्देशांक एकल (नकारात्मक) अंकों में बदल दिए। इसने अंकों के 5बदले '#'2 और बाइट्स को बचाने के बजाय एक प्रतिस्थापन चरित्र के रूप में उपयोग करने के लिए अंक को मुक्त किया ।
  5. प्रतिस्थापन स्ट्रिंग )में स्थानांतरित करके 5 बाइट्स सहेजे गए STDifference; धन्यवाद, @ निचलोल!

56
क्यों ... क्या यह मौजूद है?
सिकंदर

26
@Alexander उन डेटाबेसों के लिए, जिनमें भौगोलिक डेटा होते हैं या जिनका उपयोग जनसंख्या जनगणना, या वैज्ञानिक अध्ययन, या भौगोलिक क्षेत्र द्वारा केवल ग्राहक बिक्री के लिए किया जाता है। या सिर्फ बन्नी और बायोहाज़र्ड प्रतीकों को खींचने के लिए।
ब्रैड

24
SQL एक चीज़ के लिए काफी खराब है जो उसके लिए है, जो उनके सही दिमाग में है, वह उससे आगे जाना चाहेगा। SQL में लिखे GUI की कल्पना करें। मुझे एनोटेशन, पहलुओं और एक इकाई परीक्षण ढांचे की आवश्यकता है। हमें डिजीपर जाने की जरूरत है ।
सिकंदर

24
@Alexander जैसा कि आप चाहते हैं: TSQLT
फ्रीमैन

15
@ फ्रीमैन ओह फॉर च ... खातिर।
अलेक्जेंडर

32

टेक्स + टिक्ज़, 232 बाइट्स

टेक्स पर स्विच करके 43 बाइट्स बचाए गए। फलीपे ओलिक के लिए धन्यवाद

कुछ बाइट्स ने स्किलमन को धन्यवाद दिया

\input tikz \tikz[x=1,y=1,white]{\def\f{\foreach\1in{90:,210:,330:}}\def\u{\draw[line width=}\def~{circle(}\f\fill[red](\122)~30);\f{\u2](0,)--(\111);\u8](\130)--(\160);\fill(\130)~21);}\fill~6);\u7,red]~23.5);\f\u2](\130)~20);}\bye

लाइन ब्रेक के साथ और बिना \def:

\input tikz
\tikz[x=1,y=1,white]{
\foreach\1in{90,210,330}\fill[red](\1:22)circle(30);
\foreach\1in{90,210,330}{
\draw[line width=2](0,0)--(\1:11);
\fill(\1:30)circle(21);
\draw[line width=8](\1:30)--(\1:60);
}
\fill(0,0)circle(6);
\draw[line width=7,red](0,0)circle(23.5);
\foreach\1in{90,210,330}\draw[line width=2](\1:30)circle(20);
}
\bye

व्याख्या

यह थोड़ा पुराना है मैं इसे ठीक कर दूंगा जब मैं यह पता लगा सकता हूं कि छवियों को कैसे शांत नहीं बनाया जाए

यहाँ मैं कैसे असम्बद्ध जवाब समस्या हल करती है समझाने के लिए जा रहा हूँ। मैं कुछ बिंदु पर समझा सकता हूं कि संपीड़न कैसे काम करता है। सबसे पहले हम बड़े काले घेरे बनाते हैं:

\foreach\x in{90,210,330}\fill(\x:21)circle(30);

यहाँ छवि विवरण दर्ज करें

फिर हम कुछ सफेद रेखाएँ खींचते हैं:

\foreach\x in{90,210,330}\draw[white,line width=2cm](0,0)--(\x:11);

यहाँ छवि विवरण दर्ज करें

फिर हम सफेद वृत्त बनाते हैं:

\foreach\x in{90,210,330}\fill[white](\x:30)circle(21);

यहाँ छवि विवरण दर्ज करें

फिर हम एक केंद्रीय सफेद वृत्त जोड़ते हैं:

\fill[white](0,0)circle(6);

यहाँ छवि विवरण दर्ज करें

फिर हम एक काला उद्घोष जोड़ते हैं:

\draw[line width=7cm](0,0)circle(25.5);

यहाँ छवि विवरण दर्ज करें

फिर हम ब्लैक एनुलस के कुछ हिस्सों को हटाते हैं

\foreach\x in{90,210,330}\draw[white,line width=2cm](\x:30)circle(20);

यहाँ छवि विवरण दर्ज करें


9
आपने छह बाहरी बिंदुओं को नहीं उड़ाया है। प्रत्येक जोड़ी के बीच सफेद स्थान की 4 इकाइयाँ होनी चाहिए।
लेवल रिवर सेंट

1
@LevelRiverSt छह बाहरी बिंदु अब अपने साथी से 4 यूनिट दूर हैं।
गेहूं जादूगर

2
वे "पंजा युक्तियाँ" बहुत नुकीले हैं, उन्हें केंद्र सर्कल से आने वाले खंडों के समानांतर सीधी रेखा खंडों से मिलकर होना चाहिए। साथ ही 20.88 काफी संदिग्ध लग रहा है।
दोष

आप के \1बजाय का उपयोग करके एक और बाइट बचा सकते हैं \x, जैसा कि आप तब उपयोग कर सकते हैं \def\f{\foreach\1in{90,210,330}}
स्किलमोन

1
@flawr अच्छी तरह से ... वे अब सचमुच 5000x5000 की तुलना में काफी छोटे हैं ... अब केवल 90x90 ... मुश्किल से विवरण बना सकते हैं: डी
नेल्सन

15

सी, 8010 बाइट्स

रास्ता वापस, एसवीजी या ईएमएफ से पहले, आपको रेखापुंज से निपटना पड़ता था, और यदि आप तुरंत लोड करने के लिए कुछ चाहते थे, तो ओ / एस तैयार होने से पहले कहें, विंडोज स्टार्टअप स्क्रीन की तरह, आपको आरएलई, या रन-लंबाई का उपयोग करना था -encoding। यह राक्षस डेटा के रूप में RLE का उपयोग करके एक PBM फ़ाइल को आउटपुट करता है। हमेशा की तरह बनाएँ और इस तरह से चलाएं ./biohazard > biohazard.pbm

यदि आप जेनरेट करने के लिए आवश्यक सभी चौखटे शामिल करने वाले थे, जैसे HTML, SV लाइब्रेरी, आदि में SVG इंजन, तो यह संभवत: सबसे छोटा स्व-निहित समाधान होगा , क्योंकि putsयह एकमात्र बाहरी कार्य है, और यह आमतौर पर सबसे छोटे में से एक है। stdio.hकार्य करता है।

इस विवरण के बारे में:

यदि आप रेखापुंज छवियों का उपयोग करते हैं, तो आपको इनपुट के रूप में एक पैरामीटर (या दो) लेना चाहिए जो आपको आउटपुट के रिज़ॉल्यूशन (जैसे चौड़ाई / ऊंचाई) को समायोजित करने की अनुमति देता है।

मैंने "से" के रूप में "चाहिए" की व्याख्या की, जैसे कि RFC 2119 में , इसलिए मैंने स्केलिंग को शामिल नहीं किया, क्योंकि इस कोड के लिए यह केवल मूल के गुणकों को करने के लिए संभव होगा, जैसे ./biohazard 2और वह atoi, printfऔर अन्य जटिलताओं जो प्रस्तुत करने के मुख्य फोकस से अलग हो जाती हैं।

int o,i,x[]=
{4946,3,33,2,389,8,33,8,378,13,33,13,369,17,33,16,363,20,33,20,356,19,41,19,350,18,49,18,344,18,55,18,339,17,61,17,334,
17,66,17,330,17,71,17,325,17,75,17,321,17,79,17,317,17,83,17,313,17,87,16,311,16,90,17,307,17,93,17,303,17,97,17,300,
17,99,17,297,17,102,18,293,18,105,17,291,18,107,18,288,17,110,18,285,18,113,17,283,18,115,18,280,18,117,18,277,19,119,
18,275,19,121,19,272,19,123,19,270,19,125,19,268,19,127,19,266,19,129,19,263,20,131,19,261,20,133,19,259,20,134,20,257,
20,136,20,255,21,137,20,253,21,139,20,251,21,141,20,249,21,142,21,248,21,143,21,246,21,145,21,244,21,146,22,242,22,147,
22,240,22,149,22,238,22,150,22,238,22,151,22,236,22,152,23,234,23,153,23,232,23,155,22,232,23,155,23,230,23,157,23,228,
24,157,24,226,24,159,23,226,24,159,24,224,24,160,25,222,25,161,24,222,24,162,25,220,25,163,25,219,25,163,25,218,25,164,
26,216,26,165,25,216,26,165,26,214,26,166,26,214,26,167,26,212,27,167,26,212,26,168,27,210,27,169,27,209,27,169,27,208,
27,170,28,207,27,170,28,206,28,171,27,206,28,171,28,204,29,171,28,204,28,172,29,202,29,172,29,202,29,173,29,201,29,173,
29,200,30,173,29,200,30,173,30,198,31,173,30,198,30,174,31,197,30,174,31,196,31,174,31,196,31,175,31,195,31,175,31,194,
32,175,31,194,32,175,32,193,32,175,32,193,32,175,32,192,33,175,32,192,33,175,33,191,33,175,33,190,34,175,33,190,34,175,
33,190,34,175,34,189,34,174,35,189,34,174,35,188,35,174,35,188,35,174,36,187,36,173,36,187,36,173,36,187,36,173,36,186,
37,74,25,74,36,186,37,67,39,67,36,186,37,62,49,61,38,185,37,58,57,57,38,185,38,53,64,54,38,185,38,50,71,50,38,185,38,
47,76,48,38,185,38,45,81,44,39,184,40,41,87,41,39,184,40,39,91,39,39,184,40,37,95,37,39,184,40,35,99,34,41,183,41,32,
103,32,41,183,41,30,107,30,41,183,41,28,111,27,42,183,42,25,115,25,42,183,42,24,117,24,42,183,42,22,121,21,43,183,43,
19,124,20,43,183,43,18,127,18,43,183,43,17,129,16,44,183,44,14,133,14,44,183,44,13,135,12,45,183,45,11,137,11,45,183,
45,10,139,9,46,183,46,9,138,10,46,183,46,10,137,9,47,183,47,9,136,10,47,183,47,10,135,9,48,183,48,10,56,20,57,10,48,
183,49,9,50,33,49,10,48,184,49,10,45,41,45,10,48,184,50,10,40,49,40,10,49,184,50,10,37,55,36,10,50,185,50,10,33,60,34,
10,50,185,51,10,30,65,30,10,51,185,51,11,27,69,27,10,52,185,52,10,25,73,24,11,52,185,53,10,22,77,21,11,53,185,53,11,19,
81,19,10,53,186,54,11,16,85,16,10,54,185,56,11,13,88,14,11,56,181,59,11,11,91,11,11,59,176,63,11,8,94,9,11,63,171,66,
11,6,97,6,11,66,167,68,12,4,99,4,11,69,163,71,12,1,102,2,11,72,159,74,126,75,155,77,124,78,151,80,123,79,149,82,120,83,
145,85,118,86,141,88,116,88,139,90,114,91,135,93,112,93,133,96,109,96,130,98,107,98,127,101,104,102,124,104,101,104,
122,106,99,106,119,110,95,109,117,112,93,112,114,115,89,115,112,118,85,118,110,120,82,121,107,124,78,124,105,127,74,
127,103,131,69,130,101,134,65,133,99,137,60,137,97,141,54,141,95,146,47,145,93,151,39,150,91,157,29,156,89,166,13,165,
88,168,9,168,86,169,9,169,84,170,9,170,82,171,9,171,80,172,9,171,79,173,9,172,78,173,9,173,76,174,9,174,74,175,9,175,
72,176,9,175,72,176,9,176,70,177,9,177,68,64,20,93,10,94,20,63,68,57,34,83,17,83,33,58,66,54,42,77,21,76,43,54,64,51,
50,71,25,71,49,51,64,48,57,65,29,65,56,49,62,46,63,61,31,61,62,47,60,45,67,58,33,58,67,44,60,43,71,55,35,54,72,43,58,
41,36,8,32,52,37,51,33,8,35,41,58,40,36,17,26,49,39,48,27,16,37,40,56,39,38,22,23,46,41,45,24,21,39,39,55,37,40,26,21,
43,42,44,21,26,40,37,54,36,42,29,20,41,43,41,20,29,42,36,53,35,43,29,21,39,44,39,22,29,43,35,52,34,45,29,23,37,45,37,
23,29,45,34,51,33,46,29,24,35,46,35,25,29,46,33,50,32,48,29,26,33,47,33,26,29,47,33,49,31,49,29,27,32,47,32,27,29,49,
31,48,31,49,30,28,30,48,30,29,29,50,31,47,29,51,30,30,28,49,28,30,29,51,30,46,29,52,29,32,27,49,27,31,29,53,28,46,28,
53,29,33,26,49,26,32,29,54,28,44,28,54,29,34,25,49,25,33,29,55,27,44,27,55,29,35,24,49,23,35,29,56,27,43,26,56,29,36,
22,50,22,36,29,57,26,42,26,57,29,37,21,50,21,37,29,58,26,41,25,58,29,38,21,49,20,38,29,59,25,40,25,59,29,39,20,49,19,
39,29,60,24,40,24,60,29,40,19,49,19,39,29,61,24,39,23,61,29,41,18,49,18,40,29,62,23,38,23,62,30,41,17,49,17,41,29,63,
22,38,22,63,30,42,16,48,17,42,29,63,23,37,21,65,29,43,16,47,16,43,29,64,22,36,22,65,29,43,16,47,15,44,29,65,21,36,21,
66,29,44,13,50,14,44,29,66,21,35,20,67,29,45,11,53,11,45,29,67,20,34,20,68,29,46,8,57,8,46,29,67,20,34,20,68,29,46,6,
61,5,46,30,68,19,34,19,69,29,47,4,63,4,46,30,69,19,33,18,70,30,47,1,67,1,47,29,70,19,32,19,70,30,163,29,71,18,32,18,71,
30,61,2,37,2,61,29,72,18,31,17,73,29,59,5,35,5,58,30,72,18,31,17,73,29,58,7,33,7,57,30,73,17,30,17,74,30,55,10,31,10,
55,30,73,17,30,17,74,30,53,13,28,14,53,30,74,16,30,16,75,30,51,17,25,16,52,29,75,17,29,16,76,29,50,20,21,19,50,30,76,
16,29,15,77,30,50,21,16,22,50,30,77,15,29,15,77,30,50,26,7,25,51,30,77,15,28,15,78,30,51,57,50,30,78,15,28,15,78,31,50,
56,51,30,79,15,27,14,80,30,51,55,51,30,79,15,27,14,80,30,51,55,50,31,80,14,27,13,81,31,51,53,51,30,81,14,27,13,82,30,
51,53,51,30,82,13,27,13,82,31,50,52,51,31,82,13,26,13,83,31,51,51,51,31,82,13,26,13,83,31,51,51,50,31,84,12,26,13,84,
31,50,50,51,31,84,12,26,12,85,31,51,49,50,32,84,13,25,12,85,32,50,49,50,31,86,12,25,12,86,31,50,48,50,32,86,12,25,11,
87,32,50,47,50,32,86,12,25,11,87,32,50,47,49,32,88,11,25,11,88,32,49,47,49,32,88,11,25,11,88,32,49,46,49,32,89,11,25,
10,90,32,49,45,49,32,89,11,25,10,90,33,48,45,48,33,90,10,25,10,91,32,48,45,47,33,91,10,25,10,91,33,47,44,48,33,91,10,
25,10,91,34,46,44,47,33,92,10,25,9,93,33,47,43,46,34,92,10,25,9,93,34,46,43,46,33,93,10,25,9,94,34,45,43,45,34,94,9,25,
9,94,35,44,43,44,34,95,9,25,9,95,34,44,42,44,35,95,9,25,9,95,35,43,42,44,34,96,9,25,9,96,35,42,42,43,35,96,9,25,8,97,
36,42,41,42,35,97,9,25,8,98,36,41,41,41,36,97,9,25,8,99,36,40,41,40,36,98,8,26,8,99,37,39,41,39,36,99,8,26,8,100,37,38,
41,38,37,99,8,27,7,100,38,37,41,37,37,101,7,27,7,101,38,36,41,36,38,101,7,27,7,102,38,35,41,35,38,102,7,27,7,102,39,34,
41,34,38,103,7,27,7,103,39,33,41,33,39,103,7,27,7,104,39,32,41,32,39,104,7,27,7,104,41,30,41,30,40,104,7,29,6,105,41,
29,41,29,40,105,7,29,6,106,41,28,41,28,41,105,7,29,6,107,42,26,41,26,42,106,7,29,6,108,42,25,41,25,42,107,7,29,7,107,
44,22,42,23,43,108,6,30,7,108,44,21,42,21,45,108,6,31,6,109,45,19,42,20,45,109,6,31,6,110,46,17,43,17,46,110,6,31,6,
111,47,15,43,15,47,111,6,31,6,112,48,13,43,13,48,112,5,33,5,113,49,11,43,10,50,112,6,33,5,114,50,9,43,9,50,113,6,33,6,
113,50,8,44,9,49,114,6,33,6,114,48,9,45,8,48,115,5,35,5,115,47,9,45,8,47,116,5,35,5,117,45,8,46,9,45,116,6,35,6,117,44,
8,46,9,44,117,5,37,5,118,42,9,47,8,43,118,5,37,5,119,41,9,47,9,41,119,5,37,5,120,40,8,48,9,40,119,5,39,5,120,39,8,48,9,
38,121,5,39,5,121,37,9,49,8,37,122,5,39,5,123,35,9,49,9,35,123,4,41,5,123,34,8,50,9,34,123,5,41,5,124,32,9,51,9,31,125,
5,42,3,127,30,9,51,9,30,127,3,43,1,130,28,9,52,9,29,130,1,176,26,9,53,9,26,310,24,9,54,9,24,314,22,9,55,9,22,317,20,9,
55,9,20,320,18,9,56,10,17,324,15,10,57,9,16,327,13,9,58,10,13,331,10,10,59,9,11,335,8,9,60,10,8,339,5,10,61,9,6,344,2,
9,62,10,2,358,63,368,65,367,65,366,67,365,67,364,69,362,70,362,71,360,73,358,75,356,76,356,77,354,79,352,81,350,82,349,
84,215,2,130,86,130,3,79,5,129,87,128,6,77,6,127,89,126,6,79,6,125,91,124,7,80,6,123,93,122,7,82,6,121,95,120,7,84,6,
119,97,118,7,86,7,115,100,116,7,87,8,113,102,114,7,89,8,111,105,111,7,91,8,109,107,109,7,93,8,107,109,106,9,94,9,103,
112,104,9,96,9,101,115,101,9,98,10,97,118,98,10,100,10,95,121,95,10,102,11,91,124,92,11,104,11,89,127,88,11,107,12,85,
131,85,11,110,12,81,135,81,12,112,13,77,138,78,13,114,14,73,143,73,14,116,15,69,72,2,73,69,15,118,17,63,74,5,73,64,16,
122,17,59,75,7,75,58,18,124,19,53,77,9,77,53,19,126,22,45,79,13,78,46,21,130,24,37,82,15,81,38,24,132,28,27,85,18,86,
27,28,135,37,5,95,21,95,5,37,138,134,24,135,141,131,27,131,144,128,31,127,148,124,34,125,151,121,37,121,155,117,41,117,
159,113,45,113,163,109,49,109,167,105,53,105,171,101,57,101,175,96,62,96,181,91,67,91,185,86,72,86,191,80,78,81,196,74,
84,74,204,67,91,67,211,59,99,59,219,51,107,51,228,40,119,39,242,25,133,25,5311,0};
main(){for(puts("P1\n432 408");x[i];++i,o=!o)while(x[i]--)puts(o?"0":"1");}

1
यह स्पष्ट करना अच्छा होगा कि आपने कोड कैसे बनाया।
कूर

कोड हर वर्ण के बाद एक नई लाइन आउटपुट करता है; मुझे लगता है कि आपको जरूरत है putchar()या इसी तरह की।
मार्सेल

@marcelm - PBM P1 प्रारूप इसके साथ ठीक है!

1
मुझे पूरा यकीन है कि इसका मतलब इस सवाल के लिए होना चाहिए, लेकिन यह ओपी के साथ लेने के लायक होगा।
गेहूं जादूगर

1
मुझे नहीं लगता कि जरूरी इस्तेमाल करने का मतलब यह है कि कोई अंतर है। यह वास्तव में एक सवाल है जो आपको (या शायद) ओपी से पूछना चाहिए।
गेहूं जादूगर

15

TeX + Ti k Z, 234 230 226 बाइट्स

श्रीकोटिलिज्म ओ'जैसिक के उत्तर की तुलना में मूल रूप से 5 बाइट्स अधिक हैं , लेकिन यह सही होना चाहिए। यह उसके उत्तर के समान है, लेकिन यहां और वहां कुछ बाइट्स बचाता है, इसे एक \draw[line width=8]और अधिक की आवश्यकता है (इसके नीचे दिए गए कोड में \28](~30)to(~55);, यह 17 बाइट्स केवल इसके लिए जोड़ा गया है) प्रतीक के अधिकार को प्राप्त करने के लिए, इसलिए 5 अधिक समग्र कोड लंबाई बाइट्स।

और श्रीकोटिलिज्म ओ'जैसिक के लिए धन्यवाद, मैंने कुछ सवाल फिर से पढ़े और महसूस किया कि मैं रंग को लाल कर सकता हूं, ताकि कुछ बाइट्स फिर से बच सकें:

\input tikz\let~\def~\1{circle(}~\2{\draw[line width=}~~{\foreach~in{90:,210:,330:}}\tikz[x=1,y=1,white]{~\fill[red](~22)\130);~{\fill(~30)\121);\28](~30)to(~55);\22](~0)to(~10);}\fill\16);\27,red]\123.5);~\22](~30)\120);}\bye

TeX-g + Ti k Z, 195 बाइट्स

यदि कोई परवाह करता है, तो निम्नलिखित एक TeX- आधारित कोड गोल्फ बोली का उपयोग करता है जो मैं काम कर रहा हूं (कोड को स्थिर नहीं मानता)। बाइट की गिनती में ईओएल वर्ण और ईओएफ चरित्र शामिल हैं, क्योंकि वे शब्दार्थ रूप से उपयोग किए जाते हैं (ईओएल लॉयल के तर्क को दोहराते हैं)। बोली अब तक बहुत छोटी है और केवल परिभाषाओं और फॉर-लूप सिंटैक्स के लिए शॉर्टहैंड की सुविधा है, हालांकि यह विशेष रूप से इस उत्तर के लिए नहीं लिखा गया है, इसलिए इसे कोड गोल्फिंग के नियमों को नहीं तोड़ना चाहिए। -g.tex-पैकेज / फाइल के लिए रिपोजिटरी : https://github.com/Skillmon/TeX-g

\input-g <tikz>~"{\:~{90:,210:,330:}}~'{circle(}~_{\draw[line width=}!f\fill\tikz[x=1,y=1,white]{"f[red](~22)'30);
"f(~30)'21);_8](~30)to(~55);_2](~0)to(~10);
f'6);_7,red]'23.5);"_2](~30)'20);
}

दोनों कोड स्निपेट्स का आउटपुट समान दिखता है:

यहाँ छवि विवरण दर्ज करें

( छवि को अद्यतन करने के लिए बहुत आलसी, बस लाल होने की कल्पना करें )


मेरा उत्तर अब सही है और 2 बाइट्स आपकी तुलना में कम हैं। मुझे यकीन है कि किसी ने मेरे जवाब में से कुछ को अपने साथ जोड़कर एक छोटा बना दिया हो सकता है, लेकिन मैं आपके जवाब को काफी नहीं समझता।
गेहूं जादूगर

@ श्रीकोटिलिज्म'ओज़िक अगर मैं रंग बदलकर लाल कर दूं (नियम को फैलाएं कि रंग मनमाना हो सकता है), तो मुझे यह 230 बाइट्स में मिलता है।
14

@ SriotchilismO'Zaic और जाहिर है कि आपने मेरे जवाब में सिर्फ एक बाइट से ज्यादा की बचत की है।
14

ठीक है, मैंने आपके उत्तर को देखा और समझ में नहीं आया कि यह क्या कर रहा है इसलिए मुझे नहीं लगता कि मैं वास्तव में आपके उत्तर से बहुत अधिक ले सकता था। लेकिन मैंने वैसे भी एक सटीक संख्या निकालने के लिए संदेश को बदल दिया, क्योंकि हो सकता है कि मैंने बिना कुछ समझे आपके उत्तर में से कुछ सामान उठा लिया हो।
गेहूं जादूगर

2
@ SriotchilismO'Zaic यह ठीक है। मेरा कोड आपके बाद से प्रभावित होता है, मैं वर्तमान में TeX को किसी प्रकार की कोड गोल्फिंग भाषा में बदलने के लिए कोड गोल्फिंग पैकेज लिखने की कोशिश करता हूं। जब मैंने इसे अंततः प्रकाशित किया तो मेरा उत्तर छोटा होगा :) (यह इस प्रश्न के लिए विशेष रूप से तैयार नहीं की गई भाषा है, इसलिए यह नियमों को नहीं तोड़ती है)
Skillmon

12

GLSL, 700 629 564 545 499 बाइट्स

#define v vec2
#define j(x,r)length(x-g)<r
#define k(x,r,q)j(x,q)!=j(x,r)
#define l(b)length(g-b)<1.&&length(g-dot(g,b)*b)<(length(g)<S?A*S:A/S)
float C=.86,S=.5,F=.3,E=.22,A=.02,G=.21;void mainImage(out vec4 o,in v p){v r=iResolution.xy;v g=(p/S-r)/r.y;o.g=(k(v(0,F),G,G-A)||k(v(F*C,-F*S),G,G-A)||k(v(-F*C,-F*S),G,G-A))?o.g=0.:k(v(0),F,G)?C:l(v(0,1))||l(v(C,-S))||l(v(-C,-S))||j(v(0),.06)||j(v(0,F),G)||j(v(F*C,-F*S),G)||j(v(-F*C,-F*S),G)?0.:j(v(0,E),F)||j(v(E*C,-E*S),F)||j(v(-E*C,-E*S),F)?C:0.;}

मैं Shadertoy के साथ खेल रहा था, इसलिए मैंने GLSL छायांकन भाषा की कोशिश की। कोड केवल प्रत्येक टुकड़े का परीक्षण करके मंडलियों और रेखाओं को रेखापुंज करता है, और उन्हें एक या शून्य का मान प्रदान करता है। मैक्रोज़ के भारी उपयोग से> 1000 बाइट्स से आकार काटा गया।

Shadertoy कार्यक्रम

यहाँ छवि विवरण दर्ज करें


1
साइट पर आपका स्वागत है! नीट पहला जवाब!
गेहूं जादूगर

मैं भाषा नहीं जानता, लेकिन कर सकते हैं &&और ||करने के लिए golfed जा &और |कुछ या सभी भागों में?
केविन क्रूजसेन

@KevinCruijssen यह C का सबसेट है, इसलिए वे बिटवाइज़ ऑपरेशन होंगे। मेरे लिए संकलक हालांकि टाइप के बारे में शिकायत करता है
Roninkoi

1
@Roninkoi मैं वास्तव में देखा कि वह सी पर आधारित था सी में यह संभव उपयोग करने के लिए है |/ &के बजाय ||/ &&bools के लिए, नहीं यह कर रहा है? एक लंबे समय में सी में कुछ भी नहीं किया है, तो यकीन नहीं है। मुझे पता है कि यह ज्यादातर मामलों में जावा / सी # .NET में काम करता है। लेकिन मैंने अब केवल आपके द्वारा जोड़े गए Shadertoy लिंक को नोटिस किया है, और यह वहां काम नहीं करता जैसा आपने पहले ही कहा है। ठीक है। अच्छा पहला उत्तर btw! CGCC में आपका स्वागत है।
केविन क्रूज़सेन

मैंने पोस्ट कोड पर -30 बाइट्स काटे लेकिन हैडर साईस 566 बाइट्स, और पोस्टेड कोड 628 है?
प्रिंसपोलका

12

एसवीजी (एचटीएमएल 5), 434 410 321 बाइट्स

<svg><circle cx=60 cy=60 r=23.5 stroke-width=7 fill=#fff stroke=#000 /><use href=#g transform=translate(120,0)scale(-1,1) /><g id=g><use href=#p transform=rotate(120,60,60) /><use href=#p transform=rotate(240,60,60) /><path id=p stroke=#fff stroke-width=2 d=M55,60A5,5,0,0,1,60,55V50A20,20,0,0,1,58,10V7A31,31,0,0,0,29,43

अब @ LevelRiverSt के एसवीजी पर आधारित है।


1
मेरा मानना ​​है कि चूक <defs>सुरक्षित है। यह मेरे लिए फ़ायरफ़ॉक्स, क्रोम और एज पर काम करता है।
Arnauld

@Arnauld धन्यवाद, इसका मतलब है कि मैं पहले भी छुटकारा पा सकता हूं <use>!
नील

12

प्रसंस्करण, 371 368 बाइट्स

translate(width/2,width/2);scale(width/99);int i=0,b=204;float t=TAU/3;noStroke();for(;i<3;i++){fill(0);ellipse(0,-22,60,60);rotate(t);}for(;i<6;i++){fill(b);rect(-4,-60,8,16);ellipse(0,-30,42,42);rotate(t);}ellipse(0,0,12,12);stroke(0);strokeWeight(7);noFill();ellipse(0,0,47,47);for(;i<9;i++){strokeWeight(2);stroke(b);ellipse(0,-30,40,40);line(0,0,0,-9);rotate(t);}

मुझे यकीन नहीं था कि अगर प्रोसेसिंग को इस चुनौती के उद्देश्य के लिए rasterized या नहीं के रूप में गिनना चाहिए। यदि यह रेखापुंज के रूप में गिना जाता है, translateऔर scaleकिसी दिए गए विंडो आकार के लिए प्रतीक को सुपाठ्य और ऑन-स्क्रीन बनाना आवश्यक है। लेकिन, क्योंकि सभी ड्राइंग कमांड्स को वेक्टर किया जाता है, यह किसी भी पैमाने पर काम करता है; इसलिए यदि हम मान लें कि सापेक्ष उत्पत्ति में लगभग 200 इकाइयां चौड़ी हैं तो ठीक है, पहले 43 बाइट्स को गिराया जा सकता है।

यह मान लेता है कि बैकग्राउंड कलर 204, 204, 204प्रोसेसिंग में डिफॉल्ट बैकग्राउंड कलर है। यह भी एक हो जाती है rectModeकी CORNERऔर एक ellipseModeके CENTER(चूक)

एक प्रारंभिक के साथ size(640, 640), परिणामस्वरूप स्केच इस तरह दिखता है:

यहाँ छवि विवरण दर्ज करें

पैमाने को दोगुना करके, मैंने 3 बाइट्स बचाए, क्योंकि .5एस को समाप्त कर दिया जाता है (हालांकि कई संख्या 1 अंक से 2 अंक तक प्रवाह करती हैं)।

निर्माण TeX समाधान के समान है, आकार के बीच अंतराल को "मिटा" करने के लिए शीर्ष पर काले और फिर ग्रे ड्राइंग।

स्पष्टीकरण:

translate(width/2,width/2); // Move to the middle of the canvas
scale(width/99);            // Scale up to fill the canvas

int i=0,b=204;              // Initialize i, and `b` to the background color
float t=TAU/3;              // Save a rotation of one third, in radians

noStroke();
for(;i<3;i++){ // Draw the three big black circles
  fill(0);
  ellipse(0,-22,60,60);
  rotate(t);
}
for(;i<6;i++){
  fill(b);
  rect(-4,-60,8,16);     // "Blunt" the corners on the sharp outer rings
  ellipse(0,-30,42,42); // Cut out the middle of the big circles
  rotate(t);
}
ellipse(0,0,12,12); // Cut out the small circle in the middle
stroke(0);
strokeWeight(7);
noFill();
ellipse(0,0,47,47); // Draw the thick band that goes through all three big circles
for(;i<9;i++){
  strokeWeight(2);
  stroke(b);
  ellipse(0,-30,40,40); // Cut the "gap" between the three big rings
                        //and the band passing through them
  line(0,0,0,-16);      // Cut the lines coming out of the small middle circle
  rotate(t);
}

अच्छा लग रहा है :) मुझे लगता है कि यदि आप उन सभी मापों को दोगुना कर देते हैं जिनसे आप बच सकते हैं .5!
दोष

हां, लेकिन यह एकल अंक की संख्या को दोहरे अंक में भी बदल देगा, इसलिए मुझे यकीन नहीं है कि यह कैसे संतुलित होगा। अगर मैं सही गिना जाता हूं, तो ऐसा लगता है कि इससे 2 बाइट बच जाएंगी। मैं scaleकोड के केवल भाग के लिए इसे बदलने के लिए उपयोग करने के बारे में भी सोच रहा था , लेकिन यह सुनिश्चित नहीं था कि इसे कहां रखा जाए
कर्टिस फेनर

ओह, तुम सही हो, मैंने ऐसा नहीं माना।
निर्दोष

दशमलव को हटाने के लिए माप को दोगुना करने से मेरे उत्तर में लगभग 10 बाइट बच गए, भले ही कुछ कोर्ड सिंगल से डबल डिजिट में चले गए। एक कोशिश, वैसे भी।
ब्रैड सीपी

1
मैंने जिस पैमाने पर इसे खींचा है, उसे दोगुना करके 3 बाइट्स बचाए। @IsmaelMiguel
कर्टिस फेनर

9

GLSL, 319 310 बाइट्स

#define F float
#define H(y)sqrt(x*x+(y)*(y))
void mainImage(out vec4 D,in vec2 u){vec2 U=u*.003-.5;F x=abs(U.x),y=U.y;if(y<.577*x){F t=.5*x+.866*y;y=.866*x-.5*y;x=abs(t);}F c=F(H(y-.11)<.15);F R=H(y);F S=H(y-.15);if(S<.105)c=0.;if(R<.03)c=0.;if(x<(R<.1?.005:.02))c=0.;if(R>.10&&R<.135&&S<.095)c=1.;D=vec4(c);}

यह Shadertoy पर प्रदान किया जा सकता है ।

नमूना

आप छवि में समरूपता का उपयोग अलग-अलग आकृतियों की थोड़ी मात्रा के साथ कर सकते हैं।

यहाँ कुछ प्रचलित संस्करण है:

#define F float
#define H(y) sqrt(x*x+(y)*(y))

void mainImage(out vec4 D,in vec2 u)
{
    // normalized UV
    vec2 U = u*.003 - .5;

    // fold the 6 identical sections to the same UV coordinates
    F x = abs(U.x), y = U.y;
    if (y < .577*x)
    {
        F t = .5*x + .866*y;
        y = .866*x - .5*y;
        x = abs(t);
    }

    // circles and lines
    F c = F(H(y-.11) < .15);
    F R = H(y);
    F S = H(y-.15);
    if (S < .105) c = 0.;
    if (R < .03) c = 0.;
    if (x < (R < .1 ? .005 : .02)) c = 0.;
    if (R > .10 && R < .135 && S < .095) c = 1.;

    // output
    D = vec4(c);
}

(कुछ अनावश्यक व्हाट्सएप को हटाने के लिए @ केविन क्रूज़सेन का धन्यवाद)


1
आप कुछ रिक्त स्थान निकाल सकते हैं। आपके परिभाषित में एक: H(y) sqrtH(y)sqrt; यदि आपके बयानों पर सभी रिक्त स्थान: if (if(; और अपने अंतिम ands आसपास अगर बयान में उन: if (R>.10 && R<.135 && S<.095)c=1.;if(R>.10&&R<.135&&S<.095)c=1.;
केविन क्रूज़सेन

8

HTML / JS,  448 435 433  387 बाइट्स

@ नील के पूर्व-कम से कम संस्करण का उपयोग करके कई बाइट्स
सहेजे गए

विकिमीडिया कॉमन्स से इस एसवीजी फ़ाइल का एक संकुचित संस्करण ।

<body onload="_=`<svg~12y~24y><path id=p d=m28.8117,27.046a3,3}0qb3117q4.004v-1w539|1wq20.7959v-w583a1jxb7975x7.3228xj,8.6032x9.7443l-.4835q.2792|-18.7598q9.0989zm3.4148q8.871a10x0}0q1b453,c9w,9w{-kx3wx3w}1x6.8042,0x0x0{k>~><use href=#p transform=rotate(},cc|a10wx0w}c{}1qb1756,yc26,26) /x,1w.5q,-kb7417j5x5}1c0,b2.`;for(i of`bcjkqwxy{|}~`)with(_.split(i))_=b.innerHTML=join(pop())"id=b>

इसे ऑनलाइन आज़माएं! (बस विघटित स्ट्रिंग आउटपुट)

डेमो स्निपेट


यह क्रोम एंड्रॉइड में कोडपेन पर 392 के लिए काम करता है।
झबरा

1
@Arnauld मैंने अपना उत्तर उल्टा कर दिया है, हालांकि इसकी कीमत 5 बाइट थी (मुझे एक और अनावश्यक बाइट मिला, हालांकि कुल मिलाकर मेरा स्कोर केवल 4 से ऊपर चला गया)।
नील

@Neil तदनुसार अपडेट किया गया। ;)
अरनौल

यह पता चला है कि @ LevelRiverSt का एसवीजी बहुत छोटा है!
नील

7

हास्केल , 530 491 436 435 430 420 बाइट्स

f=fromIntegral
c(a,b)r(x,y)=(x-a)^2+(y-b)^2<r^2
(m#w)t(x,y)|c<-cos(-t),s<-sin(-t)=x*c-y*s>m&&abs(x*s+y*c)<w/2
u a p=any($p)a
i a p=all($p)a
v=(*(pi/6))<$>[9,5,1]
o=c(0,0)
h?r=[c(h*cos a,h*sin a)r|a<-v]
(h%y)x|u[i[u$11?15,(not.)$u$o 3:map(0#1)v++map(9#4)v++15?10.5],i[o 13.5,not.(o 10),u$15?9.5]](60*f x/h-30,60*f y/h-30)="0 "|0<1="1 "
g h|s<-show h,n<-[0..h-1]=writeFile"a.pbm"$unlines$"P1":(s++' ':s):[n>>=(f h%)y|y<-n]

एक पीबीएम फ़ाइल आउटपुट करता है।

इसमें बड़ा मज़ा आया!

Biohazard

(मुझे imgur पर अपलोड करने के लिए इसे पीएनजी में बदलना पड़ा)

मूल रूप से हम अपने स्वयं के वेक्टर ग्राफिक्स फ़ंक्शंस बनाते हैं, जो पिक्सेल के आकार का हिस्सा है या नहीं, यह पता लगाकर पिक्सेल द्वारा प्रस्तुत किया जाता है। आकार का निर्माण सर्कल और लाइनों के एक समूह के रूप में किया जाता है (मूल से विकिरण) मूल सेट संचालन के साथ एक साथ आयोजित किया जाता है: संघ, चौराहे, और नहीं। मंडलियां उनके केंद्र और एक त्रिज्या से बनी होती हैं, और लाइनों में एक न्यूनतम त्रिज्या, एक चौड़ाई और एक कोण होता है। किसी मंडली में सदस्यता का पता लगाना आसान है: मैं केंद्र के कोर्डर्स को घटाता हूं और परिमाण की त्रिज्या से तुलना करता हूं। रेखा थोड़ी अधिक जटिल है: मैं इसे लाने के लिए कोण के विपरीत द्वारा बिंदु को घुमाता हूं (रोटेशन को कम करने के लिए) तो मैं बस जांचता हूं कि क्या x और y निर्देशांक अपेक्षित सीमा के भीतर आते हैं। न्यूनतम त्रिज्या यह सुनिश्चित करने के लिए है कि केंद्र के पास छोटे अंतराल पर बड़े सर्कल के दूर के छोर पर बड़ा अंतर न हो। इसके बाद गणित सेट करने के लिए बूलियन तर्क का एक सरल मामला है।

संपादित करें: 39 बाइट्स हटाने के लिए @flawr को बहुत-बहुत धन्यवाद!

EDIT2: 55 बाइट्स उतारने के लिए @ क्रिसियन सिवर्स को बहुत-बहुत धन्यवाद! अच्छा विचार उन्हें कार्यों में बना रहा है

EDIT3: एक और बाइट को शेविंग करने के लिए @Christian Sievers को फिर से धन्यवाद!

EDIT4: @ H.PWiz और @Angs की बदौलत 7 बाइट्स निकाले!

EDIT5: बस एक बग देखा! मैं लाइनों को दो बार उतना ही गाढ़ा कर रहा था जितना कि वे मानने वाले थे! मुझे इसे ठीक करने के लिए 2 बाइट्स खर्च करने होंगे (चौड़ाई को 2 से भाग करना था, स्थिर मूल्यों को समायोजित कर सकते थे लेकिन 1 से 0.5 को बदलना भी 2 का अंतर होगा)।

EDIT6: धन्यवाद @Angs एक और 10 बाइट्स लेने के लिए!


वाह, यह बहुत अच्छा है। कोड-गोल्फ में किसी को अपने स्वयं के प्रकारों को परिभाषित करते हुए देखना दुर्लभ है :) दो प्रश्न: क्या नकारात्मक कोण होना आवश्यक है [-90,-210,-330]? और इसे बदलने के लिए संभव हो जाएगा <=करने के लिए <?
दोष

1
इसलिए मैं इसे करने की कोशिश करने में कामयाब रहे और बंद कुछ बाइट्स दाढ़ी
flawr

1
ओह, यदि आप नहीं जानते हैं, तो हमारे पास एक हैस्केल चैट के साथ-साथ हैस्केल में गोल्फिंग के लिए कुछ सुझाव भी हैं
दोष

1
एक और छोटा
मोड़


6

रूबी , 278 बाइट्स

puts"<svg viewBox='-60-60 120 120'><circle cx='0'cy='0'r='23.5'stroke-width='7'fill='white'stroke='red'/>",(-3..5).map{|i|"<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(#{i/3},-1)rotate(#{i*120})'/>"}

इसे ऑनलाइन आज़माएं!

नीचे दिए गए एसवीजी कोड को प्रतीक के साथ ओपी में स्केल के 200% पर बनाया जाता है।

इसमें पीछे एक सर्कल और अग्रभूमि में प्रोंग होते हैं। शूल को धुरी -1,0,1में स्केल किया जाता Xहै और 120 डिग्री के गुणकों के माध्यम से घुमाया जाता है। उन मामलों में जहां Xस्केलिंग शून्य है, कोई आउटपुट नहीं देता है, जबकि -1और +1। प्रत्येक जोड़ी के दो पक्षों को प्रदान करें।

का उपयोग करें strokeऔर stroke-widthविशेषताओं का उपयोग करते हुए, पीछे के सर्कल को काटने के लिए प्रोंग के चारों ओर 2-यूनिट चौड़ी सफेद सीमा से बना है । आंतरिक आकार के लिए ओपी के अनुसार, निर्देशांक 1 इकाई (सीमा की चौड़ाई से आधा) द्वारा स्थानांतरित किए जाते हैं। ध्यान दें कि सीमा के अंतिम रेखा के आरेखण को दबाने के लिए पथ को जानबूझकर बंद नहीं किया गया है। यह सुनिश्चित करता है कि प्रत्येक जोड़ी के दो हिस्सों को एक साथ जोड़ा जाए।

गोल्फिंग कारणों से, आंतरिक चक्र की 90 डिग्री अपेक्षित 60 के बजाय खींची जाती है। इसका मतलब है कि प्रत्येक जोड़ी के आधारों के बीच कुछ ओवरलैप है, लेकिन यह आउटपुट आकार की उपस्थिति को प्रभावित नहीं करता है।

<svg viewBox='-60-60 120 120'><circle cx='0'cy='0'r='23.5'stroke-width='7'fill='white'stroke='red'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(-1,-1)rotate(-360)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(-1,-1)rotate(-240)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(-1,-1)rotate(-120)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(0,-1)rotate(0)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(0,-1)rotate(120)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(0,-1)rotate(240)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(1,-1)rotate(360)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(1,-1)rotate(480)'/>
<path fill='red'stroke='white'stroke-width='2'd='M5 0A5 5 0 0 1 0 5v5A20 20 0 0 1 2 50v3A31 31 0 0 0 31 17'transform='scale(1,-1)rotate(600)'/>


6

पोस्टस्क्रिप्ट , 367 359 328 271 बाइट्स

कोड (संपीड़ित संस्करण):

5 5 scale 36 24 translate <</c{0 360 arc closepath}/r{120 rotate}/R{repeat}/L{setlinewidth}/g{setgray}/F{fill}>>begin 3{0 11 15 c F r}R 1 g 3{0 15 10.5 c F r}R 0 0 3 c F 3{[-.5 2 1 3 -2 25 4 3]rectfill r}R 0 g 4 L 0 0 11.5 c stroke 1 g 1 L 3{0 15 10 c stroke r}R showpage

कोड (असम्पीडित संस्करण):

5 5 scale                  % over-all scale
36 24 translate            % over-all shift

% define some short-named procedures for later use
<<
  /c { 0 360 arc closepath }  % append circle (x, y, radius are taken from stack)
  /r { 120 rotate }           % rotate by 120°
  /R { repeat }
  /L { setlinewidth }
  /g { setgray }
  /F { fill }
>> begin

3 {
    0 11 15 c F       % black circle
    r                 % rotate by 120°
} R
1 g                   % set white color
3 {
    0 15 10.5 c F     % white circle
    r                 % rotate by 120°
} R
0 0 3 c F             % small white circle
3 {
    [ -.5 2 1 3       % white gap near center
      -2 25 4 3       % white gap on edge
    ] rectfill
    r                 % rotate by 120°
} R
0 g                   % set black color
4 L                   % set linewidth 4
0 0 11.5 c stroke     % black ring
1 g                   % set white color
1 L                   % set linewidth 1
3 {
    0 15 10 c stroke  % white ring
    r                 % rotate by 120°
} R
showpage

परिणाम (यह कैसे खींचा जाता है यह देखने के लिए एनीमेशन):

नतीजा


महान एनीमेशन।
दाना

2

अजगर के साथ पायथन 3, 327 314 287 278 बाइट्स

(13 अलग-अलग बाइट्स को बचाने के लिए विभिन्न गंदा हैक्स लगाए गए; सबसे विशेष रूप से अब रंग को स्टोर करना नहीं है, लेकिन इसके साथ मक्खी पर गणना करना -(r>25))
(कार्य करने के लिए मना कर sysदिया , खोना ; mathसमन्वित स्थिरांक के पक्ष में हैक किया गया; छोटे tweaks; 27 बाइट्स बचाया)
(फिर से समन्वयित करें ) 9 (बाइट्स की बचत ) साइन करने के लिए जटिल गणित ट्रिक्स के लिए स्थिरांक ,

परिणामी छवि के आधे चौड़ाई / ऊंचाई का प्रतिनिधित्व करने वाला एक पूर्णांक तर्क लेता है। जैसे f(500)कि एक 1000x1000 पिक्सेल की विंडो बनाई जाएगी, और वहां एक बायोहाज़र्ड प्रतीक बनाया जाएगा।

from pygame import*;D=display
def f(S):
 u=D.set_mode([S*2]*2);b=S>>6
 for p,r,w in(22,30,0),(30,20,0),(0,27,7),(30,21,2),(0,6,0),(51,4,0):
  for l in 0,4/3,8/3:Z=1j**l*p*b;q=S+int(Z.imag),S-int(Z.real);draw.circle(u,-(r>25),q,r*b,w*b);r-20or draw.line(u,0,(S,S),q,b*2);D.flip()

Unshortened संस्करण:

import pygame
import math
import sys

size = int(sys.argv[1])
basic = size // 55

screen = pygame.display.set_mode((size * 2, size * 2))

circles = [
    (22, 30, 0, -1),  # basic shape
    (30, 20, 0, 0),   # large cutouts
    (0, 27, 7, -1),   # "background circle"
    (30, 21, 2, 0),   # "background circle" clearance
    (0, 6, 0, 0),     # center disc
    (51, 4, 0, 0),    # blunt the points
]

for pos, radius, width, color in circles:
    for lobe in [0, math.pi * 2 / 3, math.pi * 4 / 3]:
        x = int(math.sin(lobe) * pos * basic) + size
        y = size - int(pos * basic * math.cos(lobe))
        pygame.draw.circle(screen, color, (x, y), radius * basic, width * basic)
        # Hack to draw the small slots in the center
        if radius == 20:
            pygame.draw.line(screen, 0, (size, size), (x, y), basic * 2)

pygame.display.flip()

इस कार्यक्रम की कुंजी ज्यादातर प्रतीक के 3-तरफा बिंदु समरूपता का शोषण कर रही है, और ड्राइंग के संचालन को संभव के रूप में व्यक्त कर रही है। यह सब का दिल है circles, जो सर्कल परिभाषाओं की एक सूची है, जिसमें केवल शामिल हैं:

  • position: आधी मूल इकाइयों में उत्पत्ति से कितनी दूर है
  • radius: आधी मूल इकाइयों में वृत्त की त्रिज्या
  • width: सर्कल की सीमा चौड़ाई (बाहरी सर्कल से अंदर की ओर, 0 = भराव)
  • color: इस तथ्य का शोषण कि pygame 0काला और -1सफेद के रूप में व्याख्या करता है

प्रत्येक ड्राइंग ऑपरेशन को तीन बार दोहराया जाता है, 120 ° घुमाया जाता है। "पंजे" का कुंद एक और सर्कल के साथ किया जाता है। अंदर "लाइन कट्स" विशेष आवरण वाले हैं क्योंकि मैं उन्हें वहां लाने के लिए अधिक कुशल तरीके के बारे में नहीं सोच सकता। "बुनियादी इकाई" विनिर्देश में निर्धारित यहाँ दोगुनी तो मैं उपयोग करने के लिए नहीं था है .5में circlesऔर int()जगह सभी pygame को पूरा करने के।

परिणाम python3 -c 'from biohazard import *; f(500)':

इस उत्तर का आउटपुट प्रदर्शित करें


1
अच्छी नौकरी और CGCC में आपका स्वागत है! जब एक गैर-निर्मित लाइब्रेरी का उपयोग किया जाता है, तो विवरण को "पायथन 3 + pygame" कहना चाहिए। sysमॉड्यूल को आयात करने से बचने के लिए इनपुट को मानक इनपुट से या फ़ंक्शन तर्क के रूप में लिया जा सकता है , जो कोड को छोटा करता है ( नियम देखें )। साथ ही, आयात करने की आवश्यकता से बचने के लिए इस ट्रिक को लागू किया जा सकता है math
जोएल

@Joel प्रतिक्रिया के लिए धन्यवाद! मैंने हेडर में pygame को शामिल किया, और कोड को फ़ंक्शन में बदल दिया। के रूप में math, मैं निर्देशांक की एक सूची के लिए कि refactored; यह वैसे भी उनमें से केवल 3 था। नहीं (सह) साइन आवश्यक है।
मार्सेल

1
उपर्युक्त चाल को लागू करने से वास्तव में सभी नंबरों को स्रोत कोड में डालने से अधिक बाइट्स की बचत होती है।
जोएल

@Joel अनुस्मारक के लिए धन्यवाद; पहले मैंने उस विकल्प को छोड़ दिया क्योंकि यह लंबा लग रहा था लेकिन ऐसा लग रहा है कि मैं गलत था। इसने कुछ और अनुकूलन भी किए।
18

1

Tcl / Tk - 557 बाइट्स

set F #000
set B #F50
pack [canvas .c -bg $B]
rename expr e
rename foreach f
rename proc p
p R r {list [e $r*cos($::a)] [e $r*sin($::a)]}
p D {d r} {lassign [R $d] x y;list [e $x-$r] [e $y-$r] [e $x+$r] [e $y+$r]}
p C {d r c} {.c cr o {*}[D $d $r] -f $c -outline $c}
p L {p q w} {.c cr l {*}[R $p] {*}[R $q] -w [e $w] -f $::B}
p A {d r w c} {.c cr a {*}[D $d $r] -w [e $w] -star 0 -ex 359.9 -sty arc -outline $c}
f x {{C 11 15 $F} {C 15 10.5 $B} {L 0 5 1} {L 20 40 4} {C 0 3 $B} {A 0 11.75 3.5 $F} {A 15 10 1 $B}} {f a {2.62 4.72 6.81} $x}
.c move all 99 99

हालाँकि, यह संस्करण उबाऊ है, क्योंकि आपको वही छोटे आकार की छवि मिलती है, इससे कोई फर्क नहीं पड़ता। यह ऑन-स्क्रीन प्रदर्शित करने के लिए ओपी स्थितियों को संतुष्ट करता है। यहाँ टिप्पणी के साथ असम्पीडित संस्करण है और इसमें जोड़े गए आकार को निर्दिष्ट करने की क्षमता है:

# Input: command line argument is the pixel width (same as the height) of the window to create
# For example:
#   wish a.tcl 500
set window_size $argv

set foreground_color #000
set background_color #F50
pack [canvas .c -bg $background_color -width $window_size -height $window_size]

# Helper procs to generate x,y coordinates
proc radius->x,y r {
  list [expr {$r*cos($::angle)}] [expr {$r*sin($::angle)}]
}

proc center_offset,radius->rectangle {offset r} {
  lassign [radius->x,y $offset] x y
  list [expr {$x-$r}] [expr {$y-$r}] [expr {$x+$r}] [expr {$y+$r}]
}

# Tk's canvas does not scale line widths, so we have to do that manually
# The $scale is a global variable for compressing the code text above
set scale [expr {$window_size*.016}]

# These three procs draw items in the canvas
proc circle {offset r color} {
  .c create oval {*}[center_offset,radius->rectangle $offset $r] -fill $color -outline $color
}
proc line {p q w} {
  .c create line {*}[radius->x,y $p] {*}[radius->x,y $q] -width [expr {$::scale*$w}] -fill $::background_color
}
proc annulus {offset r w color} {
  .c create arc {*}[center_offset,radius->rectangle $offset $r] -width [expr {$::scale*$w}] -start 0 -extent 359.9 -style arc -outline $color
}

# Our list of shapes to draw
#  circle  center_offset, radius,                   color
#  line    end_offset_1,  end_offset_2, line_width
#  annulus center_offset, radius,       line_width, color
foreach command {
  {circle  11 15        $foreground_color}
  {circle  15 10.5      $background_color}
  {line     0  5    1}
  {line    20 40    4}
  {circle   0  3        $background_color}
  {annulus  0 11.75 3.5 $foreground_color}
  {annulus 15 10    1   $background_color}
} {
  # Each command gets applied thrice, rotated $angle radians each time
  foreach angle {2.62 4.72 6.81} $command
}

.c scale all 0 0 $scale $scale
.c move all [expr {$window_size/2}] [expr {$window_size/2}]

# Some random convenience stuff for playing with it
bind . <Escape> exit
after 500 {focus -force .}

क्षमा करें, कोई चित्र नहीं (आज मेरा फ़ोन बंद है)। एक बायोहाजर्ड नारंगी पृष्ठभूमि पर एक काला प्रतीक का उत्पादन करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.