Vẽ ký hiệu ước tính của EU


11

Thông số kỹ thuật của dấu hiệu "ước tính" được sử dụng bởi Chỉ thị của Liên minh Châu Âu (U + 212e bằng Unicode, mà bạn không thể đơn giản in cho thử thách này) là khá chính xác.

Đặc điểm kỹ thuật của dấu hiệu ước tính EU

Để sao chép một số hạn chế từ câu hỏi này : Kết xuất biểu tượng vào 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 từ 264 pixel × 240 pixel trở lên. Bất kỳ chỉ số giúp đỡ hoặc chỉ số chiều dài khác không được rút ra.


9
Khá chính xác, nhưng vẫn còn một chút không rõ ràng. Chính xác là 0,085, 0,0130,025đo? Là 0,846đường chéo ở giữa có ý định đi qua tâm chấn của hình elip được hình thành bởi bên ngoài 10,9?
AdmBorkBork

1
Không phải cùng một biểu tượng, nhưng tôi nghĩ rằng điều này đủ gần để được coi là một bản sao: codegolf.stackexchange.com/questions/26689/ trên . Tôi không sử dụng búa đôi của tôi mặc dù.
Chấn thương kỹ thuật số

@TimmyD 0,025 là độ dày của thanh chéo, được kéo dài +/- 0,0125 ở hai bên của tâm hình elip, thay vì ngồi trên đỉnh của đường trung tâm. (Tôi đã đảo ngược ký hiệu và kiểm tra.) 0,013 là bán kính của góc (nên dễ dàng tìm thấy tâm của vòng tròn góc). 0,085 cũng là bán kính của góc (một chút trợ giúp trong việc tìm tọa độ y của đường tròn góc sẽ rất tốt.)
Level River St

1
Thú vị hơn nếu bạn tránh sử dụng các chữ cái 'E', 'n', 'g', 'l', 'a', 'd' ...
Comi INTERN

Câu trả lời:


15

VBA, 587 560 byte

Sub S(a,b,c,d,e,f)
Set v=ActiveSheet.Shapes.AddShape(a,b,c,d,e)
v.Fill.ForeColor.RGB=f
v.Line.Visible=0
If a=5 Then v.Adjustments(1)=.5
End Sub
Sub U():p=91.5:w=-1
S 1,0,0,500,450,w
S 9,0,0,500,450,0
S 9,38.5,13.5,423,423,w
S 1,36,120,29,210,0
S 1,65,80,26.5,290,0
S 1,435,120,29,105,0
S 1,408.5,80,26.5,145,0
q=212.25:S 1,9,q,480,19,0
S 5,p,205.75,317,13,w
S 1,405,231.25,95,131.5,w
r=14.5:S 1,p,70.5,r,30,0
q=85:S 9,p,59.6,q,q,w
S 1,p,349.5,r,30,0
S 9,p,305.4,q,q,w
S 1,395,70.5,r,30,0
S 9,323.5,59.6,q,q,w
q=231.25:S 1,p,q,6.5,6.5,0
S 9,p,q,13,13,w
End Sub

Gọi macro U. Về cơ bản rất nhiều hình vẽ. Hình 1 là hình chữ nhật, 5 hình chữ nhật tròn và 9 là hình bầu dục. Đầu ra rộng 500, cao 450.

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

Chỉnh sửa : thêm hình chữ nhật tròn (có điều chỉnh để biến các đầu thành hình bán nguyệt) để tạo các góc bán kính trên đỉnh của thanh với một hình vẽ.


Cho mượn Excel - Bạn chắc chắn đã đặt rất nhiều công việc vào đó! Bạn có thể giảm 2byte bằng cách thay đổi Sub U()thànhSub U
Taylor Scott

Actuallly, bạn có thể nhận được xuống này để 535 byte bằng cách làm thay đổi fđến Optional f=0và loại bỏ các 0 cuộc gọi f, loại bỏ các không gian trong a=5 Then, di chuyển các chương trình con để một codepane bảng và loại bỏ các ActiveSheet.cuộc gọi (điều này có nghĩa rằng U sau đó được gọi là Sheet1.U) và loại bỏ ()trongSub U()
Taylor Scott

3

Haml + Sass, 20 + 722 = 742 byte

Tôi chắc chắn rằng điều này có thể được chơi golf nhiều hơn nữa, nhưng tôi đủ hạnh phúc với nó. Bản demo trên CodePen .

Lưu ý: Do lề mặc định, điều này cần một cửa sổ trình duyệt rộng tối thiểu 1.000 pixel.

Haml

#u
#v
 #w
 #x
 #y
#z

Sass

$w: 1000px
$h: 900px
$a: 183px
$b: 25px
$p: 85px
$q: 13px
$d: 846px
$e: $w - 2*$a
$f: 143px
$s: 50%
$t: $p/5.5
=d($w:$w,$h:$h)
 width: $w
 height: $h
=m($c)
 background-color: $c
=k
 +m(#000)
 position: absolute
 content: ''
=l
 +k
 +m(#fff)
=o($o:$p)
 +d($o,$p)
=r($a)
 border-radius: $a
*
 +k
html,body
 +l
 position: relative
#u
 +d
 clip-path: ellipse($s $s)
#v
 +d($e)
 left: $a
 clip-path: circle(($d/2) at $s $s)
#v::before,#v::after
 +l
 +d($e,($h -$b)/2)
 +r($q)
#v::after
 bottom: 0
#w,#x
 +o($t)
 top: $f
#w::before,#x::before,#y::before
 +l
 +o
 +r($s 0)
#x,#x::before
 right: 0
#x::before
 +r(0 $s 0 0)
#y
 +o($t)
 bottom: $f
 z-index: 9
#y::before
 +r(0 0 0 $s)
#z
 +l
 +d($s,267px)
 top: ($h+$b)/2
 right: 0

3

GLSL + shadertoy.com, 349 345 344 byte

#define F float
void mainImage(out vec4 R,vec2 C){F S=min(iResolution.x,iResolution.y/0.9);vec2 p=C/vec2(0.5,0.45)/S-1.;F A=0.94-length(p*vec2(1.22,1));F H=min(min(-p.y-0.025,p.y+0.551),p.x);F B=max(length(p)-1.,min(abs(p.y)-0.025,max(A,H)));F D=max(min(p.x,-p.y),max(-A,0.634-abs(p.x)));R=vec4(vec3(max(H,min(B*D*64.-0.01,min(B,D)))*S/3.),1);}

Có thể được kiểm tra bằng cách dán mã trên trang này: https://www.shadertoy.com/new

Đầu ra (khi kích thước màn hình là 1440 * 900):

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


Không chắc chắn về các góc của bạn ở cuối thanh trung tâm ở đó, chúng không hoàn toàn đúng.
Joffan

Có lẽ chúng nên có một "kích thước" khác nhau một chút, tôi thực sự không hiểu kích thước của chúng là bao nhiêu, vì vậy hãy xấp xỉ nó bằng mắt
Tên hiển thị

1
Chúng phải là các cung tròn có bán kính 0,013 (x toàn bộ chiều rộng của hình).
Joffan
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.