EU推定サインを描く


11

欧州連合指令(UnicodeのU + 212e、この課題のために単に印刷することはできません)で使用される「推定」記号の仕様は非常に正確です。

EU推定サインの仕様

この質問からいくつかの制限をコピーするには:ベクターまたはラスターグラフィックスを使用して、シンボルをファイルまたは画面にレンダリングします。出力をラスタライズする場合、画像のサイズは264ピクセル×240ピクセル以上である必要があります。その他の補助線または長さインジケータは描画しないでください。


9
かなり正確ですが、それでも少し不明瞭です。正確にどのようなものがあり0,0850,013、および0,025計測は?0,846中央の対角線は、外側1とで形成された楕円の震源を通過することを意図してい0,9ますか?
AdmBorkBork

1
:なく、同じ記号が、私はこれはDUPと見なされるために十分に近いと思いcodegolf.stackexchange.com/questions/26689/...。ただし、Dupハンマーを使用していません。
デジタル外傷

@TimmyD 0,025はクロスバーの厚さで、中心線の上にあるのではなく、楕円の中心の両側に+/- 0,0125伸びています。(シンボルを反転してチェックしました。)0,013はコーナーの半径です(コーナー円の中心を見つけやすいはずです)。0085はまた、コーナーの半径である(yがいいだろうコーナー円の座標を見つけるのヘルプのビット。)
レベル・リバーセント

1
さらに興味深いのあなたは...文字'E'、 'N'、 'G'、 'L'、 ''、 'd'を使用しないようならば
コミンテルン

回答:


15

VBA、587 560バイト

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 x高さ450です。

ここに画像の説明を入力してください

編集:丸い長方形を追加し(両端を半円に調整する)、バーの上部に1つのシェイプ描画で丸みを帯びた角を作成します。


Excel lent-あなたは確かに多くの仕事をその中に入れました!に2変更Sub U()することにより、バイトをドロップできますSub U
テイラースコット

実際には、0 f呼び出しを変更fOptional f=0て削除し、のスペースを削除しa=5 Then、サブルーチンをワークシートのコードペインに移動し、呼び出しを削除してActiveSheet.(つまり、Uがとして呼び出されるSheet1.U)、削除して、535バイトに減らすことができます()Sub U()
テイラースコット

3

Haml + Sass、20 + 722 = 742バイト

これはもっともっとゴルフできると確信していますが、十分満足しています。CodePenのデモ

注:デフォルトのマージンのため、これには少なくとも1,000ピクセル幅のブラウザーウィンドウが必要です。

ハムル

#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の場合):

ここに画像の説明を入力してください


中央のバーの端にあるコーナーについてはよくわかりませんが、見た目はあまりよくありません。
ジョファン

多分彼らは少し異なる「サイズ」を持っているべきで、私は彼らがどんなサイズであるべきか本当に理解していなかったので、目でそれを概算しました
表示名

1
これらは、半径0.013(図の全幅)の円弧でなければなりません。
ジョファン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.