ओलंपिक खेल लोगो - फ्री स्टाइल संस्करण [बंद]


30

इस सवाल के समान भावना में , आपका मिशन कोड के अधिकांश 1K में सबसे अच्छा दिखने वाला लोगो बनाना है।

नियम:

  1. कोड के अधिकतम 1K (समावेशी), कोई बाहरी डेटा नहीं।

  2. सबसे upvotes के साथ जवाब जीतता है।

मज़े करो!


6
ठीक है, उन्होंने सीधे " इस सवाल के समान भावना" में राज्य किया , इसलिए उन्होंने व्यावहारिक रूप से कहा "हे, मुझे पता है कि यह एक डुप्लिकेट है": डी
माइक कोच

5
विभिन्न जीत मापदंड। तो यह एक ऐसा ही सवाल है, लेकिन नकल नहीं है।
विक्टर स्टैफ़ुसा

3
मुझे वास्तव में खुशी है कि किसी और ने कम मापदंड के साथ मेरे सवाल का एक लोकप्रियता-प्रतियोगिता संस्करण बनाया , जैसा कि मैंने लिखा होने पर किस रास्ते पर जाना था।
एडम मरस

@AdamMaras को यह सुनकर खुशी हुई कि :)
chubakueno

मैंने मेटा पर एक फिर से चर्चा शुरू की , क्योंकि यह प्रश्न पास-वोट नहीं होना चाहिए था।
एडम मारस

जवाबों:


44

एसवीजी

1KB? विलासिता। मैं सभी अनावश्यक व्हाट्सएप को हटाने के बजाय आउटपुट को सुंदर प्रिंट भी कर सकता हूं। (इंडेंटेशन, निश्चित रूप से, टैब का उपयोग करता है, जिसे मार्कडाउन रिक्त स्थान में परिवर्तित करता है, यही कारण है कि चार गिनती लग सकती है वास्तविक 977 से अधिक अनावश्यक व्हाट्सएप को हटाने से यह 861 तक गिर जाता है)।

एक दिशा में अंगूठियां खींचकर, फिर एक क्लिप लगाने और उन्हें दूसरी दिशा में खींचने से ओवरलैप को सही ढंग से संभाला जाता है। रंगों और अनुपातों को एक आधिकारिक दस्तावेज़ से निकाला जाता है जो किसी कारण से हलकों के बजाय बेज़ियर घटता का उपयोग करता है।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504" height="228">
    <defs>
        <clipPath id="t">
            <rect width="504" height="114" />
        </clipPath>
    </defs>
    <g fill="none" stroke-width="12">
        <g id="u" transform="translate(82,82)" stroke="#0b8ed8">
            <g id="O">
                <circle r="72" stroke="#fff" stroke-width="20" />
                <circle r="72" />
            </g>
        </g>
        <g id="y" transform="translate(167,146)" stroke="#f9a91f">
            <use xlink:href="#O" />
        </g>
        <g id="k" transform="translate(252,82)" stroke="#231f20">
            <use xlink:href="#O" />
        </g>
        <g id="g" transform="translate(337,146)" stroke="#009e59">
            <use xlink:href="#O" />
        </g>
        <g transform="translate(422,82)" stroke="#ee2049">
            <use xlink:href="#O" />
        </g>
        <g clip-path="url(#t)">
            <use xlink:href="#g" />
            <use xlink:href="#k" />
            <use xlink:href="#y" />
            <use xlink:href="#u" />
        </g>
    </g>
</svg>

PNG SVG फ़ाइल का रेंडर


16
पुनश्च अगर कोई यह तर्क देना चाहता है कि एसवीजी एक प्रोग्रामिंग भाषा नहीं है (और मैं इस बात से सहमत होना चाहूंगा), तो इस साइट पर कई PHP सबमिशन की शैली में एक PHP प्रोग्राम पर विचार करें, जो सिर्फ शाब्दिक पाठ को प्रतिध्वनित करता है।
पीटर टेलर

omg हालांकि यह अद्भुत लग रहा है। SVG नीली है

39

जावास्क्रिप्ट (कोर) - 1000 डॉट पर। - WebKit (Chrome)

कैनवास के साथ खेल रहा है।

यह सुनिश्चित नहीं है कि यह 1024 या 1000 के Kलिए है, लेकिन इसे 1000 982 940: डी तक लाने में कामयाब रहे

केवल WebKit ब्राउज़रों के लिए उपयुक्त है। क्रोम ठीक है। फ़ायरफ़ॉक्स एक गड़बड़। इसे क्रॉस ब्राउज़र बनाने में ध्यान देना चाहिए।


कोड:

var w=window;w.onload=function(){function e(e,t){return r()*(t-e+1)+e}function d(e,t){function r(e,t,r,i){c.beginPath();c[u]="xor";c.strokeStyle="#"+e;c.arc(t,r,66,n*i[0],n*i[1]);c.stroke();c[u]="destination-atop";c.arc(t,r,66,n*i[1],n*i[0]);c.stroke()}var i=79+e,s=66+t,o=158,a=[2,1.2],f=[1.8,.8];c.lineWidth=13;r("007a9c",e,t,f);r("ffa100",i,s,a);r("000",e+=o,t,f);r("009b3a",i+=o,s,a);r("e10e49",e+=o,t,f)}var t=Math,n=t.PI,r=t.random,i,s,o=0,u="globalCompositeOperation",a=document.getElementById("c"),f=w.innerWidth,l=w.innerHeight,c=a.getContext("2d"),h=9,p=[];a.width=f;a.height=l;for(i=0;i<l;++i){p.push({x:r()*f,y:r()*l,r:e(1,3),d:e(1,l)})}setInterval(function(){c.clearRect(0,0,f,l-h);d(f/2-200,l-200);c[u]="xor";c.fillStyle="#fff";c.beginPath();o+=e(0,7)?.01:-.01;for(i=0;i<l-h;++i){s=p[i];c.moveTo(s.x,s.y);c.arc(s.x,s.y,s.r,0,n*2);s.y+=t.cos(o+s.d)+1+s.r/9;s.x+=(i%2?1:-1)*t.sin(o)*.4;if(s.x>f+7||s.x<-7||s.y>l-(h-1.2)){p[i]={x:r()*f,y:-9,r:s.r,d:s.d}}}c.fill();if(h<l/1.7)h+=l/9e3},32)}

940: इसमें लिपटा हुआ ड्रॉपिंग onloadऔर bodyटैग + संरेखण बग और फ़ायरफ़ॉक्स फिक्स के अंत में डाली जा रही स्क्रिप्ट पर भरोसा करें।

function e(e,t){return r()*(t-e+1)+e}function d(e,t){function r(e,t,r,i){c.beginPath();c[u]="xor";c.strokeStyle="#"+e;c.arc(t,r,66,n*i[0],n*i[1]);c.stroke();c[u]="destination-over";c.arc(t,r,66,n*i[1],n*i[0]);c.stroke()}var i=79+e,s=66+t,o=158,a=[2,1.2],f=[1.8,.8];c.lineWidth=13;r("007a9c",e,t,f);r("ffa100",i,s,a);r("000",e+=o,t,f);r("009b3a",i+=o,s,a);r("e10e49",e+=o,t,f)}var w=window,t=Math,n=t.PI,r=t.random,i,s,o=0,u="globalCompositeOperation",a=document.getElementById("c"),f=w.innerWidth,l=w.innerHeight,c=a.getContext("2d"),h=9,p=[];a.width=f;a.height=l;for(i=0;i<l;++i,p.push({x:r()*f,y:r()*l,r:e(1,3),d:e(1,l)}));setInterval(function(){c.clearRect(0,0,f,l-h);d(f/2-158,l-200);c[u]="xor";c.fillStyle="#fff";c.beginPath();o+=e(0,7)?.01:-.01;for(i=0;i<l-h;++i){s=p[i];c.moveTo(s.x,s.y);c.arc(s.x+=(i%2?.4:-.4)*t.sin(o),s.y+=t.cos(o+s.d)+1+s.r/9,s.r,0,n*2);if(s.y>l-(h-1.2)){p[i].x=r()*f;p[i].y=-9}}c.fill();if(h<l/1.7)h+=l/9e3},32)

बेला:

http://jsfiddle.net/Ifnak/XSBLg/embedded/result/

http://jsfiddle.net/Ifnak/4fSWm/5/embedded/result/

फ़ायरफ़ॉक्स के साथ-साथ क्रोम में भार, लेकिन FF में संसाधनों पर भारी है। उपयोग requestAnimationFrame()करने से थोड़ी मदद मिली, लेकिन पर्याप्त नहीं।

ध्यान दें कि बर्फ नीचे की ओर रहती है, इस प्रकार धीमी वृद्धि को देखने के लिए नीचे स्क्रॉल करें। शुरुआत में जमीन पर कुछ ओवरपैनिंग थी, लेकिन इसे 1024 chr में फिट नहीं किया जा सका।

परिणाम (कम गुणवत्ता GIF'ed स्क्रैंकेस्ट):

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


2
अच्छा! यह IE11 में भी काम करता है।
डैंको डर्बीक

फ़ायरफ़ॉक्स 27.0.1 पर बिल्कुल ठीक काम करता है।
नाथन उस्मान

32

मेथेमेटिका

मैथेमेटिका में मेरे उत्तर से । प्रश्नोत्तर :

ring[x_, y_, v_, t_] := 
  Table[
    {1.2 y, -v x, 0} + {Cos@i, Sin@i}.{{0, -1, 0}, {1, 0, 1/4 - v/2}},
    {i, 0, 2 π, π/200}
  ] ~Tube~ t

Graphics3D[
  Riffle[
    {Cyan, Yellow, Darker @ Gray, Green, Red},
    Array[ring[Sqrt@3/2, #, # ~Mod~ 2, 0.17] &, 5, 0] ],
  Boxed -> False,
  ViewPoint -> {0, 0, ∞}
]

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

संपादित करें: संस्करण 10 में डिफ़ॉल्ट प्रकाश शैली बदल गई; ऊपर दिए गए ग्राफिक को रेंडर करने के लिए विकल्प Lighting -> "Classic"को जोड़ना होगा Graphics3D

एक दो आयामी प्रभाव पैदा करने के लिए प्रकाश व्यवस्था के साथ आगे खेलना:

Graphics3D[
  Riffle[
    Glow /@ {Hue[.59], Hue[.13], Black, Hue[.3, 1, .7], Hue[0, 1, .85]},
    Array[ring[Sqrt@3/2, #, # ~Mod~ 2, 0.13] &, 5, 0] ],
  Boxed -> False,
  ViewPoint -> {0, 0, ∞},
  Lighting -> None
]

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


ओलिवर के लिए जिसने कहा कि मेरा पहला परिणाम "बहुत 3 डी-ईश" है यहां एक वास्तविक 2 डी रेंडरिंग है जो कि मेरे रिफैक्टिंग के साथ जिवेंट के कोड के माध्यम से भी जुड़ा हुआ धागा है:

ringSegment[mid_, deg_, color_] := {CapForm["Butt"],
  Thickness[0.042], White,                   Circle[mid, 1, deg],
  Thickness[0.03],  RGBColor @@ (color/255), Circle[mid, 1, deg + {-0.1, 0.1}]}

blue   = {  0, 129, 188};
yellow = {255, 177,  49};
black  = { 35,  34,  35};
green  = {  0, 157,  87};
red    = {238,  50,  78};

Graphics @ GraphicsComplex[
  {{2.5, 0}, {1.3, -1}, {0, 0}, {5, 0}, {3.8, -1}},
  ringSegment @@@
   {{1, {0, 5/4 π},      black},
    {2, {0, π},          yellow},
    {3, {0, 2 π},        blue},
    {2, {-π 9/8, 1/4 π}, yellow},
    {4, {0, 5/4 π},      red},
    {5, {0, 7/8 π},      green},
    {1, {5/4 π, 5/2 π},  black},
    {5, {7/8 π, 2 π},    green},
    {4, {-3/4 π, 1/4 π}, red}}
 ]

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


@ ओलिवर सिर्फ आपके लिए अपडेट किया गया।
मि। छिपकली

वाह! क्या आप मुझे बता सकते हैं कि आप मठमाटिका कहाँ से डाउनलोड कर सकते हैं?
ओलिवर नी

@ ओलिवर यह वाणिज्यिक उत्पाद है, और व्यक्तिगत, गैर-व्यावसायिक उपयोग के लिए भी महंगा है, लेकिन अगर आप अभी भी रुचि रखते हैं, तो आप इससे 15-दिवसीय परीक्षण संस्करण प्राप्त कर सकते हैं: wolfram.com/mathematica/trial
Mr.Wizard

1
@ यदि आप एक रास्पबेरी पाई है
ट्राइकोप्लाक्स

@trichoplax अब ओपन क्लाउड एक ब्राउज़र इंटरफ़ेस में एक स्वतंत्र रूप से मामूली प्रोग्राम चलाने देता है: develop.open.wolframcloud.com/app/view/newNotebook
Mr.Wizard

28

रूबी, 321

अफसोस की बात है कि एक निश्चित राज्य प्रमुख अब तक के अधिकांश ओलंपिक समाचारों का प्रमुख विषय है। इस प्रकार, यहाँ 2014 खेलों के लिए मेरा फ्री स्टाइल लोगो (शुभंकर?) है।

w=?$;"UW[NASY_LAQVgKAPSlKAOKGLnHAOIHMnHAOHILpHANHJLqFAOFLKAVMAVMAWKAWLAWKAMIHFGK
NFMLAMGOFFGAGJPGFIAHGFFOWPPAIGFFKQFOKMJHAIJJQGNLGFMAJIJNFIGHFHSGASMMFHHASHGGPK
MFJHTKARJSKAMGFOPJAPPOJAPRKLAQRJLAQTHLAR^LFARaARaAR]HFASZAS[FFRGAT_QGAUZGFFG
U]AQGITAPHKPANKKSALMNSGGAJPOP".codepoints{|r|r-=69;$><<(r<0??\n:(w=w==?$?' ':?$)*r)}

आउटपुट: (बैक अप और स्क्विंट। आदिम प्रतिपादन के लिए क्षमा करें, लेकिन वह बेहतर नहीं है।)

पुतिन


6
$ $ $, उदास लेकिन सच: D
ybeltukov

25

बैश + इमेजमैजिक

convert \
  -size 330x150 xc:white -strokewidth 10 -fill none \
  -stroke \#0885c2 -draw 'arc 100,100 10,10 0,360' \
  -stroke black -draw 'arc 210,100 120,10 0,360' \
  -stroke \#ed334e -draw 'arc 320,100 230,10 0,360' \
  -stroke \#fbb132 -draw 'arc 155,140 65,50 0,360' \
  -stroke \#1c8b3c -draw 'arc 265,140 175,50 0,360' \
  -stroke \#0885c2 -draw 'arc 100,100 10,10 -20,10' \
  -stroke black -draw 'arc 210,100 120,10 -20,10' -draw 'arc 210,100 120,10 90,120' \
  -stroke \#ed334e -draw 'arc 320,100 230,10 90,120' \
  x:

नमूना उत्पादन:

ओलंपिक खेलों का लोगो


23

FreePascal

शीतकालीन ओलंपिक? नियमित रिंग के बजाय कुछ फ्रैक्टल बर्फ के टुकड़े कैसे।

केंद्र शाखा के लिए पुनरावृत्ति बहुत स्पष्ट है: (डीएक्स, डाई) = 0.5 (डीएक्स, डाई)। बाईं और दाईं शाखाएं मैट्रिक्स गुणा द्वारा रोटेशन पर आधारित हैं:

x = x cos (a) - y sin (a)

y = x sin (a) + y cos (a)

1/4 = 0.5 कॉस (60) और 7/16 0.5 पाप (60) का एक अच्छा अनुमान है।

uses graph;
var gd, gm : integer;
var n:integer;

Procedure tree(x,y,dx,dy: integer);
begin
  if dx*dx+dy*dy>0 then begin
    line(x, y, x+dx, y+dy);
    tree(x+dx, y+dy, dx div 2, dy div 2);
    tree(x+dx, y+dy, dx div 4 + dy*7 div 16, dy div 4 - dx*7 div 16);
    tree(x+dx, y+dy, dx div 4 - dy*7 div 16, dy div 4 + dx*7 div 16);
  end;
end;

begin
  gd := D4bit;
  gm := m640x480;
  initgraph(gd,gm,'');
  setbkcolor(white); clearviewport;
  setbkcolor(black); setlinestyle(0,0,3);

  For n:=-1 to 1  do  begin
    setColor(yellow);
    tree(215,240-120*n,0,120*n);
    setColor(lightgreen);
    tree(425,240-120*n,0,120*n);
    setColor(black);
    tree(320,120-120*n,0,120*n);
    setColor(lightred);
    tree(530,120-120*n,0,120*n);
    setColor(lightblue);
    tree(110,120-120*n,0,120*n);
  end;
  readln;
  closegraph;
end.

। ।

छवि


अच्छा लगा। यदि आप एल्गोरिथ्म में यादृच्छिकता की एक अच्छी मात्रा जोड़ सकते हैं, तो आप इसे पुन: उपयोग कर सकते हैं चलो एक यादृच्छिक हिमपात का अनुकरण करें
मैनेटवर्क

16

जावा

मेरे एसवीजी उत्तर के समान, लेकिन

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

ध्यान दें कि मैंने इसे कुछ दिलचस्प ट्रिक्स की संभावना के बावजूद (जैसे -57*~dirइसके बजाय 57*(1+dir)923 वर्णों की संभावना के बावजूद इसे गोल्फ करने की कोशिश नहीं की है, लेकिन गोल्फ आसानी से 624 तक नीचे आ जाता है।

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

public class Rings {
    public static void main(String[] args) throws Exception {
        int[] pal = new int[] {0x0b8ed8, 0xf9a91f, 0x231f20, 0x009e59, 0xee2049};
        BufferedImage img = new BufferedImage(505, 229, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = img.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        for (int dir = -1; dir < 2; dir += 2) {
            g.setClip(0, 57 * (1 + dir), 520, 114);
            for (int ring = 2 - 2 * dir; ring != 2 + 3 * dir; ring += dir) {
                for (int subring = 0; subring < 2; subring++) {
                    g.setColor(new Color(pal[ring] | (subring - 1)));
                    g.setStroke(new BasicStroke(20 - 8 * subring));
                    g.drawOval(10 + 85 * ring, 10 + 64 * (ring & 1), 144, 144);
                }
            }
        }
        ImageIO.write(img, "PNG", new File("rings.png"));
    }
}

PNG जावा प्रोग्राम द्वारा प्रस्तुत किया गया


16

कमोडोर 64 बुनियादी

फिर, एक C64 उत्तर, लेकिन इस बार मुझे स्प्राइट्स का उपयोग करने की अनुमति है ! वाह!

मुझे याद है कि यदि आप स्प्राइट्स का उपयोग करना चाहते हैं, तो आप बहुत सारे उबाऊ DATAबयानों के साथ अपना कार्यक्रम शुरू करेंगे । एक "उच्च रिज़ॉल्यूशन" (24x21 पिक्सेल) मोनोक्रोमैटिक स्प्राइट पैटर्न को परिभाषित करने के लिए आपको 63 बाइट्स की आवश्यकता होती है। वास्तव में एक ऑनलाइन स्प्राइट एडिटर है जो आपके लिए डेटा की गणना करता है, इसलिए:

10 DATA 0,254,0,3,255,128,7,255,192,15,131,224,30,0,240,60,0,120,56,0,56,120,0
20 DATA 60,112,0,28,112,0,28,112,0,28,112,0,28,112,0,28,120,0,60,56,0,56,60,0
30 DATA 120,30,0,240,15,131,224,7,255,192,3,255,128,0,254,0

मैं भी रंग और पदों के लिए कुछ और डेटा की आवश्यकता होगी । मैंने अभी अपने मूल ओलंपिक खेलों के लोगो प्रश्न के उत्तर से नकल की है :

40 DATA 6,0,0,0,2,0,2,4,0,7,1,1,5,3,1 

फिर, आप आमतौर पर सेट करेंगे V=53248। यह 53248एक महत्वपूर्ण संख्या होनी चाहिए, क्योंकि मुझे अभी भी यह 25 साल बाद याद है :) यह पता चला है कि यह VIC-II (वीडियो इंटरफ़ेस नियंत्रक) का आधार पता है:

50 V=53248

फिर मैंने पते पर शुरू होने वाली मेमोरी में स्प्राइट पैटर्न पढ़ा 832। यह सिर्फ एक स्मृति स्थान पर लिखने के लिए अजीब लगता है, कोई आवंटन नहीं new, नहीं, ऐसा कुछ भी नहीं है :) शुरुआत के पते को 64 के एक से अधिक होना चाहिए।

60 FOR I=0 TO 62
70 READ D:POKE 832+I,D
80 NEXT I

मैं सभी स्प्राइट के लिए एक ही पैटर्न का उपयोग करूंगा।

90 FOR I=0 TO 4
100 READ C,X,Y

Cरंग कोड है, Xऔर Yमंडलियों के क्षैतिज और ऊर्ध्वाधर स्थान हैं।

कुछ और अधिक POKEआवश्यक हैं:

110 POKE V+I*2,150+X*11
120 POKE V+I*2+1,130+Y*10

V+0, V+2, V+4, आदि ... प्रत्येक स्प्राइट की क्षैतिज स्थानों, जबकि कर रहे हैं V+1, V+3, V+5... खड़ी कर रहे हैं। स्प्राइट रंग रजिस्टर में शुरू होता हैV+39 :

130 POKE V+39+I,C

स्प्राइट डेटा पॉइंटर्स शुरू होते हैं 2040, और जब से डेटा शुरू होता है 832, हमें मिलता है 832/64=13 , इसलिए है:

140 POKE 2040+I,13
150 NEXT I

स्प्राइट्स को चालू करने के लिए मैंने 0-4रजिस्टर के बिट्स सेट किएV+21 । मैंने पृष्ठभूमि को सफेद में भी बदल दिया, इसलिए हम नीले सर्कल को देख सकते हैं।

160 POKE 53281,1
170 POKE V+21,31

बस!

ओलंपिक छिड़ जाता है


महान! पता नहीं अगर मुझे सही से याद है, लेकिन हो सकता है कि आप (हार्डवेयर में) स्प्राइट्स का x / y आकार दोगुना कर सकते हैं। मुझे यकीन है कि आप C128 पर ऐसा कर सकते हैं।
गैब्रिएल डी'अटन 5

हाँ, आप V+23डबल ऊंचाई के लिए, और V+29डबल चौड़ाई के लिए बिट सेट कर सकते हैं । (बिट #x के लिए स्प्राइट #x)।
डैंको डर्बिएक

11

लेटेक्स / TikZ

आकार: 876 बाइट्स (12 लाइनें, 72 अक्षर वाली रेखा और रेखा का अंत)

\documentclass{standalone}\usepackage{tikz}\def\W{3.762bp}\def\R{71.682
bp}\def\D{12.9041bp}\usetikzlibrary{calc,hobby}\def\Y{-71.7013bp}\def\X
{169.5538bp}\begin{document}\tikz[use Hobby shortcut,every path/.style=
{line width=\W,double distance=\D, white}]{\def\Z{coordinate}\path(0,0)
\Z(A)++(\X,0)\Z(C)++(\X,0)\Z(E)($(A)!.5!(C)$)++(0,\Y)\Z(B)++(\X,0)\Z(D)
;\def~#1#2{\definecolor{#1}{cmyk}{#2}} ~A{1,.25,0,0}~B{0,.342,.91,0}~C{
0,0,0,1}~D{1,0,.91,.06}~E{0,.94,.65,0}\def~#1#2#3#4{\draw[save Hobby p%
ath={#1},double=#1,overlay](#1)+([closed] 225:\R)..+([#2]315:\R)..+([#3
]45:\R)..+([#4]135:\R); \path let\n!={\R+\D/2}in(#1)+(-\n!,0)+(\n!,0)+(
0,-\n!)+(0,\n!);}\def\0#1{\draw[double=#1,restore and use Hobby path={%
#1}{disjoint,invert soft blanks}];}~A{}{blank=soft}{}~B{}{}{blank=soft}
~C{}{blank=soft}{}\0B\0A~E{blank=soft}{}{}~D{}{}{}\0C\0E}\end{document}

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

आकार: एक पंक्ति में 817 बाइट और दो अनुकूलन के साथ:

  • tikzकक्षा का विकल्प standalone, टिप्पणी देखें गेहूं जादूगर की ।
  • के कई उपयोग हैं soft=blankएक शैली को परिभाषित करके छोटा किया जा सकता है b
\documentclass[tikz]{standalone}\def\W{3.762bp}\def\R{71.682bp}\def\D{12.9041bp}\usetikzlibrary{calc,hobby}\def\Y{-71.7013bp}\def\X{169.5538bp}\begin{document}\tikz[use Hobby shortcut,every path/.style={line width=\W,double distance=\D,white},b/.style={blank=soft}]{\def\Z{coordinate}\path(0,0)\Z(A)++(\X,0)\Z(C)++(\X,0)\Z(E)($(A)!.5!(C)$)++(0,\Y)\Z(B)++(\X,0)\Z(D);\def~#1#2{\definecolor{#1}{cmyk}{#2}} ~A{1,.25,0,0}~B{0,.342,.91,0}~C{0,0,0,1}~D{1,0,.91,.06}~E{0,.94,.65,0}\def~#1#2#3#4{\draw[save Hobby path={#1},double=#1,overlay](#1)+([closed]225:\R)..+([#2]315:\R)..+([#3]45:\R)..+([#4]135:\R); \path let\n!={\R+\D/2}in(#1)+(-\n!,0)+(\n!,0)+(0,-\n!)+(0,\n!);}\def\0#1{\draw[double=#1,restore and use Hobby path={#1}{disjoint,invert soft blanks}];}~A{}b{}~B{}{}b~C{}b{}\0B\0A~E b{}{}~D{}{}{}\0C\0E}\end{document}

LaTeX / TikZ (पठनीय संस्करण)

निम्नलिखित लंबे संस्करण को समझना आसान है।

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

  • सफेद मार्जिन वाली अंगूठी को एक डबल लाइन के साथ सर्कल द्वारा तैयार किया गया है। लाइनों के बीच का क्षेत्र रिंग के रंग से भरा होता है और पतली डबल लाइनें बाहरी और आंतरिक सफेद मार्जिन बनाती हैं।

  • रंग और आयाम आधिकारिक दस्तावेज़ के पृष्ठ 5 के पीडीएफ पेज विवरण से लिए गए हैं ( पीटर टायलर का उत्तर देखें )।

\nofiles % .aux file is not needed
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\usetikzlibrary{hobby}

\newcommand*{\xshift}{169.5538bp}
\newcommand*{\yshift}{-71.7013bp}
\newcommand*{\radius}{71.6821bp}
\newcommand*{\whitelinewidth}{3.762bp}
\newcommand*{\colorlinewidth}{12.9041bp}

\definecolor{color@A}{cmyk}{1, .25, 0, 0}
\definecolor{color@B}{cmyk}{0, .342, .91, 0}
\definecolor{color@C}{cmyk}{0, 0, 0, 1}
\definecolor{color@D}{cmyk}{1, 0, .91, .06}
\definecolor{color@E}{cmyk}{0, .94, .65, 0}

\begin{document}
  \begin{tikzpicture}[
    use Hobby shortcut,
    every path/.style = {
      line width      = \whitelinewidth,
      double distance = \colorlinewidth,
      white,
    },
  ]
    % define center coordinates for the five rings
    \path
      (0,0) coordinate (center@A)
      ++(\xshift, 0) coordinate (center@C)
      ++(\xshift, 0) coordinate (center@E)
      ($(center@A)!.5!(center@C)$) ++(0, \yshift) coordinate (center@B)
      ++(\xshift, 0) coordinate (center@D)
    ;
    % \drawring draws the first part of the ring with blank parts
    \newcommand*{\drawring}[4]{%
      \draw[
        save Hobby path = {path@#1},
        double          = {color@#1},
        overlay,
      ]
        (center@#1)
        +([closed] 225:\radius) .. +([#2] 315:\radius) ..
        +([#3] 45:\radius) .. +([#4] 135:\radius)
      ;
    }
    % \finishring draws the blank parts of the rings
    \newcommand*{\finishring}[1]{%
      \draw[
        double                     = {color@#1},
        restore and use Hobby path = {path@#1}{
          disjoint, 
          invert soft blanks
        },
      ];
    }
    \drawring{A}{}{blank=soft}{}
    \drawring{B}{}{}{blank=soft}
    \drawring{C}{}{blank=soft}{}
    \finishring{B}
    \finishring{A}
    \drawring{E}{blank=soft}{}{}
    \drawring{D}{}{}{}
    \finishring{C}
    \finishring{E}
    % set calculated bounding box
    \useasboundingbox
      let \n{r} = {\radius + \colorlinewidth/2}
      in
        (center@A) +(-\n{r}, \n{r}) % upper left corner
        (center@B -| center@E) +(\n{r}, -\n{r}) % lower right corner
    ;
  \end{tikzpicture}
\end{document}

कुछ बाइट्स बचाने के लिए आप इस टिप के लिए \documentclass[tikz]{standalone}धन्यवाद का उपयोग कर सकते हैं ।
गेहूं जादूगर

@WheatWizard धन्यवाद, उत्तर को अद्यतन किया जाता है और आगे की लंबाई bको blank=softचार गुना करने के लिए उपयोग की जाने वाली शैली से परिभाषित करके छोटा किया जाता है।
हेइको ओबर्डिएक

10

C ++ 1024 बाइट्स

अपडेट किया गया: अब एंटीएलियासिंग के साथ। कोड (डी) 1K में फिटिंग करते हुए कोड को कुछ हद तक डी-गोल्फ किया गया है।

आउटपुट फ़ाइल लिखने के लिए ओस्ट्रीम फ़ंक्शंस को छोड़कर किसी भी लाइब्रेरी फ़ंक्शंस का उपयोग नहीं करता है।

#include <fstream>

namespace {
typedef double d;

int w=512;
d a=1./6,g=1./w,h=1./72,j=h+g,k=h-g,r=5./36;

struct p{d x,y;}ps[]={{5*a,a},{4*a,2*a},{3*a,a},{2*a,2*a},{a,a}};
struct c{unsigned char r,g,b;}cs[]={{237,51,78},{28,139,60},{0,0,0},{251,177,50},{8,133,194}};

d abs(d x) {return x<0?-x:x;}

d sqrt(d x) {
    d e=1e-6,y=1;
    for(;abs(y*y-x)>e;y=.5*(y+x/y));
    return y;
}

d dist(p c,p z) {
    d u=z.x-c.x,v=z.y-c.y; 
    return abs(r-sqrt(u*u+v*v));
}

c lerp(c a,c b,d t) {
    auto l=[=](d a,d b){return a+(b-a)*t;}; 
    return {l(a.r,b.r),l(a.g,b.g),l(a.b,b.b)};
}

d smoothstep(d z) {
    z=(z-j)/(k-j);
    z=z<0?0:z>1?1:z;
    return z*z*(3-2*z);
}

c color(p z) {
    c o{255,255,255};
    for(int i=0,j;i<5;++i){
        j=z.y<.25?i:4-i;
        o=lerp(o,cs[j],smoothstep(dist(ps[j],z)));
    }
    return o;
}
}

int main() {
    std::ofstream o("r.ppm",std::ofstream::binary);
    o<<"P6 "<<w<<" "<<w/2<<" 255\n";
    for(int y=0;y<w/2;++y)
        for(int x=0;x<w;++x)
            o.write((char*)&color(p{x*g,y*g}),3);;
}

आउटपुट .ppm फ़ाइल:

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


1
यह कोड-गोल्फ नहीं है : आप अपने कोड को उपयुक्त बनाने के लिए स्वतंत्र महसूस कर सकते हैं, बशर्ते यह 1kB में फिट हो।
पीटर टेलर

+1 को <cmath>
महामारी

10

आर, 70 वर्ण

CRAN-R आँकड़ों का उपयोग करना।

l=c(1,9);plot(3:7,c(6,4,6,4,6),col=c(4,7,1,3,2),cex=10,ylim=l,xlim=l)

आर प्लॉट


9

GLSL

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

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

इसे Shadertoy पर देखें (यदि आपका ब्राउज़र WebGL का समर्थन करता है)।

uniform vec3 iResolution;

float circle(vec2 pos, float r) {
    return clamp(r - distance(gl_FragCoord.xy, pos), 0., 1.);
}

float ring(vec2 pos, float r, float d) {
    return circle(pos, r + d) * (1. - circle(pos, r - d));
}

void paint(vec3 color, float a) {
    gl_FragColor.rgb = mix(gl_FragColor.rgb, color, a);
}

void main() {
    struct r_t {
        vec2 pos;
        vec3 col;
    } rs[5];
    rs[0] = r_t(vec2( 82, 146), vec3(.04, .56, .85));
    rs[1] = r_t(vec2(167,  82), vec3(.98, .66, .12));
    rs[2] = r_t(vec2(252, 146), vec3(.14, .12, .13));
    rs[3] = r_t(vec2(337,  82), vec3(.00, .62, .35));
    rs[4] = r_t(vec2(422, 146), vec3(.93, .13, .29));

    float s = min(iResolution.x / 504., iResolution.y / 228.);
    vec2 b = (iResolution.xy - vec2(504, 228) * s) * .5;
    bool rev = gl_FragCoord.y > iResolution.y * .5;

    gl_FragColor.rgb = vec3(1);

    for (int i = 0; i < 5; ++i) {
        r_t r = rev ? rs[4 - i] : rs[i];
        paint(vec3(1), ring(r.pos * s + b, 72. * s, 11. * s));
        paint(r.col,   ring(r.pos * s + b, 72. * s,  6. * s));
    }
}

परिणाम प्रतिपादन


5

मेथेमेटिका

मैंने अपना मूल उत्तर एक के साथ बदल दिया है जो क्षेत्रों और उनके चौराहों पर आकर्षित करता है। कोड का आकार 973 बाइट्स, अनलॉल्फ़्ड है।

क्षेत्र 1-5 छल्ले हैं। छल्ले में 2.5 इकाइयों का एक आंतरिक त्रिज्या है; बाहरी त्रिज्या 3 इकाई है। आंतरिक से बाहरी अनुपात का अनुपात और दृष्टिकोण का सामान्य तर्क यहां पाया जाना चाहिए ।

i = Implicit Region;
R1 = i[6.25 <= (x + 6.4)^2 + y^2 <= 9 , {x, y}];
R2 = i[6.25 <= x^2 + y^2 <= 9 , {x, y}];
R3 = i[6.25 <= (x - 6.4)^2 + y^2 <= 9 , {x, y}];
R4 = i[6.25 <= (x + 3.2)^2 + (y + 3)^2 <= 9 , {x, y}];
R5 = i[6.25 <= (x - 3.2)^2 + (y + 3)^2 <= 9 , {x, y}];

हम केवल परतों को ध्यान में रखे बिना 5 रिंगों का प्रिंट आउट क्यों नहीं ले सकते।

अगर हम इन छल्लों को सीधा करते हैं, तो वे इंटरलॉक नहीं करते हैं। ध्यान दें कि पीले रंग की अंगूठी नीले और काले छल्ले के ऊपर होती है; हरे रंग की अंगूठी काले और लाल दोनों छल्ले के ऊपर स्थित होती है।

Show[{RegionPlot[R1, PlotStyle -> Blue, BoundaryStyle -> Blue],
  RegionPlot[R2, PlotStyle -> Black, BoundaryStyle -> Black],
  RegionPlot[R3, PlotStyle -> Red, BoundaryStyle -> Red],
  RegionPlot[R4, PlotStyle -> Yellow, BoundaryStyle -> Yellow],
  RegionPlot[R5, PlotStyle -> Green, BoundaryStyle -> Green]
  }, PlotRange -> All, PerformanceGoal -> "Quality", 
 ImageSize -> Large, AspectRatio -> 1/2,
 Frame -> False]

ऊपर


छल्ले के 4 चौराहों पर रंग फ़्लिप करना।

क्षेत्र 6, 8, 10 और 12 आयताकार हैं जो यह निर्दिष्ट करने के लिए सेवा करते हैं कि किस दो चौराहे के चौराहे पर ध्यान केंद्रित करना है।

क्षेत्र 7, 9, 11, और 13 "रिंग ओवरलैप्स" हैं जहां नीचे की तरफ अंगूठी शीर्ष पर होनी चाहिए।

R6 = Rectangle[{-5, -1}, {-2, 1}];
R7 = RegionIntersection[R1, R4, R6];    
R8 = Rectangle[{2, -1}, {4, 1}];
R9 = RegionIntersection[R2, R5, R8]; 
R10 = Rectangle[{-2, -3}, {2, -2}];
R11 = RegionIntersection[R2, R4, R10];  
R12 = Rectangle[{5, -3}, {7, -2}];
R13 = RegionIntersection[R3, R5, R12];

Show[{RegionPlot[R1, PlotStyle -> Blue, BoundaryStyle -> Blue],
  RegionPlot[R2, PlotStyle -> Black, BoundaryStyle -> Black],
  RegionPlot[R3, PlotStyle -> Red, BoundaryStyle -> Red],
  RegionPlot[R4, PlotStyle -> Yellow, BoundaryStyle -> Yellow],
  RegionPlot[R5, PlotStyle -> Green, BoundaryStyle -> Green],
  RegionPlot[R7, PlotStyle -> Blue, BoundaryStyle -> Blue],
  RegionPlot[R9, PlotStyle -> Black, BoundaryStyle -> Black],
  RegionPlot[R11, PlotStyle -> Black, BoundaryStyle -> Black],
  RegionPlot[R13, PlotStyle -> Red, BoundaryStyle -> Red]}, 
PlotRange -> All, PerformanceGoal -> "Quality", 
 ImageSize -> Large, AspectRatio -> 1/2,
 Frame -> False]

के छल्ले


किन चौराहों पर उनके रंग फूटे थे?

निम्नलिखित उन चौराहे क्षेत्रों पर प्रकाश डालता है जहाँ रंग "फ़्लिप" होते थे। यह BoundaryStyle7, 9, 11 और 13 के क्षेत्रों को बदलकर पूरा किया गया था White

हाइलाइट


4
क्या आप 1k में सौंदर्यशास्त्र से बेहतर कुछ नहीं कर सकते? वे चौराहे बदसूरत हैं!
गेब्रियल डी 'एटनन

1
@ गर्लोल, मैंने क्षेत्रों का उपयोग करके चौराहों में सुधार किया।
डेविड सीपी

1
इसमें डेढ़ साल का समय लगा, लेकिन आखिरकार आपको पता चला है कि सुंदर चौराहे कैसे बनाए जाते हैं: D
बीटा डिके

कल मैंने कुछ ओलंपिक रिंग देखे और महसूस किया कि मैं क्षेत्रों का उपयोग चौराहे के मुद्दे को हल करने के लिए कर सकता हूं। पहले वाले बहुत बदसूरत थे क्योंकि वे छोड़ गए थे।
डेविड सीपी

3

जावास्क्रिप्ट (तीन.js) - 910 बाइट्स

एक HTML तत्व को देखते हुए, यह फ़ंक्शन 3 डी ऑब्जेक्ट्स के रूप में रिंग्स बनाएगा और फिर तत्व को एक स्थिर छवि प्रदान करेगा। वेबजीएल का समर्थन करने वाले ब्राउज़रों में काम करता है। बेला

function Logo(l){
    var s, c, r;
    s = new THREE.Scene();
    c = new THREE.PerspectiveCamera(45, 4/3, 1, 500);
    c.position.set(75,0,300);
    c.lookAt(new THREE.Vector3(0,0,0));
    var rings = [
        new THREE.Mesh(ring(), mat(0x0885c2)),
        new THREE.Mesh(ring(), mat(0xfbb132)),
        new THREE.Mesh(ring(), mat(0x000000)),
        new THREE.Mesh(ring(), mat(0x1c8b3c)),
        new THREE.Mesh(ring(), mat(0xed334e))
    ];
    for(var i = 0; i < rings.length; i++){
        s.add(rings[i]);
        rings[i].position.set(i*55-125,-(i%2)*50,0);
        rings[i].rotation.set(0,(i%2*2-1)*.18,0,'xyz');
    }
    r = new THREE.WebGLRenderer();
    r.setSize(400, 300);
    l.appendChild(r.domElement);
    r.render(s, c);
}
function ring(){ return new THREE.TorusGeometry(50, 8, 16, 32); }
function mat(color){ return new THREE.MeshBasicMaterial({color: color}); }

2

बिल्ली (10 बाइट्स)

यह इतना छोटा था कि जब तक मैंने यह विवरण नहीं जोड़ा तब तक वेबसाइट ने इसे अपलोड करने से इनकार कर दिया। लोगो ओलंपिक खेलों का प्रतिनिधित्व करता है।

$ $ $
 $ $


2

C ++ w / SFML (1003 incl। व्हाट्सएप)

कल्पना के किसी भी खिंचाव से छोटा नहीं है, लेकिन 1k के तहत संभव के रूप में अभी तक पढ़ने योग्य है।

#include <SFML/Graphics.hpp>

using namespace sf;

int main() {
    CircleShape circles[5];
    Color backcolor(255,255,255);
    Color colors[5] = {
        Color(0x0b,0x8e,0xd8),
        Color(0xf9,0xa9,0x1f),
        Color(0x23,0x1f,0x20),
        Color(0x00,0x9e,0x59),
        Color(0xee,0x20,0x49),
    };

    for (int i = 0; i < 5; i++) {
        circles[i] = CircleShape(144, 60);
        circles[i].setPosition(15+160*i, 46+160*(i&1));
        circles[i].setFillColor(Color::Transparent);
        circles[i].setOutlineColor(colors[i]);
        circles[i].setOutlineThickness(-16);
    }

    RenderWindow window(VideoMode(960, 540), L"Olympic Logo", Style::Close);

    while (window.isOpen()) {
        Event event;

        while (window.pollEvent(event))
            if (event.type == Event::Closed)
                window.close();

        window.clear(backcolor);

        for (int i = 0; i < 5; i++)
            window.draw(circles[i]);

        window.display();
    }

    return 0;
}

संपादित करें: अपडेट किए गए रंग @Peter टेलर के SVG सबमिशन के आधार पर।


1

डेल्फी

  Canvas.Pen.Width := 10;
  Canvas.Brush.Style:=bsClear;//To prevent solid background
  Canvas.Pen.Color:=clBlue; Canvas.Ellipse(20,30,220,230);
  Canvas.Pen.Color:=clBlack; Canvas.Ellipse(240,30,440,230);
  Canvas.Pen.Color:=clRed; Canvas.Ellipse(460,30,660,230);
  Canvas.Pen.Color:=clYellow; Canvas.Ellipse(130,130,330,330);
  Canvas.Pen.Color:=clGreen; Canvas.Ellipse(350,130,550,330);

परिणाम

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


0

जावा स्विंग GUI UltraGolfed संस्करण (696 चरस) के आधार पर एक समाधान बनाया गया

import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;class A extends JFrame{public A(){JPanel j=new JPanel(){protected void paintComponent(Graphics g){;((java.awt.Graphics2D)g).setStroke(new java.awt.BasicStroke(3));g.setColor(new Color(0xb,0x8e,0xd8));g.drawOval(10, 10, 80, 80);g.setColor(new Color(0xf9,0xa9,0x1f));g.drawOval(50,40,80,80);g.setColor(new Color(0x23,0x1f,0x20));g.drawOval(90, 10, 80, 80);g.setColor(new Color(0,0x9e,0x59));g.drawOval(130,40,80,80);g.setColor(new Color(0xee,0x20,0x49));g.drawOval(170, 10, 80, 80);}};j.setBounds(0,0,600,400);setSize(600,400);add(j);}public static void main(String[]a){new A().setVisible(true);}}

सेमीकंप्रेस्ड एक: (971)

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class A extends JFrame
{
    public A()
    {
        JPanel j = new JPanel(){
        protected void paintComponent(Graphics g)
        {;
            ((java.awt.Graphics2D)g).setStroke(new  java.awt.BasicStroke(3));
            g.setColor(new Color(0xb,0x8e,0xd8));
            g.drawOval(10, 10, 80, 80);
            g.setColor(new Color(0xf9,0xa9,0x1f));
            g.drawOval(50,40,80,80);
            g.setColor(new Color(0x23,0x1f,0x20));
            g.drawOval(90, 10, 80, 80);
            g.setColor(new Color(0,0x9e,0x59));
            g.drawOval(130,40,80,80);
            g.setColor(new Color(0xee,0x20,0x49));
            g.drawOval(170, 10, 80, 80);}};
        j.setBounds(0,0,600,400);
        setSize(600,400);
        add(j);
    }
    public static void main(String[]a)
    {
        new A().setVisible(true);
    }
}

क्या आप एक स्क्रीनशॉट जोड़ सकते हैं?
पाओलो एबरमन

0

स्क्रीनशॉट, 869
कोड और स्क्रीनशॉट में आउटपुट पॉवरशेल ओलंपिक लोगो


0

SpecBAS

प्रत्येक रिंग एक आंतरिक / बाहरी सर्कल से बना होता है, फिर बाढ़ से भरा होता है।

चौराहों को मैन्युअल रूप से ढूंढना था और उन्हें व्यक्तिगत रूप से भरना था (ताकि आप अभी भी उन दोनों के बीच कुछ लाइनें देख सकें)।

1 INK 0: PAPER 15: CLS: LET r=50
2 FOR x=1 TO 3
3 CIRCLE x*100,100,r: CIRCLE x*100,100,r-10
4 IF x<3 THEN CIRCLE (x*100)+50,150,r: CIRCLE (x*100)+50,150,r-10
5 NEXT x
6 INK 0: FILL 165,130: FILL 195,145: FILL 200,55: FILL 215,145: FILL 245,105
7 INK 9: FILL 100,55: FILL 130,130: FILL 145,105
8 INK 10: FILL 270,135: FILL 295,145: FILL 300,55
9 INK 12: FILL 205,145: FILL 215,120: FILL 250,195: FILL 255,105: FILL 280,120
10 INK 14: FILL 105,145: FILL 110,125: FILL 150,195: FILL 155,105: FILL 190,130

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

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