€ साइन ड्रा करें


61

लक्ष्य एक € (यूरो) चिह्न के साथ एक छवि को आउटपुट या प्रदर्शित करना है, जो निम्नलिखित चश्मे (संकेत की सीमा की अनदेखी) के अनुसार है।

€ साइन

स्रोत: http://en.wikipedia.org/wiki/File:Euro_Construction.svg

नियम:

  • प्रोग्राम / स्क्रिप्ट को एक तर्क के रूप में पिक्सेल में साइन की ऊंचाई लेनी चाहिए (साइन के चारों ओर खाली स्थान वैकल्पिक है)
  • संकेत के रूप में या एक अक्षर से तैयार नहीं किया जा सकता, सीधे (यह करने के लिए मना किया है परोक्ष रूप से छवि में) या (की गणना तो एक HTML पृष्ठ में प्रदर्शित)print8364
  • आउटपुट को किसी फ़ाइल में सहेजने की आवश्यकता नहीं है, इसे तब प्रदर्शित किया जा सकता है, बस एक स्क्रीनशॉट के रूप में दिखाया गया है
  • मानक "कमियां" निषिद्ध हैं
  • सबसे छोटा कोड जीतता है

7
मुश्किल ! यह मेरी ज्यामिति / त्रिकोणमिति की समीक्षा करने का समय है। मैं कुछ निर्देशांक को कम करने के लिए काफी मुश्किल देखता हूं।
माइकल एम।

5
मुझे "मुखर" देखना था
डिजिटल ट्रॉमा

2
मैं वास्तव में एक LaTeX + TikZ उत्तर की उम्मीद कर रहा हूं :)
कोल जॉनसन

12
यूरो के बिना, यह समस्या मौजूद नहीं होगी, जिससे एक बार फिर "मो मनी मो समस्याओं" की सच्चाई का प्रदर्शन हो सकेगा
थॉमस जॉनसन

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

जवाबों:


22

पोस्टस्क्रिप्ट / घोस्टस्क्रिप्ट, 100

(कार्यक्रम के लिए 96, कमांड लाइन स्विच उपसर्ग के लिए 4)

पूरी तरह से गोल्फ और हाथ से टोकन:

$ hexdump -C euro.ps
00000000  68 20 88 78 92 36 92 38  92 8b 88 4b 88 3c 92 ad  |h .x.6.8...K.<..|
00000010  88 00 88 00 88 3c 88 2d  88 ce 92 05 88 00 88 00  |.....<.-........|
00000020  88 32 88 d8 88 28 92 06  92 16 88 b9 88 fb 92 6b  |.2...(.........k|
00000030  88 b5 88 f1 92 63 88 13  88 f1 92 63 88 17 88 fb  |.....c.....c....|
00000040  92 63 92 16 88 b9 88 0f  92 6b 88 b5 88 05 92 63  |.c.......k.....c|
00000050  88 1b 88 05 92 63 88 1f  88 0f 92 63 92 16 92 42  |.....c.....c...B|
00000060

आप यहां एक प्रति प्राप्त कर सकते हैं , अपने स्वयं के देखने के लिए।

@ थॉमसडब्ल्यू के जवाब को देखने के बाद, और मेरे कार्यक्रम को ध्यान से देखते हुए, मुझे एहसास हुआ कि मैं इसे और भी बेहतर कर सकता हूं।

टोकन संस्करण इसके बराबर है:

h 120 div dup scale
75 60 translate

0 0 60 45 -50 arc
0 0 50 -40 40 arcn
closepath

-71 -5 moveto
-75 -15 lineto
19 -15 lineto
23 -5 lineto
closepath

-71 15 moveto
-75 5 lineto
27 5 lineto
31 15 lineto
closepath

fill

अनुकूलन का स्पष्टीकरण:

सबसे पहले, मैंने अपना पहला समाधान कुछ सरल उप-केंद्रों के एक संघ में परिवर्तित किया, न कि एक पथ के बजाय पूरी चीज़ का चक्कर लगाया। मैंने एक पैरामीटर को इनपुट करने के लिए थॉमस के तरीके को उधार लिया, जो मेरे पास जितना था उससे कहीं बेहतर है।

फिर मैंने 10 से सभी निर्देशांक गुणा किया और मुझे पूर्णांक निर्देशांक देने के लिए सब कुछ बंद कर दिया। मैंने भी कोणों को गोल किया, और दो बड़े लोगों को बराबर नकारात्मक कोणों में परिवर्तित किया। यह आसानी से -128 और 127 के बीच की हर एक संख्या को कम करता है।

और फिर मैंने सब कुछ टोकन कर दिया । प्रत्येक ऑपरेटर को प्रत्येक दो-बाइट अनुक्रम के साथ प्रतिनिधित्व किया जा सकता है। और क्योंकि प्रत्येक संख्या को एक हस्ताक्षरित बाइट द्वारा दर्शाया जा सकता है, प्रत्येक एक भी केवल दो बाइट्स बन जाता है। एकमात्र हिस्सा जो मैं hशुरू में नहीं कर सका था , लेकिन यह भी केवल दो बाइट्स हैं, बस hऔर इसके बाद एक स्थान।

इसे इस रूप में चलाएं:

gs -dh=200 euro.ps

200 पीटी ऊँची

gs -dh=80 euro.ps

80 पीटी ऊँचा

gs -dh=20 euro.ps

20 पीटी ऊँचा


नया: इससे भी छोटे संस्करण!

एन्कोडेड उपयोगकर्ता पथों का उपयोग करते हुए, मैं प्रोग्राम आकार को कुछ बाइट्स से कम करने में कामयाब रहा। इनमें से प्रत्येक प्रोग्राम पहले वाले के बराबर है, समान आउटपुट का उत्पादन कर रहा है:

92 बाइट्स:

hexdump -C euro.ps
00000000  68 20 88 78 92 36 92 38  92 8b 88 4b 88 3c 92 ad  |h .x.6.8...K.<..|
00000010  7b 7b 88 b5 88 c4 88 2d  88 3c 30 20 30 88 3c 88  |{{.....-.<0 0.<.|
00000020  2d 88 cf 30 20 30 88 32  88 d8 88 28 88 b9 88 fb  |-..0 0.2...(....|
00000030  88 b5 88 f1 88 13 88 f1  88 17 88 fb 88 b9 88 0f  |................|
00000040  88 b5 35 88 1b 35 88 1f  88 0f 7d 8e 0b 00 07 08  |..5..5....}.....|
00000050  0a 01 23 03 0a 01 23 03  0a 7d 92 b3              |..#...#..}..|
0000005c

जो इसके बराबर है:

h 120 div dup scale
75 60 translate
{
 {-75 -60 45 60
  0 0 60 45 -50
  0 0 50 -40 40
  -71 -5
  -75 -15
  19 -15
  23 -5
  -71 15
  -75 5
  27 5
  31 15}
  <00 07 08 0A 01 03 03 03 0A 01 03 03 03 0A> 
} ufill

और थोड़ा सा उलझाऊ भ्रमित समाधान एक और चरित्र को बचाता है, केवल 91 के लिए:

$ hexdump -C euro.ps
00000000  68 20 88 78 92 36 92 38  92 8b 88 4b 88 3c 92 ad  |h .x.6.8...K.<..|
00000010  5b 5b 8e 1e b5 c4 2d 3c  00 00 3c 2d ce 00 00 32  |[[....-<..<-...2|
00000020  d8 28 b9 fb b5 f1 13 f1  17 fb b9 0f b5 05 1b 05  |.(..............|
00000030  1f 0f 7b 92 38 88 7f 92  50 7b 32 35 36 92 a9 7d  |..{.8...P{256..}|
00000040  92 54 7d 92 49 5d 92 32  8e 0b 00 07 08 0a 01 23  |.T}.I].2.......#|
00000050  03 0a 01 23 03 0a 5d 92  32 92 b3                 |...#..].2..|
0000005b

जो इसके बराबर है:

h 120 div dup scale
75 60 translate
[
  [
   <b5 c4 2d 3c
    00 00 3c 2d ce
    00 00 32 d8 28
    b9 fb
    b5 f1
    13 f1
    17 fb
    b9 0f
    b5 05
    1b 05
    1f 0f> {dup 127 gt {256 sub} if} forall 
  ] cvx
  <00 07 08 0A 01 23 03 0A 01 23 03 0A> 
] cvx
ufill

1
अच्छा कार्य! मुझे लगता है कि मुझे बाइनरी टोकन के बारे में सब सीखना होगा ।
थॉमस डब्ल्यू

@ThomasW। हालाँकि मैं अभी पूरी तरह से नहीं हुआ हूँ; मैं अभी भी एन्कोडेड पथ स्ट्रिंग्स प्रलेखन के माध्यम से पढ़ रहा हूँ ...
AJMansfield

hबाइनरी टोकन स्व-परिसीमन होने के बाद आपको स्थान की आवश्यकता नहीं है । BTW, आपने इसे कैसे कोड किया? मैंने इसे एक मानक हेक्स संपादक के साथ किया, जो थकाऊ है।
थॉमस डब्ल्यू

2
@ n.1 टोकन फ़ाइलें नियमित पोस्टस्क्रिप्ट फ़ाइलों के समान ही काम करती हैं, और आप एक ही फाइल में बाइनरी टोकन और मानक प्लेटेक्स्ट पोस्टस्क्रिप्ट भी मिला सकते हैं। प्रत्येक बाइनरी टोकन सीधे ऑपरेटर या अन्य ऑब्जेक्ट से मेल खाती है, इसलिए आप आसानी से ऑपरेशन को बदल सकते हैं या डाल सकते हैं, या किसी अन्य प्रोग्राम में स्निपेट की प्रतिलिपि भी बना सकते हैं। टोकन प्रपत्र के बारे में सटीक विवरण पोस्टस्क्रिप्ट भाषा संदर्भ मैनुअल (लाल किताब) खंड 3.12 में पाया जा सकता है । एन्कोडेड उपयोगकर्ता पथ 4.6.2 में वर्णित हैं।
AJMansfield

1
@ n.1 मैंने फ़ाइल लिखने के लिए एक हेक्स एडिटर का इस्तेमाल किया, इस कारण से। टोकन सीमांकक बाइट्स आमतौर पर आईएसओ-लैटिन -1 और अन्य निश्चित-चौड़ाई वाले एन्कोडिंग में वर्णों को नियंत्रित करने के लिए अनुरूप होता है, लेकिन अगर संपादक इसे UTF-8 या किसी अन्य चर-चौड़ाई एन्कोडिंग में व्याख्या कर रहा है, तो आपको सामान मिलेगा, उसी तरह अन्य फ़ाइल जिसमें बाइनरी डेटा शामिल है।
AJMansfield

50

गणितज्ञ, 193 183 177 173 169 166 बाइट्स

याय, मैथ्स! मैं उस क्षेत्र की साजिश कर रहा हूं जो असमानताओं के एक निश्चित (बल्कि जटिल) सेट को संतुष्ट करता है:

e=RegionPlot[(1<Abs@y<3||c)&&{x,y+12}.(d=2{-5Sin@40°-6,m=5Cos@40°})*{x+15,y+1-2Sign@y}.d<0||c&&x<2m/.c->100<x^2+y^2<144,{x,-15,9},{y,-12,12},Frame->0>1,ImageSize->#]&

उपयोग है e[height], जैसे e[100]:

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

या e[200]:

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

आप देख सकते हैं, कि तेज किनारों को थोड़ा गोल किया गया है। ऐसा इसलिए है क्योंकि इस क्षेत्र को केवल अंतरिक्ष में बिंदुओं के नमूने द्वारा प्लॉट किया जा सकता है, और गणितज्ञ डिफ़ॉल्ट रूप से प्रत्येक पिक्सेल का नमूना नहीं लेता है। एक अन्य विकल्प PlotPoints->#(जो प्रति पिक्सेल एक नमूना का उपयोग करता है) को जोड़कर नमूना रिज़ॉल्यूशन को बढ़ाया जा सकता है , जिसमें 14 वर्ण शामिल हैं । मैं इसे उस विकल्प के साथ चलाने की सलाह नहीं देता, क्योंकि यह रनटाइम को काफी बढ़ाता है और बमुश्किल दृश्य अपील को इससे आगे बढ़ाता #/4है। इसलिए, (ओपी के अनुमोदन के बाद) यह स्कोर में शामिल नहीं है।

यहाँ एक थोड़ा ungolfed संस्करण है:

e[height_] := (
  angle = 40°;
  d = {-5 Sin[angle] - 6, 5 Cos[angle]};
  RegionPlot[
      (Abs[y] > .5 && Abs[y] < 1.5
        ||
       r > 25 && r < 36)
    &&
      {x, y + 6}.d > 0
    &&
      {x + 7.5, y + .5 - Sign[y]}.d < 0
    ||
      r > 25 && r < 36 && x < 5 Cos[angle] 
    /. r -> x^2 + y^2
    ,
    {x, -7.5, 4.5},
    {y, -6, 6},
    Frame -> False,
    ImageSize -> height
  ]
);

ध्यान दें कि गोल्फ संस्करण में, मैंने .5एस से बचने के लिए समन्वित प्रणाली को 2 के एक कारक द्वारा बढ़ाया है , लेकिन यह पता चलता है कि वर्ण गणना वास्तव में समान है।

यहाँ कैसे सूत्र काम किया के लिए एक स्पष्टीकरण है। मैंने आकृति को दो क्षेत्रों में विभाजित किया है। एक अंगूठी और धारियों होता है और साथ सही करने के लिए काट दिया जाता है BCDEढलान और साथ बाईं ओर IJऔर GHढलानों (जो बाद में पर और अधिक)। दूसरे में एक ही वलय होता है, लेकिन बिंदु के x निर्देशांक पर बस काट दिया जाता है D। दोनों क्षेत्रों के लिए शर्तें संयुक्त हैं ||, जो यहां एक सेट संघ के रूप में कार्य करता है।

अंगूठी को केवल इस रूप में परिभाषित किया गया है 5 < r < 6, जहां rउत्पत्ति से दूरी है। हालांकि बाहर काम करना आसान है ( x²+y²), इसलिए मैं 25 < x² + y² < 36रिंग में सभी बिंदुओं को प्राप्त करने के लिए उपयोग कर रहा हूं ।

धारियों के बीच ±.5और हैं ±1.5। हम दोनों धारियों को एक ही समय में, y के मापांक द्वारा संभाल सकते हैं , इसलिए धारियां (अनंत लंबाई की) बस पूरी होती हैं .5 < |y| < 1.5। फिर, धारियों और अंगूठी के मिलन के लिए, मैं बस उपयोग कर रहा हूं ||

दिलचस्प बात शायद यह है कि "मास्क" कैसे प्राप्त करें। प्वाइंट Dका एक x समन्वय है 5 cos 40°, इसलिए निचले किनारे की देखभाल करने वाला मास्क (केवल रिंग के साथ संयुक्त) है x < 5 cos 40°। यह सेट चौराहे के माध्यम से लागू किया जा सकता है जो &&तर्क में अनुवाद करता है।

अन्य मुखौटे वास्तव में मुश्किल हिस्सा हैं। पहले, चलो ढलान मिलता है BCDE। हम क्रमशः और , क्रमशः Cऔर D, के रूप में अंक बना सकते हैं । सदिश रेखा के साथ इंगित करता है तो बस । मास्क को दाईं ओर लगाने के लिए, मुझे केवल यह पता लगाने की ज़रूरत है कि कोई बिंदु उस रेखा के बाईं ओर या दाईं ओर स्थित है (चलो वेक्टर वेक्टर कहते हैं )। मैं से वेक्टर लेने के द्वारा यह पता लगा सकते हैं ब्याज की मेरी बात करने के लिए और एक वेक्टर पर इसे पेश सीधा करने के लिए । प्रक्षेपण का संकेत मुझे उस पक्ष को बताएगा जिस बिंदु पर है। 2 डी में लंबवत वेक्टर को प्राप्त करना बहुत सरल है: निर्देशांक फ्लिप करें और उनमें से एक के संकेत को उल्टा करें। मेरे कोड में वह चर है:(0, -6)5 (cos 40°, sin 40°)D - C = (5 cos 40°, 5 sin 40° + 6)pCpd(-5 sin 40° - 6, 5 cos 40°)Cब्याज के बिंदु से वेक्टर q = (x, y)है q - C = (x, y + 6)। प्रक्षेपण के बीच सिर्फ अदिश उत्पाद (या डॉट उत्पाद) है qऔर d। जिस तरह से मैंने चुना dवह बाईं ओर इंगित करने के लिए होता है, इसलिए मैं चाहता हूं d.(q-C) > 0। यह स्थिति दाएं हाथ के मास्क पर लागू होती है।

बाएं हाथ के मुखौटे के लिए मैं मूल रूप से एक ही विचार का उपयोग कर सकता हूं। ढलान समान है और इसलिए ऐसा है d। मुझे बस अपनी बात को धारियों के निचले-बाएँ कोनों से ऑफसेट करने की आवश्यकता है C। वे निर्देशांक (-7.5, 0.5)(ऊपरी पट्टी) और (-7.5, -1.5)(निचले पट्टी) हैं। तो यह दो धारियों के लिए दो स्वतंत्र नियमों के लिए कहेंगे। हालांकि, ध्यान दें कि निचले मास्क से प्रभावित सभी बिंदु निचली पट्टी में होते हैं और इसलिए नकारात्मक y होते हैं । और ऊपरी मास्क से प्रभावित सभी बिंदुओं में सकारात्मक वाई है । इसलिए मैं बस अपने ऑफसेट को स्विच कर सकता हूं, Sign[y]जिसका उपयोग 1सकारात्मक और -1नकारात्मक के लिए है y। तो मेरा ऑफसेट बिंदु बन जाता है(-7.5, -0.5 + Sign[y])। अन्यथा मास्क दाएं हाथ के मास्क की तरह ही काम करता है। बेशक, इस बार प्रक्षेपण को नकारात्मक होना चाहिए। तो, भोलेपन जैसा कुछ होगा RH-projection > 0 && LH-projection < 0(जो कि मूल रूप से कोड में भी था)। लेकिन हम इसे छोटा कर सकते हैं, क्योंकि एक सकारात्मक और एक नकारात्मक संख्या को गुणा करने पर एक नकारात्मक संख्या देनी होती है, इसलिए यह सिर्फ RH * LH < 0(जहां RHऔर LHसंबंधित अनुमान हैं)।

बस। इसे सभी को एक साथ रखकर निम्नलिखित तार्किक संरचना की ओर जाता है:

(
  (is_in_circle || is_in_stripe)
  &&
  is_between_left_and_right_mask
)
||
(
  is_in_circle && left_of_edge
)

बस स्पष्ट होने के लिए, मेरे स्पष्टीकरण में निर्देशांक चुनौती में दिए गए निर्माण आरेख को संदर्भित करते हैं। जैसा कि मेरे कोड के ऊपर उल्लेख किया गया है, वास्तव में उन सभी को गुणा करता है 2- मैंने इसे बाइट्स को बचाने के लिए बदल दिया है, लेकिन बाइट की गिनती वास्तव में समान है, और मुझे फिर से परिवर्तन को वापस करने के लिए परेशान नहीं किया जा सकता है। इसके अलावा पूर्णांक अच्छे लगते हैं।


1
मैं गणितज्ञों के लिए अपेक्षाकृत नया हूं, इसलिए मैं आपके कोड पर कुछ टिप्पणियों की सराहना करूंगा!
थॉमस डब्ल्यू

2
@ThomasW। ठीक है, वास्तविक मैथेमेटिका सामान केवल एक कॉल है RegionPlotजो अंतरिक्ष में सभी बिंदुओं पर रंग देता है जो किसी दिए गए शर्त को पूरा करता है। इसलिए इसे देने x^2+y^2<1से एक यूनिट सर्कल तैयार होगा। मैं वास्तविक गणित के लिए एक स्पष्टीकरण जोड़ूंगा, हालांकि (बाद में आज रात)।
मार्टिन एंडर

1
गोल किनारों के साथ कोड की लंबाई क्या है? मुझे लगता है कि आपके पास इस समय का सबसे छोटा कोड है, लेकिन मैं आपके उत्तर को गोल कोनों के साथ स्वीकार नहीं कर सकता, यह अन्य उत्तरों के साथ अनुचित होगा, जिन्होंने गोल कोनों को नहीं किया है। कृपया विनिर्देशों का सख्ती से पालन करें। साभार
AL

@ n.1 जब तक आप थॉमस डब्ल्यू के पोस्टस्क्रिप्ट उत्तर को अयोग्य घोषित कर रहे हैं, क्योंकि यह द्विआधारी है या क्योंकि यह बहुत आक्रामक रूप से गोल है, तो उसका उत्तर निश्चित रूप से छोटा है। हालाँकि, संकल्प को ठीक करने में 14 वर्ण लगते हैं, इसलिए मेरा उत्तर उसके बाद भी सबसे छोटा है। मैं संपादित करूँगा।
मार्टिन एंडर

1
@ThomasW। तुम वहाँ जाओ!
मार्टिन एंडर

29

बीबीसी बेसिक, 202

INPUTh:w=h/12s=w/2.4p=25VDU22,6,29,640;400;p,4,0;1.5*w;p,153,6*w;0;p,4,0;1.5*w;p,159,h/3.1;4.7*w;p;9*s;9*w;p,87,h/3.1;-19*w;p,4,-7.5*w;0;p;s;w;p,85,4.5*s;0;p,81,s;w;p;s;w;p;s;w;p,85,-7.5*w;2*w;p,81,s;w;

http://www.bbcbasic.co.uk/bbcwin/bbcwin.html पर एमुलेटर डाउनलोड करें

बीबीसी बेसिक में, सभी ग्राफिक्स मशीन-विशिष्ट ASCII नियंत्रण वर्ण (लेकिन कुछ उच्च स्तरीय कमांड भी सुविधा के लिए आम लोगों के लिए उपलब्ध हैं) का उपयोग करते हुए निम्न स्तर पर नियंत्रित किए जाते हैं । यहां इस्तेमाल किए गए 22 (परिवर्तन प्रदर्शन मोड) 29 हैं। उत्पत्ति) और 25, PLOT स्टेटमेंट के समतुल्य, जो X और Y मापदंडों से पहले एक अतिरिक्त एक्शन पैरामीटर (ड्रॉ लाइन, सर्कल, ट्रायएंगल इत्यादि को बैकग्राउंड / फोरग्राउंड में रिलेटिव / एब्सोल्यूट मूव) के साथ लेता है।

इसलिए मुझे केवल इतना करना होगा कि पात्रों के भार को VDU कंट्रोलर के पास भेजा जाए। अर्धविराम में समाप्त किए गए मान 16 बिट हैं। अन्य 8 बिट हैं। VDU नियंत्रक को भेजी जाने वाली बाइट की कुल संख्या 91 है , हालांकि यह अपने आप में एक जवाब के रूप में योग्य नहीं होगी क्योंकि उस स्तर तक आकार हार्डकोड है।

उत्पत्ति के लिए स्पष्ट स्थान सर्कल का केंद्र है, लेकिन वास्तव में सलाखों के उत्पादन में अधिक कमांड शामिल हैं। इसलिए मैंने मूल को निचले पट्टी के 1.5 से नीचे स्थानांतरित कर दिया, जिससे आवश्यक अंश और नकारात्मक संख्या कम हो जाती है। यह सर्कल के केंद्र के साथ ऊर्ध्वाधर रेखा पर रहता है, जो महत्वपूर्ण है क्योंकि लाइन इस ऊर्ध्वाधर रेखा से शुरू होती है।

दरअसल, मुझे केवल ड्राइंग से 3 संख्याओं की गणना करनी थी: सी शेप का शीर्ष आंतरिक कोना (5 cos 40, 5 sin 40 + 1.5) = (3.8302,3.1394 + 1.5) = लगभग (12 / 3.1, 4.6) और रेखा का ढाल E: x / y = 3.8302 / (6 + 3.1394) = 0.4157 = लगभग 1 / 2.4

जैसा कि मेरे पास केवल मुफ्त मूल्यांकन संस्करण (व्याख्या) है, मैं उपयोगकर्ता इनपुट के रूप में प्रतीक ऊंचाई लेता हूं। यदि आप पूर्ण संस्करण (29.99GBP) खरीदते हैं, तो आप इसके साथ कमांड लाइन पढ़ सकते हैं w=VAL(@cmd$)/12

अघोषित कोड

गोल्फ कोड में, केवल एक VDU स्टेटमेंट होता है, लेकिन अनलॉक्ड कोड में मैं स्पष्टता के लिए इसे कई हिस्सों में तोड़ देता हूं। इसके अलावा, क्योंकि बीबीसी बेसिक थोड़ा एंडियन है, लेकिन संयोजन p,0,को गोल्फ किया जा सकता है p;लेकिन मैंने इसे स्पष्टता के लिए अधूरा छोड़ दिया।

  INPUT h
  w=h/12                   :REM w is the width of the line, which is 1/12 the height of the symbol, hardcoded at 900.
  s=w/2.4                  :REM s/w is the gradient x/y of line E. s is the horizontal offset of the top and bottom of the ends of horizontal bars
  p=25                     :REM VDU p,action,x;y; is the equivalent of PLOT action,x,y

  VDU 22,6                 :REM change mode
  VDU 29,640;400;          :REM set origin

  VDU p,4,0;1.5*w;         :REM move to centre of circle
  VDU p,153,6*w;0;         :REM draw circle in foreground colour
  VDU p,4,0;1.5*w;         :REM move to centre of circle
  VDU p,159,h/3.1;4.6*w;   :REM draw circle in background colour, ending at the upper inner point of the C shape.
  VDU p,0,9*s;9*w;         :REM move relative along slant gradient, 9 spaces in y direction, to define the upper cut on the circle
  VDU p,87,h/3.1;-19*w;    :REM draw triangle in background colour, based on the last two points and the absolute point specified here (vertical line for lower cut)

  VDU p,4,-7.5*w;0;        :REM move absolute to bottom left of lower bar
  VDU p,0,s;w;             :REM move relative to top left of lower bar
  VDU p,85,4.5*s;0;        :REM draw triangle to bottom right corner of lower bar (absolute)
  VDU p,81,s;w;            :REM draw triangle to top right of lower bar (relative)

  VDU p,0,s;w;             :REM move relative to bottom right of upper bar
  VDU p,0,s;w;             :REM move relative to top right of upper bar
  VDU p,85,-7.5*w;2*w;     :REM draw triangle to bottom left of upper bar (absolute)
  VDU p,81,s;w;            :REM draw triangle to top left of upper bar (relative)

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


बीबीसी बेसिक बहुत बढ़िया! यह मुझे लगभग तीस साल पीछे ले जाता है!
टॉम चैंटलर

1
@ डूमर बीबीसी बेसिक को पहली बार १ ९ mer१ में रिलीज़ किया गया था, २० साल से ज्यादा पहले यूरो के नोट छपते थे (२००२।) तो यह एकमात्र तरीका है जिससे आप इस तरह की मशीन पर एक बड़ा यूरो चिन्ह निकाल सकते थे! वैकल्पिक रूप से आप ASCII चरित्र nको 8x8 बिटमैप के साथ यूरो प्रतीक में बदल सकते हैं , जैसे VDU 23,n,30,33,120,32,120,30,30,0:। विकिपीडिया के अनुसार, बीबीसी बेसिक अभी भी विकसित किया जा रहा है, मुख्यतः मोबाइल उपकरणों के लिए।
लेवल रिवर सेंट

वास्तव में! मुझे लगता है कि हमें 1984 में हमारा मिल गया था। मुझे याद है कि ग्राफ पेपर पर कूल स्प्राइट्स को खींचना और फिर उनके बाइनरी अभ्यावेदन पर काम करना, जैसा कि मुझे यकीन है कि आपने भी किया है। किस नोट पर, मैंने आपके यूरो प्रतीक को हाथ से निकाल दिया। टाइपो तय हो जाने के बाद यह बहुत अच्छा है और प्रतिपक्षी मूल्य 30 से 33 में बदल जाता है। मैं आपकी प्रोफ़ाइल से देखता हूं आपने लोगो का भी उपयोग किया है जो मुझे फिर से मेरे प्राथमिक विद्यालय के दिनों में ले जाता है। यह जानने के लिए बहुत अच्छा है कि बीबीसी बेसिक आज भी उपयोग में है। अगर यह हमारे लिए काफी अच्छा था ...
टॉम चैंटलर

बस जोड़ने के लिए, बीबीसी बेसिक 8x8 बिटमैप को "इटैलिक" (बड़े लोगो को ध्यान में रखते हुए) को बदलकर बनाया जा सकता है VDU 23,n,30,33,124,32,120,33,30,0। पुरानी यादों की गलियों में यात्रा हेतु धन्यवाद।
टॉम चैंटलर

25

HTML, 250 249 248 242 244 234 229

<svg viewBox=-7.5,-6,12,12
onload=this.style.height=prompt()><clipPath
id=c><path
d=M5-6,1.8,1.5,3.8,3.2V6H-9.4L-7.1,.5-7.5-.5-5.2-6>
</clipPath><g
clip-path=url(#c) fill=none stroke=#000><circle
r=5.5 /><path
d=M-8,1h15M-8-1h15>

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

कोशिश करो!


13
(-: - oʇ ǝuı: s⅂oo squ
व्यंग्य ossifrage

1
हाँ, मैं पोस्टस्क्रिप्ट निर्देशांक में सोच रहा था, जो कि दूसरे रास्ते हैं! अब y अक्ष को स्वैप किया।
थॉमस डब्ल्यू

3
अनुगामी के बिना भी (Chrome 34) मेरे लिए काम करें </svg>। ओह, और वह मार्कअप भयानक है । मुझे आशा है कि आप अपने आप पर शर्मिंदा होंगे। ;-)
इल्मरी करोनें

2
@IlmariKaronen मैं कर रहा हूँ शर्मिंदा ;-)। आमतौर पर मैं भी HTML पर साफ XHTML पसंद करते हैं। वैसे भी, यदि मैं अनुगामी को छोड़ दूं </svg>, तो मुझे केवल रेखाएँ दिखाई देती हैं न कि रेखाएँ (स्टैंडअलोन फ़ाइल में, मार्कअप जेएस बिन के अंदर नहीं हो सकती हैं)।
थॉमस डब्ल्यू

1
आप 6 बाइट की बचत evt.targetकरके इसे छोटा कर सकते हैं this
टूथब्रश

17

सीएसएस, 512 494 बाइट्स

<style>*,:after,:before{position:absolute;width:20;content:"";background:#fff}#a{margin:150;height:20;border:2px solid;border-radius:20px}#a:after{width:10;height:10;bottom:0;right:-8}p{top:7;left:-6;width:29;height:2;border:solid;border-width:2 0;transform:skewX(-23deg);margin:0;background:0}p:before{width:2;height:4;bottom:-3;left:-.5}p:after{width:16;height:16;bottom:-3;right:-8}</style><div id=a><p><script>document.getElementById('a').style.transform='scale('+(prompt()/24)+')'</script>

एक छोटे से जवाब से सबसे छोटा नहीं है, लेकिन जब तक मैं अपने सभी सीएसएस-मिनिमेशन-फू को बुलाता हूं, तब तक छोटा हो सकता है

चेतावनियां:

सभी 'px' के साथ उपर्युक्त कोड फ़ायरफ़ॉक्स और IE में काम करता है, लेकिन क्रोम और सफारी नहीं, जो उनकी इकाइयों के बारे में उपद्रवी हैं :)

मुझे भी काम करने के लिए jsfield पाने के लिए px को फिर से जोड़ना पड़ा:

http://jsfiddle.net/9A3J9/

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

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

अघोषित कोड:

 <style>
*,:after,:before{
    position:absolute;
    width:20;
    content:"";
    background:#fff
}
#a{
    margin:150;
    height:20;
    border:2px solid;
    border-radius:20px
}
#a:after{
    width:10;
    height:10;
    bottom:0;
    right:-8
}
p{
    top:7;
    left:-6;
    width:29;
    height:2;
    border:solid;
    border-width:2 0;
    transform:skewX(-23deg);
    margin:0;
    background:0
}
p:before{
    width:2;
    height:4;
    bottom:-3;
    left:-.5
}
p:after{
    width:16;
    height:16;
    bottom:-3;
    right:-8
}
</style>

<div id=a><p>

<script>
document.getElementById('a').style.transform='scale('+(prompt()/24)+')'
</script>

3
वाह! उस skewXतरकीब से मेरा उत्थान हो सकता है।
मैनटवर्क

यह वही है जो मैंने कल लिखना शुरू किया था। झूठ तो आप के लिए
Einacio

div पर एक id सेट करने और उपयोग करने getElementByIdसे 6 char कम हो जाते हैं। और फिर आप 2 और कम करने के लिए css में id का उपयोग कर सकते हैं
Einacio

इसके बाद, pयदि इसके बाद और कोई सामग्री नहीं है तो समापन टैग को छोड़ा जा सकता है। और मैं यह भी जाँच करूँगा कि यदि ब्राउज़र ऑटोक्लोज़ करते हैं div(विशेष रूप से निषिद्ध है, तो इसने FF पर काम किया है)
Einacio

@einacio बढ़िया सुझाव! हम नीचे 494 बी के लिए धन्यवाद :)
caitriona

16

पोस्टस्क्रिप्ट + घोस्टस्क्रिप्ट 137 + 6 = 143 (बाइनरी), 209 + 6 = 215 बाइट्स

बाइनरी टोकन के साथ पूरी तरह से गोल्फ संस्करण:

$ hexdump -C euro_golfed.ps 
00000000  68 20 31 32 20 92 36 92  38 92 8b 37 2e 35 20 36  |h 12 .6.8..7.5 6|
00000010  92 ad 35 20 36 0a 31 2e  38 20 2d 31 2e 35 0a 33  |..5 6.1.8 -1.5.3|
00000020  2e 38 20 2d 33 2e 32 0a  33 2e 38 20 2d 36 0a 2d  |.8 -3.2.3.8 -6.-|
00000030  39 2e 34 20 2d 36 0a 2d  37 2e 31 20 2d 2e 35 0a  |9.4 -6.-7.1 -.5.|
00000040  2d 37 2e 35 20 2e 35 0a  2d 35 2e 32 20 36 92 6b  |-7.5 .5.-5.2 6.k|
00000050  37 7b 92 63 7d 92 83 35  2e 35 92 14 30 92 6f 2d  |7{.c}..5.5..0.o-|
00000060  38 20 2d 31 0a 2d 38 20  31 92 6b 32 7b 31 35 20  |8 -1.-8 1.k2{15 |
00000070  30 92 85 92 6b 7d 92 83  30 20 30 20 35 2e 35 20  |0...k}..0 0 5.5 |
00000080  30 20 33 36 30 92 05 92  a7                       |0 360....|
00000089

डाउनलोड हाथ कोडित बाइनरी फ़ाइल

ASCII संस्करण:

h 12 div dup scale
7.5 6 translate
5 6
1.8 -1.5
3.8 -3.2
3.8 -6
-9.4 -6
-7.1 -.5
-7.5 .5
-5.2 6
moveto
7{lineto}repeat
clip newpath
5.5 0
-8 -1
-8 1
moveto
2{15 0 rlineto moveto}repeat
0 0 5.5 0 360 arc
stroke

के रूप में सहेजें euro.psऔर जैसे Ghostscript के साथ चलाएँ

gs -dh=80 euro.ps

यूरो साइन, 80 अंक, घोस्टस्क्रिप्ट द्वारा प्रस्तुत

gs -dh=20 euro.ps

यूरो साइन, 20 अंक, घोस्टस्क्रिप्ट द्वारा प्रदान किया गया

जैसा कि पोस्टस्क्रिप्ट में पिक्सेल जैसी कोई चीज नहीं है, उस ऊंचाई को इसके बजाय बिंदुओं में व्याख्या किया गया है। मैंने कमांड लाइन पर स्विच के लिए +6 की गणना की।


1
मेह, मैं संकलित फ़ाइल आकार को कैसे हराऊंगा। : D ... वे बाइनरी टोकन कैसे काम करते हैं? क्या यह मूल रूप से हाथ से कोड संकलित करने जैसा नहीं है?
मार्टिन एंडर

DCलाइन क्षैतिज पट्टियों को सही ढंग से नहीं काटती है। नीचे से सीधा, D'सर्कल' शेप को सही जगह पर नहीं काटता है, नीचे :( जैसा दिखता है वैसा ही आपके SVG उत्तर के साथ भी है।
user2846289

+ क्षैतिज धारियों के बाएं किनारों को संरेखित नहीं किया गया है।
user2846289

@ m.buettner सबसे महत्वपूर्ण पोस्टस्क्रिप्ट नामों को दो बाइट अनुक्रम का उपयोग करके व्यक्त किया जा सकता है। यह वास्तव में संकलित नहीं है जैसे आप एक सी या जावा कार्यक्रम संकलित करेंगे। यह किसी भी पोस्टस्क्रिप्ट प्रोग्राम के समान पार्सिंग प्रक्रिया से गुजरेगा। यदि आप हेक्सडंप को देखते हैं या एक टेक्स्ट एडिटर में बाइनरी फ़ाइल खोलते हैं, तो आप देख सकते हैं कि यह लगभग ASCII संस्करण के समान है, लेकिन अधिकांश नामों को दो बाइट अनुक्रम से बदल दिया गया था।
थॉमस डब्ल्यू

@VadimR आपकी पैनी नज़र है! मुझे लगता है कि मैंने संक्षिप्तता (बहुत आक्रामक रूप से गोलाई) के लिए बहुत अधिक सटीक व्यापार किया। मुझे कुछ अंक जोड़ने पड़ सकते हैं।
थॉमस डब्ल्यू

13

अजगर - कछुआ - 517

import turtle,sys
from math import *
q=sqrt
h=int(sys.argv[1])/24
t=turtle.Turtle()
z=t.begin_fill
y=t.end_fill
x=t.goto
w=t.towards
v=t.fd
u=t.circle
r=t.seth
o=t.setx
n=t.xcor
t.pu()
x(10*h,0)
t.left(90)
t.circle(10*h,40)
z()
A=w(0,-12*h)
B=2/sin(A*pi/180)
u(10*h,280)
r(-90)
C=n()/h
v((q(144-C*C)-q(100-C*C))*h)
D=w(0,0)
r(D+90)
u(-12*h,D+135.42)
y()
F=2*pi/9
G=h*cos(F)/(5*sin(F)+6)
x(45*G,-3*h)
z()
o(-15*h)
r(A)
v(B*h)
o(45*G+15*h+n())
y()
x(65*G,h)
z()
o(-15*h)
r(A)
v(B*h)
o(65*G+15*h+n())
y()
t.ht()
input()

python % 100और python % 500क्रमशः:


3
आपके द्वारा परिभाषित कुछ शॉर्टकट से छुटकारा पाकर आप बहुत सारे पात्रों को बचा सकते हैं। आप केवल cएक बार उपयोग करते हैं , इसलिए यह वास्तव में सिर्फ इसे लागू करने के लिए छोटा होगा math.cos, और मुझे लगता है कि संभवतः अन्य हैं जो आप समग्र लंबाई में कटौती करने के लिए अप्रत्यक्ष कर सकते हैं।
AJMansfield

1
आप उपसर्गों को from math import *छोड़ कर, छह वर्णों को बंद कर सकते हैं math.
अलेक्सवचन

3
आप परिभाषित करते हैं u=t.circle, लेकिन कुछ पंक्तियों के बाद आप t.circle(...)कॉल को स्वैप करना भूल गए ।
अलकांजा

2
€ आकर्षित करने के लिए कछुआ। क्या वक़्त है जीने का।
नीती

13

PHP, 432 435 367 356 334 बाइट्स

(संपादित करें: जाहिरा तौर पर IJ और GH को BCDE के साथ समानांतर माना जाता है। अब तय हो गया है)

यह स्क्रिप्ट एक एसवीजी छवि को आउटपुट करती है, लेकिन text/htmlडिफ़ॉल्ट रूप से इसे सेवा देगी । मुझे लगता है कि अधिकांश ब्राउज़र इसे HTML वेब पेज के रूप में मानेंगे जिसमें एक एम्बेडेड एसवीजी छवि होगी। यह मेरे लिए वैसे भी ठीक काम करने लगता है।

छवि की ऊंचाई एक क्वेरी स्ट्रिंग पैरामीटर के रूप में पारित की जाती है। (नोट: बाइट काउंट में पंक्ति 3 के अंत में एक नई पंक्ति वर्ण शामिल है, जो ठीक से काम करने के लिए आवश्यक है)।

<?php $x=$_GET['x']/12;$a=$x*5;$b=$x*6;$c=$x*7;$d=$x*12.4884;$e=$x*2.2863;$f=$x*5.5;$g=$x*.4157;$h=$x*6.5;$i=$x*7.5;$j=$x*12;$k=$x*11.3302;$l=$x*9.1628;$m=$x*8;$s=$x*12;echo<<<Q
<svg width="$s" height="$s"><clipPath id="c"><path d="M$d 0H$e L0 $f L$g $h L0 $i V$s H$k V$m H$l z"/></clipPath><g clip-path="url(#c)" fill="none" stroke="#000" stroke-width="$x"><circle cx="$i" cy="$b" r="$f"/><path d="M0 $a H$k M0 $c H$k"/></g></svg>
Q;

अपडेट किया गया संस्करण ( 367 356 334 बाइट्स):

preg_replace_callback()संख्यात्मक मानों को स्केल करने का एक अधिक कुशल तरीका है। यह कोड मूल संस्करण के समान आउटपुट का उत्पादन करता है। (संपादित करें: आगे की कटौती Einacio के लिए धन्यवाद )

<?php
echo preg_replace_callback('/[\d\.]+/',function($m){return$m[0]*$_GET['x']/12;},'<svg width=12 height=12><clipPath id=c><path d=M12.4884,0H2.2863L0,5.5,0.4157,6.5,0,7.5V12H11.3302V8H9.1628z /></clipPath><g clip-path=url(#c) fill=none stroke=black stroke-width=1><circle cx=7.5 cy=6 r=5.5 /><path d=M0,5H11M0,7H11 /></g></svg>');

आउटपुट:

euro.php? एक्स = 60

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

euro.php? एक्स = 200

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


widthऔर heightयहाँ अनावश्यक हैं और आपको xmlnsइसे अधिकांश ब्राउज़रों में प्रस्तुत करने के लिए निर्दिष्ट करने की आवश्यकता है (फ़ायरफ़ॉक्स और क्रोम का परीक्षण किया; यहां तक ​​कि एसवीजी के उचित MIME प्रकार के साथ, वे दोनों इसे एक्सएमएल के रूप में प्रस्तुत करते हैं, एसवीजी नहीं)। ideone.com/JkqVL0 (369 बाइट समाधान के लिए हार्डकोड एक्स मान को हटा दें)
टिम एस

@TimS। नहीं, यदि आप ideone पर PHP कोड चलाते हैं और परिणाम को SVG फ़ाइल में कॉपी करते हैं तो यह ठीक से काम नहीं करेगा। लेकिन अगर आप वास्तव में एक वेब सर्वर पर स्क्रिप्ट प्रकाशित करते हैं, तो PHP (डिफ़ॉल्ट रूप से) MIME प्रकार के साथ परिणामों की सेवा करेगा text/html। क्रोम और फ़ायरफ़ॉक्स को इससे कोई समस्या नहीं है, हालाँकि मुझे अभी पता चला है कि सफारी थोड़ी अधिक खतरनाक है।
स्क्विश ओश्रीफ्रेज

आह! मैं चाल अब देखें: text/htmlके साथ <svg>...एक साथ एक HTML फ़ाइल में व्याख्या की है svgतत्व है, जो की जरूरत नहीं है xmlns, लेकिन जरूरत है widthऔर height। मैं एक एसवीजी फ़ाइल के संदर्भ में सोच रहा था, जिसे उचित आवश्यकता है xmlns। आपका कोड ठीक है।
टिम एस

दूसरे कोड पर, यदि आप 12 के बजाय 24 का उपयोग करते हैं, तो क्या आप प्रत्येक x.5 मान पर 1 बाइट कम नहीं करेंगे?
Einacio

@Einacio हाँ! :-) दुर्भाग्य से मैं भी "5", "6", "7" और "8" की प्रत्येक घटना पर एक बाइट प्राप्त करता हूं। परिणामी लंबाई बिल्कुल समान है।
स्क्वीश ossifrage

9

श, 8604

मुझे लगता है कि कोई शायद बेहतर कर सकता है, लेकिन चलो इसे शुरू करें।

echo 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|base64 -d|unxz>e.svg;echo \<img src=e.svg height=$1\>>e.htm;firefox e.htm

3
उत्पादन के हार्ड-कोडिंग के मानक खामियों के तहत नहीं आएगा?
user80551

4
यह निश्चित रूप से "मानक कमियां" श्रेणी के अंतर्गत आता है।
शाम

2
@Ilylyboo: ऐसा कैसे?
Ry-

18
यह एक कोड-गोल्फ चुनौती के लिए एक बहुत लंबा जवाब है। :-)
AL

2
@ इग्लोबो असहमत। .svg वेक्टर-आधारित है, इसलिए इसे असीम रूप से बढ़ाया जा सकता है - और $1इनपुट पैरामीटर द्वारा है ।
डिजिटल ट्रामा

9

एचटीएमएल 5, 395

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

<canvas id=c><script>_='function e,t,n){c.savtranslate,trotatn?0:.42)}v=docuEleById("c"c=vContex"2d"scalw=(v.width=v.height=promp))/12,w76,1arc(56--114.2,6,66-13,6.-   2,1 11.5)c.clearRec2restor-7mov-71lin6,.5,strokt(   .5--e(0,);1,ment.geteTo(';for(Y in $='  ')with(_.split($[Y]))_=join(pop());eval(_)</script>

JSCrush का उपयोग करके कोड को संपीड़ित किया जाता है

यहाँ असम्पीडित कोड है:

<canvas id=c>
<script>
v=document.getElementById('c');
c=v.getContext('2d');
function r(){c.rotate(0.42)}
function t(x,y){c.save();c.translate(x,y)}
c.scale(w=(v.width=v.height=prompt())/12,w);
t(7.5,6);
c.arc(0,0,5.5,0,6);
c.stroke();
c.moveTo(-7.5,-1);c.lineTo(6,-1);
c.moveTo(-7.5,1);c.lineTo(6,1);
c.stroke();
c.clearRect(4.2,0,6,6);
t(0,6);r();
c.clearRect(0,-11,3,6.2);
c.restore();
t(-7.5,-0.5);r();
c.clearRect(-1,-2,1,2);
c.restore();
t(-7.5,1.5);r();
c.clearRect(-1,-1.5,1,1.5)
</script>

क्रश लगाने से पहले स्रोत को गोल्फ से 378 तक कम किया जा सकता है: jsfiddle.net/_nderscore/EUBG8
nderscore

यह जावास्क्रिप्ट है, HTML नहीं। मैं यह नहीं समझ पा रहा हूं कि लोग कैसे काम करते हैं।
कछुआ

1
हाँ, क्योंकि <canvas>टैग जावास्क्रिप्ट है ... HTML5 का उपयोग अक्सर HTML / CSS / JS नहीं लिखने के लिए किया जाता है। ऐसा नहीं है कि लोग इसे नहीं समझते हैं, प्रोग्रामर सिर्फ आलसी हैं (कम से कम मैं हूं)। आपकी टिप्पणी थोड़ी कठोर लगती है।
माइकल एम।

@ क्या मुझे लगा कि HTML + CSS + JS को DHTML कहा जाता है?
किनोकिजुफ

6

पोस्टस्क्रिप्ट, 270

7 7 अनुवाद
/ एल {lineto} डीईएफ़
/ ओ {० ०} डिफ
o 6 44.85 165.52 चाप
-7.08 1.5 एल
-7.5 .5 एल
o 6 175.22 184.74 चाप
-7.08 -.5 एल
-7.5 -1.5 एल
o 6 194.48 309.67 चाप
o ५ ३२० १ ९ 19.४६ अर्चना
1.87 -1.5 एल
2.29 -.5 एल
o 5 185.74 174.26 चाप
2.7 .5 ली
3.12 1.5 एल
o 5 162.54 40 आर्कन
क्लोजपाथ फिल

यह सिर्फ जगा की मदद से गणना किए गए निर्देशांक के आधार पर पथ तत्वों को जोड़कर रूपरेखा को परिभाषित करता है, और फिर रूपरेखा को भरता है।

मैंने lineto( /l{lineto}def) और सर्कल की उत्पत्ति ( ) के लिए शॉर्टकट जोड़कर कुछ चार्ट सहेजे /o{0 0}def

एक अलग आकार निर्दिष्ट करने के लिए, पहली रिक्त पंक्ति के बाद फ़ॉर्म की एक कमांड जोड़ें ।height width scale

जब अपने दम पर चलाया जाता है, तो यह डिफ़ॉल्ट पृष्ठ आकार के पृष्ठ के निचले बाएं कोने में यूरो चिह्न को खींचता है। बस इसे सहेजें anything.psऔर इसे दस्तावेज़ दर्शक के साथ देखें।

यहां डिफ़ॉल्ट आकार में इसकी एक छवि है, जो प्रति इंच 90 पिक्सेल से थोड़ा अधिक है:

डिफ़ॉल्ट आकार 90 पीपीआई पर

4x आकार पर:

90 पीपीआई पर 4x का आकार

आप अपने स्वयं के देखने के आनंद के लिए मूल भी डाउनलोड कर सकते हैं।


2
क्या यह संकेत के आकार को परिभाषित करने के लिए किसी भी तर्क को पढ़ता है?
अल

@ n.1 ओह, क्षमा करें, मैंने कल्पना के उस हिस्से को नहीं पढ़ा है। मैं इसे रात के खाने के बाद ठीक करूँगा।
AJMansfield

कृपया प्रदान की गई फ़ाइल का स्क्रीनशॉट जोड़ें।
AL

1
@ n.1 मैंने चित्र जोड़े हैं।
AJMansfield

5

PHP (एसवीजी के बिना), 628 597 बाइट्स

कार्यों के लिए अच्छे शॉर्टकट के लिए AsksAnyway के लिए धन्यवाद (जैसे $c = print; $c('Hello world!');)।

<?php header('Content-type:image/png');$h=$_GET['h'];$i=imagecreatetruecolor($h*1.1,$h*1.1);$c=imagecolorallocate;$b=$c($i,0,0,0);$w=$c($i,255,255,255);imagefill($i,0,0,$w);$l=$h*.7;$t=$h*.55;$u=$h/12;$e=imagefilledellipse;$e($i,$l,$t,$h,$h,$b);$e($i,$l,$t,$h*5/6,$h*5/6,$w);$f=imagefilledpolygon;$f($i,array($l+$u*5,$t+$u*1.5,$l-$u*7.5,$t+$u*1.5,$l-$u*7.125,$t+$u*0.5,$l+$u*4,$t+$u*.5,$l+$u*4,$t-$u*.5,$l-$u*7.5,$t-$u*.5,$l-$u*7.125,$t-$u*1.5,$l+$u*5,$t-$u*1.5),8,$b);$f($i,array($l+$u*4.24,$t-$u*4.24,$l+$u*1.84,$t+$u*1.5,$l+$u*3.84,$t+$u*3.26,$l+$u*3.84,$t+$u*4.62,$h*2,$t,),5,$w);imagepng($i);

file.php?h=200छवि देखने के लिए अपने ब्राउज़र से कॉल करें

निर्देशांक GIMP के साथ किए गए मापों पर आधारित होते हैं

100 पिक्सेल:

€ 100 पिक्सेल

200 पिक्सेल:

€ 200 पिक्सेल

परतों ने चरण दर चरण जोड़ा:

# जीआईएफ

Ungolfed कोड (भिन्न के साथ, गोल्फ कोड में गोल आकार होते हैं)

<?php
header('Content-type: image/png');

$h = $_GET['h'];

$i = imagecreatetruecolor($h * 1.1,$h * 1.1);

$c = imagecolorallocate;

# black
$b = $c($i,0,0,0);
# white
$w = $c($i,255,255,255);

imagefill($i,0,0,$w);

$l = $h * .7; # distance between left and center of the circle
$t = $h * .55; # distance between top and center of the circle

# one "unit", as defined by the specs
$u = $h / 12;

$e = imagefilledellipse;
# disk is black
$e($i, $l, $t, $h, $h, $b);
# inner disk is white
$e($i, $l, $t, $h * (5 / 6), $h * (5 / 6), $w);

$f = imagefilledpolygon;
# draw 2 bars in black
$f($i, array(
# bottom bar
$l + $u * 5, $t + ($u * 1.5), # bottom right
$l-$u * 7.5, $t + ($u * 1.5), # bottom left
$l-$u * 7.125, $t + ($u * 0.5), # top left
$l + $u * 4, $t + ($u * 0.5), # top right
# top bar
$l + $u * 4, $t - ($u * 0.5), # bottom right
$l-$u * 7.5, $t - ($u * 0.5), # bottom left
$l-$u * 7.125, $t - ($u * 1.5), # top left
$l + $u * 5, $t - ($u * 1.5) # top right
), 8, $b);

# hide right parts of bars and circle by drawing white
$f($i, array(
$l + $u * 6 * (212 / 300), $t - ($u * 6 * (212 / 300)), # right of the disk
$l + $u * 6 * (92 / 300), $t + ($u * 6 * (74 / 300)), # left = bottom right of bottom bar
$l + $u * 6 * (191 / 300), $t + ($u * 6 * (163 / 300)), # bottom of the circle
$l + $u * 6 * (191 / 300), $t + ($u * 6 * (231 / 300)), # bottom of the circle too
$h * 2, $t, # some point at the right of the image (outside the image)
), 5, $w);

imagepng($i);

4

बैश + ImageMagick + linux कमांड-लाइन टूल्स, 460 बाइट्स

base64 -d<<<H4sIADBMaVMAAy1Ru27DMAz8FUJdBVsk9QziLFo8uD/QrUDSOIDTBo1Rt39fUsl0POp0PEr7+88Zfq/L530w87redn2/bVu3cff1fe7JOdeLwsB2Oa7zYDw7A/Ppcp5XJWQO+9v7OsN9/VtOg/m4LMvuRS4ZOA7m1VkseQpBoQZvyXlQQPeA2JpEjVEGURL7EePkLCU3Rqw5Wo4EmLALVgaC9BUrk392OAWt0HUBPHrb+NQq4i5UzigeSU6Zsii5xOYiWLE0BCT1Z89QVKLD2dPEIbdEBasINWIDaiDxG2BjslpBXXTk5CeWFkYa1a2KuS0OMBfJ8RgdKzMr03DRP5Ojy5O8sE2ksdU1g+pcu+SqvILUWddNCBHbCIxvpj/s9ZsO/xXfC57OAQAA|zcat|convert -scale $1 svg:- png:-|xview stdin

यह @ minitech के जवाब के समान तकनीक है । लेकिन .svg डेटा यहाँ से आता है, जो बहुत छोटा है: http://commons.wikimedia.org/wiki/File:Euro_symbol_black.svg । ImageMagick वेक्टर डेटा को अनुरोधित स्केल पर .png डेटा और xview में कनवर्ट करता है।

इसके लिए आउटपुट ./euro.sh 30:

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

इसके लिए आउटपुट ./euro.sh 300:

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


7
बड़े संस्करण को क्यों नहीं भरा गया है?
कोल जॉनसन

2
तुम कैसे स्टड करने के लिए छवियों का उत्पादन कर सकते हैं?
फुलकव

@ LưuV LnhPhúc आप मानक इनपुट के लिए "आउटपुट" नहीं कर सकते। वह सिर्फ पात्रों का भार भेज रहा है base64, जो कि एक कार्यक्रम है, जो इसे बाइनरी टोकन में बदल देता है (एक svg फ़ाइल का प्रतिनिधित्व करते हुए, जाहिरा तौर पर), जिसके साथ वह अधिक सामान करता है।
tomsmeding

2
@tomsmeding मुझे विश्वास है कि वे खिड़की के शीर्षक "स्टडिन" द्वारा भ्रमित थे।
मनिअप

@ColeJohnson मुझे लगता है कि न तो संस्करण भरा हुआ है, लेकिन छोटे संस्करण पर आंतरिक और बाहरी रेखाओं को ठोस दिखाई देने के लिए पर्याप्त रूप से प्रस्तुत किया गया है। कहा गया है कि ImageMagick के साथ स्पष्ट रूप से कुछ अजीब अलियासिंग बात चल रही है जो मुझे पूरी तरह से समझ में नहीं आती है - लेकिन मुझे लगता है कि उत्पन्न छवि कोड-गोल्फ के लिए काफी करीब है ;-)
डिजिटल ट्रॉमा

2

पीओवी-रे (370 बाइट्स)

मैं एक ही ऊर्ध्वाधर क्षेत्र को प्रस्तुत करने और एक ही समय में पहलू अनुपात को संरक्षित करने के तरीके का पता नहीं लगा सका, इसलिए मैंने सही ऊंचाई और इसके उपयोगकर्ता के लिए केवल 4: 3 प्रारूप में प्रस्तुत करने का निर्णय लिया

camera{angle 9 location 102*z right x*8 up y*6 look_at 0}
light_source{99*z color 1}
plane{z,0 pigment{color rgb 1}}
#declare b=difference{box{<-5,-.5,1>,<8,.5,1>}box{-2,2 rotate-67*z translate 9.4*x}}
difference{union{torus{5.5,.5 rotate 90*x}object{b translate y}object{b translate -y}}box{<-3.83,-5,-3>,<-7,0,3>}box{<0,7,3>,<-4,-2,-3>rotate 23*z translate-2.5*x}}

साथ दौड़ो povray.exe /RENDER euro.pov -w600 -h800

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


2

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

प्रसंस्करण वास्तव में कमांड लाइन के तर्कों को लेने की अनुमति नहीं देता है क्योंकि यह ड्राइंग के लिए बहुत विशिष्ट है, लेकिन क्षतिपूर्ति करने के लिए मेरा कार्य पैरामीटर में ऊंचाई पर है। निर्देशांक ऊपर की छवि से हार्ड-कोडेड / अनुमानित हैं, और पूरे कैनवास को मनमाने आकार के चित्र प्राप्त करने के लिए इनपुट पैरामीटर के आधार पर बढ़ाया जाता है।

void E(int h){scale(h/12,h/12);noFill();strokeWeight(1);arc(7.5,6,11,11,0.7,PI*2-0.7,OPEN);noStroke();fill(0);shearX(-PI/6);rect(3.2,4.5,9,1);rect(4.4,6.5,8,1);shearX(PI/6);fill(255);rect(11,6,9,6);triangle(8.75,6,12.25,6,12.25,0);}

Ungolfed + संपूर्ण कार्यक्रम

void setup()
{
  size(575, 500);
}

void draw()
{
  background(255);
  E(height);
  noLoop();
}

void E(int h)
{
  scale(h/12,h/12);
  //Main "C"
  noFill();
  strokeWeight(1);
  arc(7.5,6,11,11,0.7,PI*2-0.7,OPEN);
  //settings for other shapes
  noStroke();
  //the two bars
  fill(0);
  shearX(-PI/6);
  rect(3.2,4.5,9,1);
  rect(4.4,6.5,8,1);
  //bottom cut of "C"
  shearX(PI/6);
  fill(255);
  rect(11,6,9,6);
  //top cut of "C"
  triangle(8.75,6,12.25,6,12.25,0);
}

उत्पादन

यूरो स्केच प्रसंस्करण


1
आप 1के OPENरूप में अच्छी तरह से बदल रहा 255है backgroundऔर fillकॉल करने के बजाय का उपयोग करके गोल्फ कर सकते हैं-1
Kritii Lithos
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.