绘制欧盟估计标志


11

欧盟指令(Unicode的U + 212e,您可能不能简单地为这一挑战打印)所使用的“估计”符号的规范非常精确。

欧盟估算标志规范

要复制此问题的一些限制,请执行以下操作:使用矢量或光栅图形将符号渲染到文件或屏幕。如果对输出进行光栅化,则图像的尺寸必须为264像素×240像素或更大。不得绘制任何其他帮助线或长度指示器。


9
相当精确,但仍不清楚。究竟是什么0,0850,013以及0,025测量?0,846中间的对角线是否打算穿过由外层1和外层形成的椭圆的中心0,9
AdmBorkBork '16

1
符号不相同,但是我认为这已经足够接近,可以被认为是dup:codegolf.stackexchange.com/questions/26689/…。我没有用我的双锤。
Digital Trauma

@TimmyD 0,025是横杆的厚度,其在椭圆中心的任一侧延伸+/- 0,0125,而不是位于中心线的顶部。(我将符号反转并选中。)0,013是拐角的半径(应该容易找到拐角圆的中心)。0,085也是拐角的半径(对找到拐角圆的y坐标会有所帮助。)
Level River St

1
更有趣如果您避免使用字母'E', 'N', 'G', 'L', 'A', 'd' ...
共产国际

Answers:


15

VBA,587560字节

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

调用宏U。基本上是很多形状图。形状1是矩形,形状5是圆角矩形,形状9是椭圆形。输出为500宽乘450高。

在此处输入图片说明

编辑:添加了一个圆角矩形(可通过调整将其两端变成半圆),以一次绘制形状在条形顶部生成圆角。


Excel借给您-您确实为此做了很多工作!您可以2通过更改Sub U()Sub U
Taylor Scott Scott

实际上,通过更改fOptional f=0并删除0 f调用,删除其中的空格a=5 Then,将子例程移至工作表代码窗格并删除该ActiveSheet.调用(这意味着将U称为Sheet1.U),然后删除,可以将其减少到535个字节。()Sub U()
泰勒·斯科特

3

Haml + Sass,20 + 722 = 742字节

我敢肯定,这可以打更多,但我对此很满意。在CodePen上演示

注意:由于有默认边距,因此这需要至少1000像素宽的浏览器窗口。

哈姆

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

萨斯

$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字节

#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);}

可以通过粘贴此页面上的代码进行测试:https : //www.shadertoy.com/new

输出(屏幕尺寸为1440 * 900时):

在此处输入图片说明


不确定中心栏两端的拐角处,它们看起来不太正确。
Joffan '16

也许它们应该有一些不同的“大小”,我不太了解它们应该是什么大小,所以用眼睛来近似它吧
显示名称

1
它们应该是半径为0.013(x整个宽度)的圆弧。
乔芬'16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.