Skip to content

Commit

Permalink
* a new uroboros logo.
Browse files Browse the repository at this point in the history
  • Loading branch information
mame committed Dec 23, 2014
1 parent bed74c4 commit 1e2cc8b
Show file tree
Hide file tree
Showing 6 changed files with 331 additions and 297 deletions.
124 changes: 56 additions & 68 deletions QR.rb

Large diffs are not rendered by default.

198 changes: 99 additions & 99 deletions SHA1SUMS
Original file line number Diff line number Diff line change
@@ -1,99 +1,99 @@
c42e30482fdf3bb5cfbbc4080cbe11d019ac04bd *QR.rb
a92dcf4382f7dcbf58a750a6d2707f27d3d1dc4a *QR.scala
cfaa15ce95198b00bf1633a9b0dea52f8f74e078 *QR.scm
7b3f4c297a2c9888a4e9de3476b9de023f63b070 *QR.sci
b6fa124c51c2ef394075db735ee62f8c018a53ec *QR.bash
6a226886dea5489d77d69417a2a54479cdb3d3a3 *QR.sl
9bcae0cf8a4ec7e930442ca0655135e8c034955d *QR.st
43bb5950f63302ba6594e5763bb28b0835dab5ad *QR.spl
03297b48d0e13905d5cfbd6db30329d6b9cdc5de *QR.sml
17681b4c754636388781b3a495cd08942793594f *QR.sq
ab9af452b9ce7147b0ddd076211a9944e149f18f *QR.tcl
dd5b020095637bdaddf3781b393cd57966364b14 *QR.t
2dc28c62178c9904b0b8111243759a145a29913f *QR.unl
638d122f17661dada535bf4156319762b66daedf *QR.vala
cccb4049e0c936349b65559dedc0c1e02e081b40 *QR.v
b039abc0c2428a46c1a4ac83b932beff4fd1ef17 *QR.vb
347820c5aa3463d46a40e31a12e70faa103bce2c *QR.ws
896ec24184d178e2026ee0fc83d2c0c0b8e1c525 *QR.xslt
5b25b66d1c303c4fa0db70f98eff6771ba8feadc *QR.yorick
a063c8df9f972d119cb18a35c483811ea901fff8 *QR.azm
5baaf7df97cac38b8cd3e260c4a94129dfab1b5a *QR.+
c640f7f8b58333c774aa8e86761b5c46a9e146f5 *qr.adb
473ae7d1f743559ab9f5f84b1d684763ce22d60b *QR.als
10d64f97ff7b08fae80444726bbc7896534907ee *QR.a68
ed39737b1b1036f19b9f05a37d6cfaf38af36823 *QR.ante
2666f13b2baae9ea8b063517b4e576d2ac319ea5 *QR.asy
c36ac0a0a4077541ce5ad2fcd714891d8596f308 *QR.dats
e4538fdcd639649f42b0fa9065019c4275b25848 *QR.awk
29b61705c4039b3087ff96b98dd1c3bced13f171 *QR.bc
890e8ccd536f7346e42d2fa80a6b80d289ee876a *QR.bef
4860bf1e448e571f4948b763f9393533b36ef883 *QR.Blc
60f1211f8bc8e8c0121c4dad8148710e550b412e *QR.boo
1ba6e6ebfcb5281d3187c69eeb3f4aa4c07d1156 *QR.bf
84bf887d93972cfad36585de8fa3de48a67de85c *QR.c
54788afaf0301a816259ab86ad024e66a78e00d7 *QR.cpp
e8e1efaa017a218b34c07f066f4fb2279e224730 *QR.cs
0f3452d0f1903a83aa39b6bb1bf29dbdf68015b4 *QR.cd
63c3e60dbb1a6fbac05b24ddbf8400efeac9b0da *QR.chef
6949513da5012cdd6d2ff3cb81eba39a72f90871 *QR.clj
d04c89a9b0a5e92991f6c48320fc65a5b71e568f *QR.cob
fd92bf394ba994117195ffeafbada55690fad519 *QR.coffee
50c456002e218c4fb50bce6ac4a3a3b58414ec7c *QR.lisp
0278efb9358426de36639614d22356fa66d758bb *QR.d
703d3afa354c2183a0e960fb13fd0083b1773d3a *QR.dc
23fb12ca3a60ee27468e02d6f7b5ce5556624c78 *QR.ec
fd40f6346edb78d7db8baf7d3e57aa8750c822aa *QR.el
ea00b3ac5fe3e7bbd55d9888fa5588024e0017a0 *QR.erl
f0966a60f5b918ba0e3f5c7f1e65baf6afe2cc25 *QR.fsx
d56306bc8eb4d5124410e9573588c5786374908c *QR.fal
6bc680973816044fcbb53794172b7ac765c351dd *QR.false
16c347000e5ec37a89e885128456553217076aae *QR.fs
039e2c4113525512b986bdf50b8c7639fab18caa *QR.f
bc18e6f53c825d452607980603408240a3c8c5f8 *QR.f90
3eba9ee05f7570763aa30c8d3282ef7c98bcceec *QR.gbs
b45061cd2456ec5c009ca6a671f7f3448a6f4f4d *QR.g
1f2921e5b82ec48f7d60509047f4a3b90a204593 *QR.gel
cf317c0e15ea4c81a293e2f26ec3f85258ec5905 *QR.plt
32b58b161a96ce354858c0b4567885194d48eb3c *QR.go
d116aa2725283085d26b85e9df8c0aeac175ddd3 *QR.gpt
66bc1fb88d29a4ab8ac6794d6e02b365f6fcab3d *QR.gri
7bff92b897c67d068363afd22da6fe1853866b59 *QR.groovy
10454a4c3e095b90dff771fa7ced5f377997d1f9 *QR.hs
c34d6fc18dcdfed8a31850bb4f0c4dad0c31e78f *QR.hx
c5254d4937ffb187b1fe0e34e4cc5937fe41dedd *QR.icn
70ac231383ac50b80fb6917436602a4fa05c79bc *QR.i
8846449d8835308a1e03beb478f2b646e32dc508 *QR.j
239931b57eb06048e930f40bc416fbd5ffadb1a4 *QR.java
ad385f17c06b7bdc912a9724e64167df4c65f917 *QR.js
e8ff3b2dfa8c19dc47f34e6f629db18fa8bf4028 *QR.jl
f606ddd29e4cdb84b8ae1d321d5f410c0de26a38 *QR.k
f461e12daeb4d324bda9b3409065509c78861b08 *qr.li
ab9e96e270d0f26d769a5aec4a89c29490d22a0f *QR.ll
166383fc092887b4b7cf7a880b776b47cf9654f1 *QR.logo
5197d09cf0aa26a8a413a516c45d08ceb356ac9c *QR.lol
2559dc7a64f8960fea1a11bf3cddc407ca6e6b4c *QR.lua
f9a9c8b3f64420e877df94b36d15e05e359ca7da *QR.mk
bd96333622009f080bbc5fc202fdb8c415c95b25 *QR.mac
42127ba92e1ba0233a89e7a2a98baf09003ec754 *QR.il
0aaa605b5cd42854585bb492ec318ea4d733252a *QR.asm
9aee6c2f3975893e6d2ab736d2421afbc8040f29 *QR.neko
584e411fcb0d2ce39304c76a6d673d24f1ca84fc *QR.5c
73f0cea5aa20d0aca01a4c1cc72728d6f96ff8a9 *QR.m
5a1d4c3ac26d0bba1a3e7a24c232cc22708147dd *QR.ml
28f08cdbc73c1bffd1ec6e0b302550e82e1e71db *QR.octave
fba98807125f6dd294997bad924195a8193eb6ec *QR.ook
9c4260981e6a97571a9bd85790f9bb22a466a0d8 *QR.gp
00c92263ced8986053b405a90a89f7cf8e2a9f36 *QR.pasm
cdb1ab4fa92bbfe6cb40708493ef882d809a55af *QR.pas
545890976dbb8abdaa72c7de784d538361902b96 *QR.pl
4ebfd75ae61b43baa4908227b3357ec3ec306f6f *QR.php
282f135446c2cbef713e91d54bf3a12c367b08fa *QR.png
fe534188009b857d634a457748a9983ab39feba7 *QR.pike
479ee508b4eba5288975167794df896694393687 *QR.ps
1b2821997b1944d90a0e424a9b44745441a1be1a *QR.ppt
5b2eed6abe3762b2a359695e1d27f63cf9e6b764 *QR.prolog
1a6fadd4554459b08c41a10a5607d00af073f96a *QR.py
cffacb7c54697139bcca0f6ba12b6349952bdd0f *QR.R
c56a633bd39a955baee2dedbc0fcc976b3825a36 *QR.r
cb6e61e4e5894336c07d5dede87f73cf457733a8 *QR.rexx
9d7ede4a134929edbc8eb9a3024bd833164f9c58 *QR.rb
af425b44c7a3e4bf9783118f59793ccf2294c290 *QR.scala
8985e3a270e978b9f0e404db369471ca7bc2d07b *QR.scm
85cccb3a2ae530430edb3f7992f3118d8c332b32 *QR.sci
c1e0e0cbb57b7122beaec2695a532a6dc3c50e64 *QR.bash
a0fb7d35eb62a538029e554f897b6b77b35c6dfe *QR.sl
32d53baa521298eb3d611c1f026078c7c6b51cf3 *QR.st
8ec2389593130fd320ae4b89b4108cbee3430fad *QR.spl
5d4f21b9a168b3a2aec3c882e380dc4eca003f95 *QR.sml
b8d072a256563110a17e523e73064e63f974ddff *QR.sq
b76c95ae64887c9ba8023dcc86a38bc319747d08 *QR.tcl
c01e7aa80289ef2c2054df299deecf27afc70862 *QR.t
25a390b1000e654f35c5ab316e7cff0428d09abf *QR.unl
0e2d5f123d78cab54de08833bebbb799b1f50ecd *QR.vala
68ce6184b151babcf39315d3d6f64b4886f469ac *QR.v
9fd1943396f74cde2eb1771c4b5dce22d445a818 *QR.vb
0e3382c1156b5b863c07635a0ad33f0e8bc14d2a *QR.ws
f1a1f2e306a75e8bb6c9fe7277e49c003ce9c2ff *QR.xslt
c0afbcc7affc895cdbe5fbf9bccf5218bd868076 *QR.yorick
962e0e5f6cf9389aef3baa50e6bf73d47c7f95f5 *QR.azm
cf87c530c6a4ba3deba563be82d77a861c82cf5b *QR.+
4c724bb31e6d1e016100b1fc7dcb19cb2f8b8c62 *qr.adb
888f1ea3e7f51b3eccfbf3117cbac1592524fe6d *QR.als
cfa12b08ab9744bf4b2c1279d14f2e9091ef4a22 *QR.a68
88d652728585c3b8bc240518ffe04a172c0b2b3b *QR.ante
e13b049942b3e47d6045ca15f35b2d5953bdf54a *QR.asy
7511b5661e013fde1291bacecf9cdd5f1c0894d6 *QR.dats
ebacf9b4bd264fda030111e27314040e622459d5 *QR.awk
95f8c02688bf20beb596467dfcaed648cf186feb *QR.bc
744f46b9b3fc74dc00c78543d058059b7bc8220d *QR.bef
38064348e885d9727aa4906019dca8315526b1d3 *QR.Blc
bbeab1f41c54ef85c4c560ce0a2f51c7e299ce66 *QR.boo
092a1a37de8bde0fb54a5e89192b68afd567217e *QR.bf
82bbdd19f9c2da3448ba3832f69a6b65e5ce2e4e *QR.c
c0b32e2a7ba4f1d548f61eae853a0a43ba7cf6c6 *QR.cpp
f081ac6fd6b0944ea738c522180f81571775baad *QR.cs
38512803b4772a77a24b652f204859b844828994 *QR.cd
e66d73e6e5e4c7fde292b7a9fe1fc2811db7a58f *QR.chef
1228d6cf2b1e036922ff6cde71a755b5825bc280 *QR.clj
fda0de67c98ddee3e2e1c2359d1ed6686a07205f *QR.cob
6ba81af947b2e6da4bdf86330475fa747ac25bf0 *QR.coffee
b65141da2cb377a3bd36d6c76197a50fac2f1766 *QR.lisp
8248edf030994e914ddd3ec8e614e32f281ade5c *QR.d
42df8ae020fb0ddbf298abc884e80cc0ac0dd31d *QR.dc
cf6b2713a85ee226f03c9763201298d35f57f144 *QR.ec
a7aba371ce25a1529205ce37fad360bd496054a6 *QR.el
e7dba95d28286aa985ddbeafda871d1ae038dd50 *QR.erl
b0332c60acf829cad22af6814a04ba8e7c33dc33 *QR.fsx
079956676916407d2691948fc10ee4624055f3ff *QR.fal
dedd939186fdc2d9f9f43cd69b99da30eb7f5e9d *QR.false
42c36963181ede6dd1e49764e8bc3f5dcb7f39ef *QR.fs
fd50a6508a929356483cf7ef264cda6e2d4915a2 *QR.f
6764ef2eb39ae1cf3c4f41d3b2fbbaa2ab5afc6e *QR.f90
3e94c067d1828dbf26d20b176203cd6d7b91265b *QR.gbs
134267ea58a254bc31921f24730df8b59c4f302c *QR.g
8ed74a63ea4580b57160142f8c6426761edc0977 *QR.gel
6fe069678a2cf99036a5e606d614f72b3cec5e67 *QR.plt
f5c973cf601bf351bc0f4197a818a010a449978f *QR.go
bff0ba4e350c43645022463bcec8bcfe4320bf5f *QR.gpt
6168b083e1d067a3c22f321eb16d7f810e5303b3 *QR.gri
28a4bc2b18731230108ee8c0d21924c117bc1aa0 *QR.groovy
fbd73a53aa6500b75a2ed703978c530f568e072b *QR.hs
ea9b18488c05890cc85dcb4b61597a3930b262eb *QR.hx
207d403dd2d3222b73538fc16daf9726b708e171 *QR.icn
6e114265b7ef39560f4f69f152b9ace9efef08ba *QR.i
aebee881ce001a0559c693f77dbf5be8695314c2 *QR.j
df74c265d530f5c8a1bad9f8de7086592b9b2649 *QR.java
48148378fc692183974bbdb731bd69dc0986520e *QR.js
e6832594b95b630dc77b35c7d786a1d9e8d000ca *QR.jl
d0307e3f530365a80b81e4379d7cc445a5cd8aa8 *QR.k
b8a46277ae344502f786a004e7d436c38391ed39 *qr.li
3bd3f432a55b7681e8f51cbd84bb7e424100dd15 *QR.ll
7218d12e0d15c0973f0bebde80c4acb05ec4709e *QR.logo
dee44f5c77528858ae3d1f5a0fcd4c06dd0eecb4 *QR.lol
ef7afb072ac7fd5dc3e039cb95c4c2f0e7d10699 *QR.lua
f5c5007bb290ab077de071d1b2cf6d5566cfc9d1 *QR.mk
724d7c43fe3ad81300b170531f4288fe8950484d *QR.mac
0fbbe14bba4c96b032a70fdf55c790dbb0b759a6 *QR.il
46deb287c11e290fadb0ecd32c618dcfc4d4c0d0 *QR.asm
4304a38a7d52a5a53161ff96719184f392f36649 *QR.neko
34ed6353c1109349ebdd03f60891d8451550449d *QR.5c
c83025d747e8173d3a38c9dafd7bbfaa21bf629f *QR.m
cd6845abed388de3e1bcd3bdf47e70811fc658cd *QR.ml
71278ff7b1b12a042d1019018c6615a5414b582c *QR.octave
d1f87d9cac5965d042d205c02da55877a7e1a204 *QR.ook
94d3c509a08b100949e7f8d6ce7b3faa5be2576a *QR.gp
8c4a533753157f48b90ed619cf4f622ab428baa4 *QR.pasm
9d995200eaaa5e077459dbec6dfc1e398ad506ce *QR.pas
ca8e64f128c21d540472842e4762a9136ae267c3 *QR.pl
74fa7ff302de739a186ba2415b2c8dd2650a99e6 *QR.php
eb0904ec0bd5471f3352216692c301a145ff964c *QR.png
43d8e24fff81d60fe4b7442d6470aac2895ef85a *QR.pike
71c9bfbd36bda20b7dc5158d3bf0eb1571e87256 *QR.ps
cbdb0d6fbf6dd63d189dd0abd917bd4577aca29e *QR.ppt
3d16aa21dd15f492430a94947ac48e689dcfbf3f *QR.prolog
2ffd2adb23d5b25f185221cd47667783d688cf40 *QR.py
909d9bea45b5ef51e4b3e244225eeb86dc88b16f *QR.R
0cbbe1b3b4ba26aa690a64e8b1b2b76679834cc8 *QR.r
efc83dc947c0f5fd627c7acde62289e42ad6eb2d *QR.rexx
Binary file modified langs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 55 additions & 22 deletions src/langs.png.gen.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@
require "cairo"
require "rsvg2"

W = H = 512
# You need to install the two fonts: Raleway and UnifrakturCook.
# * https://www.google.com/fonts/specimen/Raleway
# * https://www.google.com/fonts/specimen/UnifrakturCook

W = H = 610
surface = Cairo::ImageSurface.new(W, H)
ctx = Cairo::Context.new(surface)

Expand All @@ -13,35 +17,59 @@
ctx.set_source_rgb(0, 0, 0)

ctx.translate(W / 2, H / 2)
ctx.font_size = 13
ctx.select_font_face("non-serif")
ctx.select_font_face("Raleway")
ctx.antialias = Cairo::Antialias::GRAY

BaseFontSize = 13
SubFontSize = 10

Radius = 210.0
RunSteps.each_with_index do |s, i|
ctx.save do
ctx.rotate(Math::PI * (2 * i + 1) / RunSteps.size)
ctx.move_to(-Radius , 2)
ctx.line_to(-Radius - 3, -1)
ctx.line_to(-Radius + 3, -1)
ctx.fill
angle = i / (RunSteps.size / 4.0)
dir = 1 < angle && angle <= 3 ? 1 : -1
ctx.rotate(Math::PI / 2 * (dir < 0 ? -angle : 2 - angle + 0.02))
s.name =~ /^(.*?)(\(.*\))?$/
name, sub_name = $1, $2 || ""
ctx.font_size = BaseFontSize; e1 = ctx.text_extents(name)
ctx.font_size = SubFontSize ; e2 = ctx.text_extents(sub_name)
ctx.move_to(dir * (Radius + 10) - (dir < 0 ? e1.x_advance + e2.x_advance : 0), 0)
ctx.font_size = BaseFontSize; ctx.show_text(name)
ctx.font_size = SubFontSize ; ctx.show_text(sub_name)
end
end

ArrowCount = 7
ArrowCount.times do |i|
ctx.save do
angle = i / (RunSteps.size / 4.0)
dir = 1 <= angle && angle < 3 ? 1 : -1
ctx.rotate(Math::PI / 2 * (dir + 1 - angle))
ctx.rotate(Math::PI * (2 * i) / ArrowCount - Math::PI + 0.1)

e = ctx.text_extents(s.name)
ctx.move_to(dir * Radius - e.width / 2, e.height / 2 - 1)
ctx.show_text(s.name)
ctx.line_width = 2
ctx.line_cap = Cairo::LineCap::SQUARE
ctx.new_path
ctx.arc(0, 0, Radius, 0.0, Math::PI * 2 / ArrowCount - 0.1)
ctx.stroke

ctx.line_width = 1
ctx.move_to(Radius , -8)
ctx.line_to(Radius - 6, 2)
ctx.line_to(Radius + 6, 2)
ctx.fill
end
end

Uroboros = 240.0
Uroboros = 350.0
ctx.select_font_face("UnifrakturCook")
ctx.font_size = 25
Title = "100-Language Uroboros Quine"
e = ctx.text_extents(Title)
height = Uroboros / 2 + e.height + 20
ctx.move_to(-e.width / 2, height / 2)
ctx.show_text(Title)
ctx.save do
svg = RSVG::Handle.new_from_file("uroboros.svg")
ctx.translate(-Uroboros / 2, -Uroboros / 2)
ctx.scale(Uroboros / svg.width, Uroboros / svg.height)
ctx.translate(-Uroboros / 2, -height / 2)
ctx.scale(Uroboros / svg.width, Uroboros / svg.width)
ctx.render_rsvg_handle(svg)
end

Expand All @@ -54,17 +82,22 @@

# convert svg to template
#
#H = 55.0
#W = H * 2
#require "cairo"
#require "rsvg2"
#H = 52.0
#W = H * 4
#surface = Cairo::ImageSurface.new(W, H)
#ctx = Cairo::Context.new(surface)
#svg = RSVG::Handle.new_from_file("uroboros.svg")
#ctx.scale(W / svg.width, H / svg.height)
#svg = RSVG::Handle.new_from_file("uroboros2.svg")
#ctx.translate(4, 2)
#ctx.rotate(-0.014)
#ctx.scale((W - 8) / svg.width, (H - 4) / svg.height)
#ctx.render_rsvg_handle(svg)
#data = surface.data.unpack("C*")
#M = (0...H).map do |y|
# (0...W).map do |x|
# data[y * surface.stride + x * 4 + 3] > 48 ? " " : "#"
# idx = y * surface.stride + x * 4
# data[idx] < 40 && data[idx + 3] > 48 ? " " : "#"
# end.join
#end
#puts *M
Loading

0 comments on commit 1e2cc8b

Please sign in to comment.