महान, सफेद, उत्तर!


11

एह!

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

कम्पास गुलाब

पत्र एक अलग फ़ॉन्ट में हो सकते हैं। याद रखें, कम से कम सबसे अच्छा है, तो सबसे कम बाइट गिनती जीतता है!

विशेष विवरण

रंग की

  • हल्का बैंगनी: # 9999FF
  • ग्रे: # E5E5E5

लंबाई और कोण

गुलाब विनिर्देशों

  • कोण a= 45 °
  • कोण b= 90 °
  • लंबाई c= 250 यूनिट
  • लंबाई d= 200 यूनिट
  • लंबाई e= 40 इकाइयाँ
  • लंबाई f= 45 इकाई

स्पष्टीकरण

  • पाठ किसी भी उपयुक्त फ़ॉन्ट में हो सकता है , जहां उपयुक्त यह दर्शाता है कि यह औसत, शिक्षित मानव के लिए पठनीय है।
  • पाठ को अपने निकटतम बिंदु पर स्पाइक्स से 3 यूनिट दूर होना चाहिए, गुलाब को स्पर्श नहीं करना चाहिए, और सीधा होना चाहिए
  • यदि स्पाइक के अंतिम बिंदु से और परे, गुलाब के केंद्र से एक रेखा खींची जाती है, तो उसे +/- 2 इकाइयों की सटीकता के साथ पाठ के केंद्र से पार करना चाहिए (पाठ को अक्ष के साथ केंद्रित होना चाहिए a, जहां aपृष्ठ के मध्य से, स्पाइक के अंत तक और उससे आगे तक का विस्तार होता है)
  • प्रत्येक वर्ण में 15 इकाइयों द्वारा कम से कम 15 इकाइयाँ होनी चाहिए, और उनका x / y या y / x अनुपात 2: 1 से अधिक नहीं होना चाहिए (कोई स्ट्रेचिंग - पठनीयता नहीं)
  • संदर्भ छवि पर बीच में सबसे लंबे स्पिक और टेक्स्ट के बीच से गुजरने वाले डिम सर्कल को खींचना नहीं है।
  • छवि को चौकोर होना चाहिए, और 400px से कम से कम 400px
  • स्रोत के भीतर एक संकुचित छवि को बंद कर दिया गया है
  • एक इकाई में कम से कम 1 पिक्सेल होना चाहिए

जब आप "मेपल सिरप रेसिपी" कहते हैं, तो क्या आपका मतलब है मेपल सिरप बनाने के लिए रेसिपी, या मेपल सिरप से सामान बनाने के लिए रेसिपी? क्योंकि मैं कल्पना नहीं कर सकता कि वे पूर्व ...
जो जेड

@JoeZ। दोनों, स्पष्ट रूप से ... (;
ग्लोबबी

जवाबों:


7

HTML + CSS, 487 + 189 = 676

कम्पास गुलाब का निर्माण सीएसएस सीमाओं से त्रिकोण तकनीक और कुछ बुनियादी परिवर्तनों का उपयोग करके किया गया है । अक्षरों को केवल निश्चित स्थान दिए गए हैं, जिससे वे काफी लंबे हो गए: /

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

html{transform:scale(0.2)}body{margin:5em}hr{margin:0;float:left;border:250px solid transparent;border-right:58px solid #E5E5E5;border-bottom:58px solid #9999FF}a{position:fixed;width:616px;font-size:4em}#a{transform:rotate(90deg)}#b{transform:rotate(270deg)}#c{transform:rotate(180deg)}#d{transform:rotate(45deg)scale(.8)}#n{top:20px;left:365px}#e{top:356px;left:700px}#s{top:700px;left:370px}#w{top:356px;left:10px}#N{top:150px;left:550px}#E{top:560px;left:550px}#S{top:560px;left:140px}#W{top:150px;left:140px}
<a id=n>N</a><a id=e>E</a><a id=s>S</a><a id=w>W</a><a id=N>NE</a><a id=E>SE</a><a id=S>SW</a><a id=W>NW</a><a id=d><hr><hr id=a><hr id=b><hr id=c></a><a><hr><hr id=a><hr id=b><hr id=c></a>


ऐसा लगता है जैसे बीच में एक छोटा ग्रे बॉक्स है, जिसने कम्पास को अनुपयोगी बना दिया है। क्या कोई मौका है जिसे आप ठीक कर सकते हैं?
ग्लोबबी

1
@globby यह मेरे लिए नहीं दिखा। क्या आप स्क्रीनशॉट पोस्ट कर सकते हैं?
grc

imgur.com/dYQoLcM,sSrR94O मोज़िला फ़ायरफ़ॉक्स 35.0 का उपयोग Windows 8.1 पर
globby

@globby जो सिर्फ स्केलिंग का असर हो सकता है। क्या यह पूर्ण आकार के JSFiddle पर होता है?
grc

3

प्रसंस्करण 2 - 636

एक त्वरित समाधान जो प्रसंस्करण त्रिकोण पद्धति का उपयोग करके सभी त्रिकोणों को खींचता है और फिर पत्रों को उनके सुझावों पर रखता है।

int s,h,m,b,n,t;void setup(){s=400;h=s/2;b=125;t=71;n=32;m=28;size(s,s);noStroke();fill(229);t(h-t,h-t,h-m,h);t(h-t,h+t,h,h+m);t(h+t,h-t,h,h-m);t(h+t,h+t,h+m,h);fill(#9999FF);t(h-t,h-t,h,h-m);t(h-t,h+t,h-m,h);t(h+t,h-t,h+m,h);t(h+t,h+t,h,h+m);t(h-b,h,h-n,h-n);t(h+b,h,h+n,h+n);t(h,h-b,h+n,h-n);t(h,h+b,h-n,h+n);fill(229);t(h-b,h,h-n,h+n);t(h+b,h,h+n,h-n);t(h,h-b,h-n,h-n);t(h,h+b,h+n,h+n);fill(color(0));text("NW",h-t-14,h-t-2);text("NE",h+t+2,h-t-2);text("SW",h-t-14,h+t+10);text("SE",h+t,h+t+10);text("N",h-5,h-b-5);text("S",h-5,h+b+12);text("E",h+b+2,h+5);text("W",h-b-14,h+5);}void t(int a,int b,int c,int d){triangle(h,h,a,b,c,d);}

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

आप यहाँ प्रसंस्करण प्राप्त कर सकते हैं


3

PHP, 628 बाइट्स

सुविधा के लिए कुछ लाइनब्रेक जोड़े।

$c=$z.create;$h=$c($w=250,$w);$i=$c(530,533);$a=$z.colorallocate;$a($h,$f=255,$f,$f);$a($i,$f,$f,$f);$a($h,229,229,229);$a($h,153,153,$f);
$p=$z.filledpolygon;$p($h,$o=[0,64,0,0,141,141,],3,2);$p($h,[64,0]+$o,3,1);$p($h,$o=[0,$w,0,0,57,57],3,1);$p($h,[$w,0]+$o,3,2);
$c=$z.copy;$r=$z.rotate;$c($i,$h,263,267,0,0,$w,$w);$c($i,$r($h,90,0),263,17,0,0,$w,$w);$c($i,$r($h,180,0),13,17,0,0,$w,$w);$c($i,$r($h,270,0),13,267,0,0,$w,$w);
$s=$z.string;$s($i,5,259,0,N,3);$s($i,5,259,518,S,3);$s($i,5,0,259,W,3);$s($i,5,518,259,E,3);$s($i,5,106,108,NW,3);$s($i,5,406,108,NE,3);$s($i,5,406,410,SE,3);$s($i,5,106,410,SW,3);
imagepng($i,"n.png");

के साथ चला -rn.pngछवि के साथ एक फ़ाइल बनाता है ; यूनिट 2 पिक्सल है।

मुझे स्वीकार करना चाहिए कि मुझे ट्रायल एंड एरर द्वारा हवाओं के लिए कोर्ड मिला, और वे शायद थोड़े से बंद हैं। जल्द ही करेंगे गणना; लेकिन मैं वादा करता हूं: वे बाइट की गिनती नहीं बदल सकते।
अब मेरी तड़प तड़प तड़प कर मज़ा ले रही थी और imagecopyक्या कर रही थी … क्या सिसक रही थी !

गोल्फ पर: कई चालें नहीं; लेकिन इन कुछ लोगों ने बहुत कुछ बचाया:

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

PHP उत्तर सितारा

टूट - फूट

// create images and allocate colors
$c=imagecreate;
$h=$c($w=250,$w);   // helper image - just as large as needed or imagecopy will screw up 
$i=$c(530,533);     // main image

$a=imagecolorallocate;
$a($h,$f=255,$f,$f);    // white is 0
$a($i,$f,$f,$f);    // must be assigned to both images
$a($h,229,229,229); // grey is 1
$a($h,153,153,$f);  // purple is 2

// draw the south-east quadrant
$p=imagefilledpolygon;
// small triangle purple first
$p($h,$o=[
// point 3: 0.8*e *2
    0,64,
// point 1: center
    0,0,
// point 2: a=45 degrees, d=200 units
    141,141,// d/sqrt(2)=141.421356
],3,2);
// small triangle grey
$p($h,[64,0]+$o,3,1);

// large triangles
$p($h,$o=[
    0,$w,
    0,0,
    57,57   // e*sqrt(2)=56.5685424949
],3,1);

$p($h,[$w,0]+$o,3,2);

// create rose
$c=imagecopy;
$r=imagerotate;
$c($i,$h,263,267,0,0,$w,$w);            // copy quadrant to main image (SE)
$c($i,$r($h,90,0),263,17,0,0,$w,$w);    // rotate quadrant and copy again (NE)
$c($i,$r($h,180,0),13,17,0,0,$w,$w);    // rotate and copy again (NW)
$c($i,$r($h,270,0),13,267,0,0,$w,$w);// rotate and copy a last time (SW)

// add circle
#imageellipse($i,263,267,500,500,2);    // grey is now 2: imagecopy shuffled colors

// add names
$s=imagestring;
$s($i,5,259,  0,N,3);   // 5 is actually the largest internal font PHP provides
$s($i,5,259,518,S,3);   // unassigned colors are black
$s($i,5,  0,259,W,3);
$s($i,5,518,259,E,3);

$s($i,5,106,108,NW,3);
$s($i,5,406,108,NE,3);
$s($i,5,406,410,SE,3);
$s($i,5,106,410,SW,3);

// output
#header("Content-Type:image/png");
#imagepng($i);
imagepng($i,"n.png");

1

आर, 877 850 813

लूत के कमरे में गोल्फ के लिए यह मुझे संदेह है, लेकिन मैं यह देखना चाहता था कि क्या मैं नियमों का पालन करने में कामयाब हूं।

संपादित करें: बहुभुज निर्माण के आसपास कुछ सफाई खो दिया, कुछ हटाने की रूपरेखा प्राप्त की

a=45;b=90;c=125;e=40;h=c(0,0,b,a,a,0,a,b)*pi/180;i=c(0,c,c,100,e,a,(2*a^2)^.5,a);x=i*sin(h);y=i*cos(h);q=x[6:7];r=x[7:8];s=x[2:3];t=x[c(5,5)];u=y[6:7];v=y[7:8];w=y[2:3];z=y[c(5,5)];m=(s-t);n=(w-z);o=(q-r);p=(u-v);i=((q*v-u*r)*m-o*(s*z-w*t))/(o*n-p*m);x=c(x,i)[c(1,2,5,1,3,5,5,4,10,5,4,9)];y=c(y,rev(i))[c(1,2,5,1,3,5,5,4,10,5,4,9)];png("1.png",400,400);par(mar=rep(0,4));a=c(-200:200);plot(a,a,type="n");for(b in 0:3){for(i in(0:3)*3+1){a=c(1,1,1,-1,-1,-1,-1,1);polygon(x[(i):(i+3)]*a[b*2+1],y[(i):(i+3)]*a[b*2+2],border=NA,col=c("#9999FF","#E5E5E5")[(i%%6%/%4+b%%2)%%2+1]);}};for(i in 1:4){a=c("N","NE","E","SE","S","SW","W","NW");b=a[i*2-1];c=a[i*2];o=c(1,1,-1,-1,1);n=o[i+1];m=o[i];e=c(5,2)[i%%2+1];text((x[e]+(11*abs(i%%2-1)))*m,(y[e]+(12*i%%2))*n,b,cex=1.8);text((x[8]+10)*m,(y[8]+12)*n,c,cex=1.8)};dev.off()

यह निम्न png छवि उत्पन्न करता है

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

मैं क्या कर रहा हूँ, इसका थोड़ा सा विवरण

a=45;
b=90;
c=125;
e=40;
h=c(0,0,b,a,a,0,a,b)*pi/180;            # angles to known vertices in one quadrant
i=c(0,c,c,100,e,a,(2*a^2)^.5,a);        # distances to known vertices
x=i*sin(h);                             # calculate x ordinates
y=i*cos(h);                             # calculate y ordinates
q=x[6:7];                               #-----------------------
r=x[7:8];                               #
s=x[2:3];                               # Get the lines required 
t=x[c(5,5)];                            # to determine the vertex
u=y[6:7];                               # for the minor pointers
v=y[7:8];                               #
w=y[2:3];                               # 
z=y[c(5,5)];                            #------------------------ 
m=(s-t);                                # Intersect them
n=(w-z);                                # to give coordinate.
o=(q-r);                                # Just calculate the x's
p=(u-v);                                # as they can be reversed
i=((q*v-u*r)*m-o*(s*z-w*t))/(o*n-p*m);  #------------------------
x=c(x,i)[c(1,2,5,1,3,5,5,4,10,5,4,9)];      # X Triangle groups
y=c(y,rev(i))[c(1,2,5,1,3,5,5,4,10,5,4,9)]; # Y Triangle groups
png("1.png",400,400);                   # Set output to png
par(mar=rep(0,4));                      # Make margins 0
a=c(-200:200);
plot(a,a,type="n");                     # Start plot
for(b in 0:3){for(i in(0:3)*3+1){       # draw polygons, alternating colors and drawing all quadrants
a=c(1,1,1,-1,-1,-1,-1,1);
polygon(x[(i):(i+3)]*a[b*2+1],y[(i):(i+3)]*a[b*2+2],border=NA,col=c("#9999FF","#E5E5E5")[(i%%6%/%4+b%%2)%%2+1]);
}};
for(i in 1:4){                          # Add text to compass points for each quadrant
a=c("N","NE","E","SE","S","SW","W","NW");b=a[i*2-1];c=a[i*2];
o=c(1,1,-1,-1,1);n=o[i+1];m=o[i];
e=c(5,2)[i%%2+1];
text((x[e]+(11*abs(i%%2-1)))*m,(y[e]+(12*i%%2))*n,b,cex=1.8);
text((x[8]+10)*m,(y[8]+12)*n,c,cex=1.8)
};
dev.off()                               # Close PNG

1

गणितज्ञ, 347 बाइट्स

p=q={{0,0},{0,125},40{1/Sqrt[2],1/Sqrt[2]}};q[[3,1]]*=-1;m=5p[[3]]/2;s=u={{0,0},m,{32,0}};u[[3]]={0,32};r={{0,1},{-1,0}};t=Polygon[#]&;z=MatrixPower[r,#]&;a[v_]:=Table[t[z[n].#&/@v],{n,4}];i=Table[Text[#[[j]],z[j].#2],{j,4}]&;G=RGBColor["#E5E5E5"];Graphics[{i[{E,S,W,N},{0,130}],i[{NE,SE,SW,NW},1.06m],G,a[u],RGBColor["#9999FF"],a[s],a[p],G,a[q]}]

Pregolfed:

p = q = {{0, 0}, {0, 125}, 40 {1/Sqrt[2], 1/Sqrt[2]}}; (*defining points*)
q[[3, 1]] *= -1;                                       (*for triangles*)
m = 5 p[[3]]/2;
s = u = {{0, 0}, m, {32, 0}};
u[[3]] = {0, 32};
r = {{0, 1}, {-1, 0}};                                 (*-pi/2 rotation matrix*)

t = Polygon[#] &;
z = MatrixPower[r, #] &;
a[v_] := Table[t[z[n].# & /@ v], {n, 4}];              (*rotate the sets of points*)
                                                       (*four times*)

i = Table[Text[#[[j]], z[j].#2], {j, 4}] &;
G = RGBColor["#E5E5E5"];                               (*need to use this twice*)
                                                       (*so triangles overlap*)
                                                       (*properly so define a variable*)

Graphics[{i[{E, S, W, N}, {0, 130}], 
  i[{NE, SE, SW, NW}, 1.06 m], G, a[u], RGBColor["#9999FF"], a[s], 
  a[p], G, a[q]}]

Nऔर E(प्राकृतिक लॉग का आधार) दोनों ही Mathematica में बिल्ट-इन हैं, लेकिन जैसे ही टेक्स्ट E आपको एक लोअरकेस फॉन्ट में स्टाइल में मिल जाता है, लेकिन समस्या यह नहीं कहती है कि हम सभी टेक्स्ट के लिए केवल एक फॉण्ट का उपयोग कर सकते हैं। यदि यह एक आवश्यकता है, तो के Eसाथ बदलें "E"और मुझे दो बाइट्स मिलते हैं।

Sqrt[2]Mathematica में दो अक्षरों में स्टाइल किया जा सकता है, इसलिए यदि हम प्रत्येक Sqrt[2]को दो वर्णों के रूप में गिनते हैं तो मेरी नई बाइट गिनती 349 के बजाय 339 है।

नीचे की छवि निर्मित है।

दिशा सूचक यंत्र

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