Zeichnen Sie das EU-Schätzzeichen


11

Die Spezifikation des von der Richtlinie der Europäischen Union verwendeten "geschätzten" Zeichens (U + 212e in Unicode, das Sie möglicherweise nicht einfach für diese Herausforderung drucken) ist ziemlich genau.

Spezifikation des EU-Schätzzeichens

So kopieren Sie einige Einschränkungen aus dieser Frage : Rendern Sie das Symbol mithilfe von Vektor- oder Rastergrafiken in eine Datei oder einen Bildschirm. Wenn Ihre Ausgabe gerastert ist, muss Ihr Bild Abmessungen von 264 Pixel × 240 Pixel oder mehr haben. Andere Hilfslinien oder Längenindikatoren dürfen nicht gezeichnet werden.


9
Ganz genau, aber immer noch etwas unklar. Was genau sind die 0,085, 0,013und 0,025Mess? Soll die 0,846Diagonale in der Mitte durch das Epizentrum der Ellipse verlaufen, die durch das äußere 1und gebildet wird 0,9?
AdmBorkBork

1
Nicht das gleiche Symbol, aber ich denke, dies ist nah genug, um als Dup betrachtet zu werden: codegolf.stackexchange.com/questions/26689/… . Ich benutze meinen Dup Hammer allerdings nicht.
Digitales Trauma

@TimmyD 0,025 ist die Dicke des Querbalkens, der sich zu beiden Seiten der Ellipsenmitte um +/- 0,0125 erstreckt, anstatt auf der Mittellinie zu sitzen. (Ich habe das Symbol invertiert und überprüft.) 0,013 ist der Radius der Ecke (es sollte leicht sein, den Mittelpunkt des Eckkreises zu finden). 0,085 ist auch der Radius der Ecke (ein bisschen Hilfe beim Finden der y-Koordinate des Eckkreises wäre schön.)
Level River St

1
Interessanter, wenn Sie die Buchstaben 'E', 'n', 'g', 'l', 'a', 'd'
Komintern

Antworten:


15

VBA, 587 560 Bytes

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

Rufen Sie das Makro U auf. Grundsätzlich viel Formzeichnung. Form 1 ist ein Rechteck, 5 ein abgerundetes Rechteck und 9 ist ein Oval. Die Ausgabe ist 500 breit und 450 hoch.

Geben Sie hier die Bildbeschreibung ein

Bearbeiten : Das abgerundete Rechteck wurde hinzugefügt (mit Anpassung, um die Enden in Halbkreise umzuwandeln), um die abgerundeten Ecken oben auf der Leiste mit einer Formzeichnung zu erzeugen.


Excel verliehen - Sie haben wirklich viel Arbeit in diese investiert! Sie können 2Bytes löschen, indem Sie Sub U()zuSub U
Taylor Scott

Actuallly, können Sie diese bis auf 535 Bytes erhalten , indem Sie machten fauf Optional f=0und die 0 f Anrufe zu entfernen, in den Raum zu entfernen a=5 Then, die Subroutinen in einem Arbeitsblatt codepane bewegen und das Entfernen ActiveSheet.Anruf (dies bedeutet , dass U dann genannt wird Sheet1.U) und Entfernen der ()inSub U()
Taylor Scott

3

Haml + Sass, 20 + 722 = 742 Bytes

Ich bin mir sicher, dass dies viel mehr Golf sein könnte, aber ich bin glücklich genug damit. Demo auf CodePen .

Hinweis: Aufgrund der Standardränder ist hierfür ein Browserfenster mit einer Breite von mindestens 1.000 Pixel erforderlich.

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 Bytes

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

Kann getestet werden, indem der Code auf dieser Seite eingefügt wird : https://www.shadertoy.com/new

Ausgabe (bei einer Bildschirmgröße von 1440 * 900):

Geben Sie hier die Bildbeschreibung ein


Sie sind sich nicht sicher über Ihre Ecken an den Enden der zentralen Leiste, sie sehen jedoch nicht ganz richtig aus.
Joffan

Vielleicht sollten sie eine etwas andere "Größe" haben, ich habe nicht wirklich verstanden, welche Größe sie haben sollten, also habe ich es mit den Augen angenähert
Anzeigename

1
Sie sollten Kreisbögen mit einem Radius von 0,013 sein (x die volle Breite der Figur).
Joffan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.