Vẽ chiếc mũ bí mật chào mừng


56

Winter Bash 2014 đang ở thời kỳ đỉnh cao và tất cả chúng ta không yêu những chiếc mũ sao? Đặc biệt là những chiếc mũ bí mật!

Vậy tại sao không vẽ một trong những chiếc mũ bí mật?

Các thách thức

Nhiệm vụ của bạn là vẽ Mũ Chào mừng theo tỷ lệ, theo ngôn ngữ bạn chọn và có một cấu trúc chính xác như xuất hiện trên trang này .

Như mọi khi , bạn có thể kết xuất mũ vào một tệp hoặc màn hình bằng đồ họa vector hoặc raster. Nếu đầu ra của bạn được rasterized, hình ảnh của bạn phải có kích thước 400x400 pixel trở lên.

Hơn nữa, nội dung thực tế của chiếc mũ (diện tích hình chữ nhật giới hạn của các phần được tô màu của hình ảnh) sẽ chiếm hơn 40% hình ảnh đầu ra của bạn.

Thông số kỹ thuật

Hình ảnh dưới đây liệt kê các kích thước khác nhau của chiếc mũ. Tất cả các kích thước là trong đơn vị, ví dụ, pixel. Tất cả bán kính đường viền trong hình ảnh sẽ được vẽ với bán kính 13đơn vị.

nhập mô tả hình ảnh ở đây

Màu sắc :

  • Màu đỏ trong ngôi sao và vòng tròn - rgb (255, 28, 34)
  • Màu vàng trong vòng tròn - rgb (255, 202, 87)
  • Màu xám nhạt nhất - rgb (88, 88, 92)
  • Xám đậm nhất - rgb (31, 26, 26)
  • Trung xám - rgb (64, 64, 64)

Chấm điểm

Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.

Như một lời cảnh báo, sử dụng nén hiện có (như nhúng GIF đã nén) rơi vào một số lỗ hổng tiêu chuẩn .


Về chỉnh sửa được đề xuất: Tôi đã chọn từ chối. Tôi thấy hình ảnh hiển thị chính xác như nó là.
mbomb007

Câu trả lời:


15

GolfScript ( 376 373 364 350 hoặc 645 610 607 byte)

Theo đặc tả ban đầu , được gọi là xây dựng chính xác của SVG, một SVG được đánh gôn được tạo ra trong 607 byte.

Mã chứa nhiều ký tự không in, vì vậy đây là đầu ra xxd:

0000000: 221a c837 cde6 0c0c 4658 5786 cead ca66  "..7....FXW....f
0000010: 3507 d130 1577 4657 4067 df6b 97e7 510f  5..0.wFW@g.k..Q.
0000020: cbb0 e3e5 77c6 a91d d830 fa92 eea0 d447  ....w....0.....G
0000030: 7721 cc59 3f4c 230b e0bb fd3e ecf3 d4f7  w!.Y?L#....>....
0000040: 2c6b abd5 b1e5 939d 68b4 e89e 39ca a259  ,k......h...9..Y
0000050: b934 ef6f 203a 7abf 1a2c b468 3351 4c53  .4.o :z..,.h3QLS
0000060: c056 9a59 f38c a97e cf82 8840 ee7c 43e4  .V.Y...~...@.|C.
0000070: 123f df1a 00d4 542d a29c 0195 3ad5 4af4  .?....T-....:.J.
0000080: c644 57c7 0b6b 4d4f 908b 8cf7 c8e2 536d  .DW..kMO......Sm
0000090: 9d36 1139 1406 5c5c dcbc 3a11 1993 63a6  .6.9..\\..:...c.
00000a0: 4f8b 7b62 de77 5158 a485 dec1 87b4 1d11  O.{b.wQX........
00000b0: 01b1 e49d 8adb 0b29 ad44 93e4 7bbd 027e  .......).D..{..~
00000c0: 7a6f 60ca 99f4 6ab3 7bc0 63c3 ba70 1220  zo`...j.{.c..p. 
00000d0: 1aea 9206 da5a 95ce 6f70 67f8 856e 8807  .....Z..opg..n..
00000e0: adec e533 0c1e 3dc6 96e5 54d4 2837 4497  ...3..=...T.(7D.
00000f0: f5ea 2135 d261 9c02 fa61 c12a 7180 085a  ..!5.a...a.*q..Z
0000100: a5b8 e3d6 68cb 0659 f4ad d01d 5fc4 9e5b  ....h..Y...._..[
0000110: d030 46d5 96c4 439f da99 2cb1 52b9 5d53  .0F...C...,.R.]S
0000120: 098e 7598 2785 a962 a40d edbd 18cb e46c  ..u.'..b.......l
0000130: 6edb ba9f 17be 36ab ef23 0caf 3ce8 352d  n.....6..#..<.5-
0000140: fad5 762b a388 ca17 413f 7dac 6dd1 116e  ..v+....A?}.m..n
0000150: b2e8 9cd1 d00a dda1 716d a148 acc7 8749  ........qm.H...I
0000160: f2c3 a7a9 8128 02e9 d83c f350 7a02 74ec  .....(...<.Pz.t.
0000170: 6270 6089 a16d 7bfa b6dd e56a 366a d85b  bp`..m{....j6j.[
0000180: 33e5 b777 05c1 6f4e f06b ca95 3ffc 49f7  3..w..oN.k..?.I.
0000190: 1a08 6bc5 abb0 c745 e439 b87e b81c 52c8  ..k....E.9.~..R.
00001a0: a445 935e 5c5c 00d3 34de c002 721c b69d  .E.^\\..4...r...
00001b0: 16ee aab0 9562 4d44 44ed 0193 13a7 eed2  .....bMDD.......
00001c0: 99e4 6350 a756 c21a 980b 6bca 57f9 8443  ..cP.V....k.W..C
00001d0: eecc 9fd1 05ce 78c4 f95f dc90 8926 6eb4  ......x.._...&n.
00001e0: 88b8 7b90 44be 33c3 cc2a b032 d809 17d0  ..{.D.3..*.2....
00001f0: 7e32 c4c9 e37f ceb3 b1e0 b634 a690 8163  ~2.........4...c
0000200: cd34 e3d9 9768 3e13 ac10 5003 1cb7 af6b  .4...h>...P....k
0000210: 863f cba0 9896 e50a d029 8e2b 584c d86f  .?.......).+XL.o
0000220: 67a7 120e 318a cb22 3235 3662 6173 6520  g...1.."256base 
0000230: 3132 3462 6173 655b 305d 2f28 3332 2c7b  124base[0]/(32,{
0000240: 5c5b 3124 295d 2f5c 3224 3d2a 7d2f 5c2c  \[1$)]/\2$=*}/\,
0000250: 297b 2d2e 3634 3e33 322a 2b7d 2b25 2b    ){-.64>32*+}+%+

Đây là một biến thể của công cụ ngữ pháp mang tính xây dựng mà những người theo sẽ quen thuộc với:

'MAGIC STRING'256base 124base[0]/(40,{\[1$)]/\2$=*}/\,){-.64>32*+}+%+

Hóa ra là tốt hơn một chút so với SVG đánh gôn, nén nó, và sau đó viết thường sau khi giải nén.

Khi chạy, nó tạo ra một SVG 840 byte:

<svg width="192" height="192"><g transform="translate(-19.356 39.823) scale(.11435537421402706)"><path d="m873 126c-28-56-97-79-153-50l-361 182c-40 20-63 60-62 102v369c0 63 51 114 114 114h1198c63 0 114-51 114-114v-369c1-62-22-82-62-102l-361-182c-56-29-125-6-153 50c-28 56-6 124 49 152h-372c55-28 77-96 49-152z" fill="#231f20"/><path d="m1642 812c0 60-49 109-109 109h-1047c-60 0-109-49-109-109v-435c0-60 49-109 109-109h96.557636322653a530 274 0 0 1 854.884727354693 0h96.557636322653c60 0 109 49 109 109v435z" fill="#424143"/><path d="m1561 826c0 52-42 95-95 95h-912c-52 0-95-42-95-95v-463c0-52 42-95 95-95h912c52 0 95 42 95 95v463z" fill="#595a5c"/><circle cy="594" cx="1010" r="199" fill="#f9c960" stroke="#ec2227" stroke-width="42"/><path d="m1063 615l85-62-105 0-33-100-33 100-105 0 85 62-32 100 85-62 85 62z" fill="#ec2227"/></g></svg>

Tôi đã điều chỉnh vị trí của một vài milipixel và sửa một điểm bất đối xứng nhỏ ở phần màu xám tối nhất.


Nhưng những thay đổi đối với câu hỏi và thảo luận trong trò chuyện cho thấy rằng thực sự cho phép tạo ra một xấp xỉ tốt cho SVG, có thể được thực hiện trong 364 byte. Chuỗi giải nén tương tự nhau, vì vậy đầu ra xxd của tệp GolfScript là:

0000000: 2710 9f1d b7bb 6ca9 ad60 1325 b869 45a6  '.....l..`.%.iE.
0000010: 9371 2eee 1271 1dac 0244 9ca3 2820 e6be  .q...q...D..( ..
0000020: b038 68e4 4e53 bbe9 7809 a67a 5f02 2f14  .8h.NS..x..z_./.
0000030: 66a1 0cb3 648c 76d4 0450 028d fd32 b81f  f...d.v..P...2..
0000040: 351a d449 bba8 e685 4de8 1fc0 abfd 8b9f  5..I....M.......
0000050: d9d9 33cd 16e9 5c27 b7a0 dc0f 4138 a2ca  ..3...\'....A8..
0000060: 2b45 a2c2 571e 7e1e 1030 dcfd b48e 377b  +E..W.~..0....7{
0000070: 112e 7762 d14c 1fed 0bcb 15b4 c383 f828  ..wb.L.........(
0000080: b317 8c9f 890b ce84 7782 4c10 fc8e 7602  ........w.L...v.
0000090: 9fef 9563 fe30 45b0 7144 30b3 f3c5 fa22  ...c.0E.qD0...."
00000a0: ccae 8a08 c506 466b 6b84 317e 62dd a558  ......Fkk.1~b..X
00000b0: 8423 d8ef 9d67 e807 0d23 847d 4dab 68ff  .#...g...#.}M.h.
00000c0: 952b ca20 14d3 0881 2880 6611 eb53 10c6  .+. ....(.f..S..
00000d0: 0058 573f 3c87 957c 8512 59ff 94f3 ae38  .XW?<..|..Y....8
00000e0: 4145 bf8d 4123 6e84 aa62 904d a878 0bca  AE..A#n..b.M.x..
00000f0: 854b deaa 32ae 70fc b31a 9578 676a df8a  .K..2.p....xgj..
0000100: 7310 ecfc 47d2 5dde 1a8c 3898 943b ede3  s...G.]...8..;..
0000110: d0a2 55a4 eb00 b623 0302 d79c a712 b616  ..U....#........
0000120: 5037 dc2d 0dad 2732 3536 6261 7365 2031  P7.-..'256base 1
0000130: 3133 6261 7365 5b30 5d2f 2832 312c 7b5c  13base[0]/(21,{\
0000140: 5b31 2429 5d2f 5c32 243d 2a7d 2f5c 2c29  [1$)]/\2$=*}/\,)
0000150: 7b2d 2e36 343e 3332 2a2b 7d2b 252b       {-.64>32*+}+%+

và tạo tệp SVG 547 byte:

<svg width="1426" height="858"><path d="m475 114-361.5 182v370h1199v-370l-361.5-182" stroke="#231f20" stroke-linecap="round" stroke-linejoin="round" stroke-width="227"/><ellipse cx="713" cy="367" rx="530" ry="274" fill="#424143"/><rect x="80" y="205" width="1266" height="653" rx="109" ry="109" fill="#424143"/><rect x="161" y="205" width="1103" height="653" rx="95" ry="95" fill="#595a5c"/><circle cx="713" cy="531" r="199" fill="#f9c960" stroke="#ec2227" stroke-width="42"/><path d="m713 390 85 262-223-162 276 0-223 162z" fill="#ec2227"/></svg>

Cảm ơn Paul LeBeau đã chỉ ra cách tiết kiệm 7 byte trong SVG đã dịch ra 9 byte trong GolfScript và câu trả lời của anh ấy đã chứng minh rằng ngôi sao có thể được rút ra chỉ với 5 điểm. (Sử dụng câu trả lời của anh ấy, tôi có thể nhận được tới 329 byte, hoặc 323 với một số điều chỉnh cho câu trả lời của anh ấy, nhưng tôi không thoải mái với điều đó).

Được xuất ở mức 50% với Inkscape:

Hình ảnh mũ được hiển thị dưới dạng PNG

Để xem cấu trúc, đây là SVG được hiển thị với fill="none"mọi thứ và một số màu tô được thay đổi thành màu Stroke: Hình ảnh phác thảo


@Optimizer, nhưng không giống như JS, nó gần như hoàn hảo về pixel. Khác với việc chơi golf, điểm khác biệt duy nhất của SVG ban đầu là nó sửa lỗi không đối xứng. Nếu tôi thư giãn nó theo phong cách hình ảnh được đánh dấu của Martin, tôi có thể có thể tiết kiệm rất nhiều.
Peter Taylor

"<G>" và "</ g>" là không cần thiết, vì vậy bạn sẽ có thể tiết kiệm thêm một chút.
Paul LeBeau

@PaulLeBeau, rất đúng, cảm ơn.
Peter Taylor

26

SVG ( 462 460 454 429 384 365 byte)

Tôi biết đó không phải là ngôn ngữ lập trình, nhưng tôi nghĩ rằng ít nhất nó sẽ hữu ích cho bất kỳ ai tạo ra đầu ra SVG ...

Điều này dựa trên SVG của Peter Taylor.

Bằng cách sử dụng các hợp đồng ban đầu và tối ưu hóa các đường dẫn một chút, tôi đã xoay sở để thu nhỏ SVG xuống. Tôi cũng cố định màu sắc.

<svg><g stroke-linecap=round stroke-linejoin=round stroke-width=26><path d=M54,13,13,36V75H151V36L110,13 stroke=#1f1a1a /><path d=M21,84V36H37A91,91,0,0,1,127,36h16V84z stroke=#404040 /><path d=M30,36v48h104V36z stroke=#58585c fill=#58585c /></g><circle cx=82 cy=60 r=23 fill=#ffca57 stroke=#ff1c22 stroke-width=5 /><path d=M82,43,92,74,66,55H98L72,74z fill=#ff1c22

Cập nhật: Đã sửa lỗi lỗ hổng được chỉ ra bởi Peter Taylor và vị trí của các môn phái và lưu thêm 2 byte.

Cập nhật 2: Kết hợp một sửa chữa và đề xuất khác từ Peter (-6 byte)

Cập nhật 3: Chỉ cần chú ý các hướng dẫn hiện chỉ định tất cả bán kính là 13, vì vậy, tận dụng lợi thế đó và tối ưu hóa các đường dẫn thêm một chút, tôi đã lưu thêm 25 byte. Fiddle dễ đọc hơn ở đây.

Cập nhật 4: Vì tôi đã giả sử SVG được nhúng trong HTML (các SVG độc lập cần khai báo không gian tên), tôi thực sự có thể siết chặt điều này hơn nữa. (a) Tôi không cần các thuộc tính chiều rộng và chiều cao vì kích thước của SVG nhỏ hơn các trình duyệt kích thước mặc định cung cấp cho các đối tượng có kích thước không xác định (300x150) và (b) trình phân tích cú pháp HTML đang tha thứ cho các thuộc tính mà don Không có dấu ngoặc kép, vì vậy một số trong số chúng có thể được gỡ bỏ (ý tưởng từ Squeamish Ossifrage ). Lưu thêm 45 byte.

Cập nhật 5: Sử dụng các thủ thuật của hsl để khử màu và bỏ các thẻ kết thúc. Chúng tôi đã lưu thêm 19 byte. Cái sau có vẻ hơi gian lận với tôi lúc đầu, nhưng vì nó hoạt động trong tất cả các trình duyệt, tôi đã thay đổi quyết định. :) Cảm ơn hsl!


Một số ý tưởng hay, nhưng có một lỗ hổng khá tệ. Màu xám trung bình không đủ cao để che lấp màu xám đen. Tôi không chắc liệu điều này được khắc phục tốt nhất bằng cách thêm fill="none"vào nhóm hoặc bằng cách điều chỉnh đường cong.
Peter Taylor

Cũng phát hiện, cảm ơn. Đã sửa bây giờ. Tôi đã không sử dụng bán kính cung tròn bên phải vì tôi quên trừ một nửa chiều rộng nét.
Paul LeBeau

Các <rect>nên có chiều cao 74hơn 78. Và tôi làm cho nó tiết kiệm 5 char để thay thế nó với một <path>với cả hai fillstroke, stroke-width="18", sau đó di chuyển bên trong <g>và chung stroke-width="18"chuyển từ hai con đường đến <g>. Có cái khác <path>chứ không <rect>phải cũng giúp khả năng nén một chút.
Peter Taylor

Cảm ơn. Dường như có một sự khác biệt giữa bán kính (8 so với 9), đó là lý do tại sao tôi có chúng khác nhau. Nhưng điều đó không hoàn toàn rõ ràng, vì vậy dù sao cả hai đều là 9.
Paul LeBeau

Bán kính được chỉ định là 13 tôi thấy, vì vậy tôi đã cập nhật SVG.
Paul LeBeau

20

Toán học 787 612 600 514 506 byte

Số lượng đáng ngạc nhiên của mã cần thiết. Chắc chắn sẽ bị đánh.

Hình thức

red=RGBColor[1.,.11,.13]
yellow=RGBColor[1.,.79,.34]
lightGrey=RGBColor[.35,.35,.36]
midGrey=RGBColor[.25,.25,.25]
r=RoundingRadius->8;
pentagonalVertices[offset_]:=Table[{Cos[2π k/5+ offset],Sin[2π k/5+offset]},{k,0,5}];
x=63;x2=72;
y=37;
pts={{e=22,50},{h=72,30},{h,-17},{-h,-15},{-h,30},{-e,50}};
pts2={{-h,-15},{-h,30},{-e,50}}
Graphics[{
{Black,Thickness[.13],JoinForm["Round"],CapForm["Round"], Line[pts]},
midGrey,Rectangle[{-x2,-y},{x2,y},r],
Disk[{0,-55},104,{Pi/3,2Pi/3}],
White,Rectangle[{-40,-60},{40,0},r],
lightGrey,Rectangle[{-x,-y},{x,y},r],
red,Disk[{0,0},25],yellow,Disk[{0,0},19.5],red,
GraphicsComplex[16.7 pentagonalVertices[Pi/2],Polygon[{1,3,5,2,4}]],
GraphicsComplex[6.4 pentagonalVertices[3 Pi/2],Polygon[{1,2,3,4,5}]]}]

mũ

Chơi gôn

g=GraphicsComplex;c=RGBColor;d=c[1.,.11,.13];o="Round";k=Rectangle;j=Disk;n=Polygon;r=RoundingRadius->8;w@s_:=Table[{Cos[2\[Pi]k/5+s],Sin[2\[Pi]k/5+s]},{k,0,5}];x=63;i=72;y=37;p={{e=22,50},{h=72,30},{h,-17},{-h,-15},{-h,30},{-e,50}};Graphics[{Thickness[.13],JoinForm@o,CapForm@o,Line@p,c[.25,.25,.25],k[{-i,-y},{i,y},r],j[{0,-55},104,{\[Pi]/3,2\[Pi]/3}],White,k[{-40,-60},{40,0},r],c[.35,.35,.36],k[{-x,-y},{x,y},r],d,j[{0,0},25],c[1.,.79,.34],j[{0,0},19.5],d,g[16.7w[\[Pi]/2],n[{1,3,5,2,4}]],g[6.4w[3\[Pi]/2],n[{1,2,3,4,5}]]}]

Tôi có thể hỏi làm thế nào bạn đếm các byte? (Tôi mới ở đây) Tôi nhận được 651 byte khi đếm phiên bản chơi gôn của bạn với trang web này: Mothereff.in/byte-count
Jean-Paul

1
Tôi sử dụng một ứng dụng truy cập tự động được Wolfram sử dụng để đánh giá thời lượng gửi đến cuộc thi một lớp ( blog.wolfram.com/2014/11/10/ trên ). Nó không tính không gian tùy chọn bao gồm cho dễ đọc. Nó thực sự đọc không, của các ký tự, không phải byte, nhưng tôi giả sử một char = một byte.
DavidC

Có ý nghĩa! Quá tệ Tôi không thể làm tương tự cho bài nộp của mình :) Cảm ơn bạn đã trả lời.
Jean-Paul

Tôi cho rằng bạn có thể nhìn thấy nó theo cách đó. Nhưng điều đó để lại một màn hình rất khó đọc trên một dòng. Tôi thích giữ cho nó dễ đọc.
DavidC

18

HTML + ES6, 533

<canvas id=D width=600 height=400><script>c=D.getContext('2d')
S=x=>c.strokeStyle=F(x)
F=x=>c.fillStyle=x
W=x=>c.lineWidth=x
B=x=>c.stroke()||c.fill()||c.beginPath()
G='s.charCodeAt(i++)*9-300,'
L=s=>B()||eval('for(i in s)i%2||c.lineTo('+G+G+'0)')&&B()
c.lineCap=c.lineJoin='round'
W(60)
S('#1F1A1A')
L(';,+3+BXBX3H,')
S('#404040')
L('.3.EUEU3.3')
c.arc(291,390,270,4,5.2,0)
B()
S('#58585C')
L('131ERER313')
S(R='#FF1C22')
F('#FFCA57')
W(30)
c.arc(291,240,69,0,7,0)
B()
c.font='105px serif'
S(R)
c.fillText('\u2605',239,276)</script>

Đoạn trích (đã sửa đổi):

<canvas style="margin:-40px 0 0 100px;height:250px;" id=D width=600 height=400><script>stages=[function(){c=D.getContext('2d');S=function(x){return c.strokeStyle=F(x)};F=function(x){return c.fillStyle=x};W=function(x){return c.lineWidth=x};B=function(x){return c.stroke()||c.fill()||c.beginPath()};G='s.charCodeAt(i++)*9-300,';L=function(s){return B()||eval('for(i in s)i%2||c.lineTo('+G+G+'0)')&&B()}},function(){c.lineCap=c.lineJoin='round';W(60);S('#1F1A1A');L(';,+3+BXBX3H,')},function(){S('#404040');L('.3.EUEU3.3')},function(){c.arc(291,390,270,4,5.2,0);B()},function(){S('#58585C');L('131ERER313')},function(){S(R='#FF1C22');F('#FFCA57');W(30);c.arc(291,240,69,0,7,0);B()},function(){c.font='105px serif';S(R);c.fillText('\u2605',239,276)}];next=function(i){stages[i]();if(i<6)setTimeout(next,1000,i+1)};next(0)</script>

mũ!


@Optimizer Tôi đã thêm một hình ảnh, vì nó trông ổn đối với tôi trong cả FF và Chrome. Phông chữ phải khác nhau trên Windows hoặc một cái gì đó.
grc

@grc Tôi nghĩ bạn không thể dựa vào một số phông chữ nhất định có sẵn trên tất cả các hệ thống; đặc biệt là không nếu bạn sử dụng serif, thậm chí không phải là một phông chữ cụ thể ...
Alexander

Trong Arial Unicode MS (phông chữ Arial của Windows thực sự có mật mã) mà mật mã thậm chí không có hình dạng phù hợp. Các điểm có một cơ sở hẹp hơn.
Peter Taylor

13

HTML + CSS, 676 636 625 byte

Điều này có thể được đánh gôn rất nhiều, bằng cách loại bỏ những thứ đó left:XXXpxvà sử dụng một số loại định tâm Bây giờ bằng cách sử dụng các phép biến đổi để tập trung mọi thứ thay vì left:XXXpx.

*{left:50%;transform:translate(-50%);position:absolute;border-radius:13px;height:75px}a,b,f{width:145px;background:#404040}b{width:126px;background:#58585C}c{width:163px;height:61px;top:50px}d,e{width:68px;height:40px;top:-15px}c,d,e{background:#1F1A1A}d{left:0;transform:skew(0deg,-26deg);border-radius:9px 24px}e{left:96px;transform:skew(0deg,26deg);border-radius:24px 9px}f{height:40px;width:99px;top:-13px;border-radius:150px/60px}g{height:34px;width:34px;background:#FFCA57;border:5px solid #FF1C22;border-radius:40px;top:13px;color:#FF1C22;font-size:1cm;line-height:31px;padding:3px}
<c><d></d><e></e><f></f><a><b><g>

Lưu ý: Điều này hoạt động tốt nhất / như mong đợi trong Firefox trên Windows

Kết quả cuối cùng trông như:

nhập mô tả hình ảnh ở đây


Tôi chưa bao giờ thấy các thẻ HTML được đánh gôn. Hấp dẫn.
Arturo Torres Sánchez

1
@ ArturoTorresSánchez Sau đó, bạn cần phải xem điều này
Trình tối ưu hóa

Ngôi sao bây giờ trông hơi dịch sang trái và trên đỉnh FF 34.0 / Windows
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

8

ActionScript 3.0, 491 byte

Hình thức chơi gôn:

var h=new Shape(),g=h.graphics,l=g.lineTo,m=g.moveTo,s=g.lineStyle,b=g.beginFill,e=g.endFill,r=g.drawRoundRect;s(23,0x231F20);m(77,18);l(41,36);l(41,73);m(125,18);l(161,36);l(161,73);s();b(0x424143);g.drawEllipse(48,16,106,55);e();b(0x424143);r(38,27,126,65,23,23);e();b(0x595A5C);r(46,27,110,65,17,17);e();s(4.2,0xEC2227);b(0xF9C960);g.drawCircle(101,59,20);e();s();b(0xEC2227);m(106,61);l(115,55);l(104,55);l(101,45);l(98,55);l(87,55);l(96,61);l(93,71);l(101,65);l(110,71);e();addChild(h);

Đầu ra: http://megaswf.com/file/2708781.swf


1
Hoặc: var ww=new WarmWelcome(); stage.addChild(ww);và vẽ nó trong Flash với liên kết AS3:)
wchargein

7

MATLAB R2013a, 551 541

Đây là Code Golf đầu tiên của tôi. Vì vậy, nếu bất cứ điều gì không theo quy tắc, xin vui lòng dạy / nói với tôi :)

Hình thức chơi gôn:

hold on
r=[1 .11 .13];h=[];b=2.4;q=-37;o='Curvature';p='Position'
x='FaceColor';z='EdgeColor';v=@rectangle;t=@repmat;s=@set
for i=1:19;h=[h v(p,[-82+b*i -32+i 22 73]) v(p,[60-b*i -32+i 22 73])];end
s(h,o,1,x,[.12 .1 .1])
c=.8:.01:2.2
h=[h fill(104*cos(c),104*sin(c)-52,t(.25,1,3))]
h=[h v(p,[-72 q 144 74],o,.1,x,t(.25,1,3))]
a=v(p,[-63 q 126 74])
a=[a v(p,[-63 q 126 74])]
s(a,o,.1,x,[t(.35,1,2) .36])
v(p,[-20 -20 40 40],o,1,x,[1 .79 .34],z,r,'LineWidth',10)
plot(0,0,'rp',['Marker' x],r,'MarkerSize',58.5)
s([a h],z,'none')
axis equal off

Đầu ra (rasterized):

nhập mô tả hình ảnh ở đây


6

LaTeX / TikZ (613 byte)

\RequirePackage{xcolor,tikz}\RequirePackage[active,tightpage]{preview}\PreviewMacro[[!]\tikz\def~#1{\definecolor#1{HTML}}~1{EC2227}~2{F9C960}~3{595A5C}~4{231F20}~5{424143}\def\r{rounded
corners}\def\R{radius}\tikz[x=1pt,y=1pt]{\def~{\fill[}\draw[4,line
width=22.8,line
cap=round,line
join=round](-23.8,41.7)--(-59.9,23.5)--(-59.9,-13.3)--(59.9,-13.3)--(59.9,23.5)--(23.8,41.7);~5,x
\R=53,y
\R=27.4](0,16.4)circle;~5,\r=10.9](-63,-32.65)rectangle(63,32.65);~3,\r=9.5](-55.1,-32.65)rectangle(55.1,32.65);~1,\R=22](0,0)circle;~2,\R=17.8](0,0)circle;~1](90:14.1)\foreach\!in{0,...,4}{--(90+\!*144:14.1)}--cycle;}\stop

Kết quả pdflatexlà một tệp PDF có mũ như đồ họa vector và hộp giới hạn chặt chẽ.

Kết quả

Ung dung

\documentclass{minimal}
% Package xcolor provides color model HTML
% in order to take the exact same values, used in the SVG file 
\usepackage{xcolor}
\usepackage{tikz}

% Package preview is used to get a correct bounding
% box for the graphics
\usepackage[active,tightpage]{preview}
\PreviewEnvironment[{[]}]{tikzpicture}

% Color definitions. one digit instead of a name saves many bytes
\definecolor1{HTML}{EC2227}
\definecolor2{HTML}{F9C960}
\definecolor3{HTML}{595A5C}
\definecolor4{HTML}{231F20}
\definecolor5{HTML}{424143}

\begin{document}
  \begin{tikzpicture}[x=1pt,y=1pt]
    % Draws the dark lines in the background
    \draw[4,line width=22.8,line cap=round,line join=round]
    (-23.8,41.7)--(-59.9,23.5)--(-59.9,-13.3)
    --(59.9,-13.3)--(59.9,23.5)--(23.8,41.7);
    % Draws the ellipsis
    \fill[5,x radius=53,y radius=27.4](0,16.4)circle;
    % Draw the rear rectangle 
    \fill[5,rounded corners=10.9](-63,-32.65)rectangle(63,32.65);   
    % Draws the rectangle in the foreground
    \fill[3,rounded corners=9.5](-55.1,-32.65)rectangle(55.1,32.65);
    % Draws the red full circle
    \fill[1,radius=22](0,0)circle;  
    % Draws the inner yellow circle 
    \fill[2,radius=17.8](0,0)circle;
    % Draw the star
    \fill[1](90:14.1)\foreach\!in{0,...,4}{--(90+\!*144:14.1)}--cycle;
  \end{tikzpicture}%
\end{document}

Các giá trị được lấy từ tệp SVG, chúng chính xác hơn (nhưng nó cũng chứa lỗi làm tròn). Phần khó nhất là các đường xiên tối trong nền. Chúng được vẽ dưới dạng đường rất dày với mũ và đường nối tròn.

Hoạt hình


Thật là đẹp :)
Jean-Paul

2

Perl + TK: 555

Các dòng mới chỉ dành cho khả năng đọc, mặc dù tôi đã bị mất rất nhiều biến.

use Tk;@w=(-width=>13);$c=tkinit->Canvas->pack;
$c->createPolygon($a=131,$b=163,168,150,$a,$b,$e=269,$b,232,150,$e,$b,$e,$d=225,$a,$d,-outline=>"#1f1a1a",@w);
$c->createPolygon(137,$f=169,263,$f,263,$g=231,137,$g,-outline=>$h="#".40x3,@w);
$c->createOval($a,147,$e,$g,-fill=>$h,-outline=>$h);
$c->createPolygon(143,$f,257,$f,257,$g,143,$g,-fill=>$l="#58585c",-outline=>$l,@w);
$c->createOval(175,175,$d,$d,-width=>5,-fill=>"#ffca57",-outline=>$r="#ff1c22");
$c->createPolygon((map{200+($_%2?17:6)*sin.628*$_,200+($_%2?17:6)*cos.628*$_}0..11),-fill=>$r);
MainLoop

Đây là một hình ảnh:

nhập mô tả hình ảnh ở đây

Tôi không nghĩ rằng nó gần pixel hoàn hảo, nhưng nó đủ gần :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.