Dessinez le signe estimé de l'UE


11

La spécification du signe "estimé" utilisé par la directive de l'Union européenne (U + 212e en Unicode, que vous ne pouvez pas simplement imprimer pour ce défi) est assez précise.

Spécification du signe estimé de l'UE

Pour copier certaines restrictions de cette question : Rendez le symbole dans un fichier ou un écran à l'aide de graphiques vectoriels ou raster. Si votre sortie est tramée, votre image doit avoir des dimensions de 264 pixels × 240 pixels ou plus. Aucune autre ligne d'aide ou indicateur de longueur ne doit être tracé.


9
Assez précis, mais encore un peu flou. Quels sont exactement 0,085, 0,013et la 0,025mesure? La 0,846diagonale du milieu est-elle destinée à traverser l'épicentre de l'ellipse formée par l'extérieur 1et 0,9?
AdmBorkBork

1
Pas le même symbole, mais je pense que c'est assez proche pour être considéré comme un dup: codegolf.stackexchange.com/questions/26689/… . Je n'utilise pas mon marteau dup cependant.
Digital Trauma

@TimmyD 0,025 est l'épaisseur de la barre transversale, qui s'étend de +/- 0,0125 de chaque côté du centre de l'ellipse, plutôt que de s'asseoir au-dessus de la ligne médiane. (J'ai inversé le symbole et vérifié.) 0,013 est le rayon du coin (il devrait être facile de trouver le centre du cercle du coin). 0,085 est également le rayon du coin (un peu d'aide pour trouver la coordonnée y du cercle de coin serait bien.)
Level River St

1
Plus intéressant si vous évitez d'utiliser les lettres 'E', 'n', 'g', 'l', 'a', 'd' ...
Comintern

Réponses:


15

VBA, 587 560 octets

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

Appelez la macro U. Fondamentalement, beaucoup de dessins de formes. La forme 1 est un rectangle, 5 un rectangle arrondi et 9 un ovale. La sortie est de 500 de large par 450 de haut.

entrez la description de l'image ici

Modifier : ajout du rectangle arrondi (avec ajustement pour transformer les extrémités en demi-cercles) pour produire les coins arrondis au-dessus de la barre avec un dessin de forme.


Excel a prêté - Vous avez certainement mis beaucoup de travail dans celui-ci! Vous pouvez supprimer des 2octets en passant Sub U()àSub U
Taylor Scott

Actuallly, vous pouvez obtenir ce jusqu'à 535 octets en faisant changer fpour Optional f=0et enlever les 0 appels f, en supprimant l'espace a=5 Then, le déplacement des sous - routines à une codepane de feuille de calcul et le retrait du ActiveSheet.appel (ce qui signifie que U est alors appelé comme Sheet1.U) et le retrait du ()dansSub U()
Taylor Scott

3

Haml + Sass, 20 + 722 = 742 octets

Je suis sûr que cela pourrait être joué beaucoup plus, mais j'en suis assez content. Démo sur CodePen .

Remarque: En raison des marges par défaut, cela nécessite une fenêtre de navigateur d'au moins 1 000 pixels de large.

Haml

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

Toupet

$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 octets

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

Peut être testé en collant le code sur cette page: https://www.shadertoy.com/new

Sortie (lorsque la taille de l'écran est de 1440 * 900):

entrez la description de l'image ici


Pas sûr de vos coins aux extrémités de la barre centrale là-bas, ils ne semblent pas tout à fait raison.
Joffan

Peut-être qu'ils devraient avoir une "taille" un peu différente, je ne comprenais pas vraiment quelle taille ils devraient être, donc approximée avec les yeux
Nom d'affichage

1
Il doit s'agir d'arcs de cercle d'un rayon de 0,013 (x la largeur totale de la figure).
Joffan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.