image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年5月21日 | トップページ | 2007年5月23日 »

2007年5月22日

2007-05-22

ruby cairo で svg を生成してみた

http://jp.rubyist.net/magazine/?0019-cairo
るびま 19号の cairo: 2 次元画像描画ライブラリ の記事中の最初のサンプルは
png を出力するものだが、これを svg 出力に変更してみた。

----------

cat hinomaru-svg.rb
# See http://jp.rubyist.net/magazine/?0019-cairo

require "rubygems"
require 'cairo'

width = 300
height = 200
radius = height / 3

surface = Cairo::SVGSurface.new('hinomaru.svg', width, height)
context = Cairo::Context.new(surface)

#
context.set_source_rgb(1, 1, 1)
context.rectangle(0, 0, width, height)
context.fill

#
context.set_source_rgb(1, 0, 0)
context.arc(width / 2, height / 2, radius, 0, 2 * Math::PI)
context.fill

context.show_page
surface.finish

---------

$ cat hinomaru.svg   
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300pt" height="200pt" viewBox="0 0 300 200" version="1.1">
<defs>
<clipPath id="clip0">
  <rect width="300" height="200"/>
</clipPath>
</defs>
<g id="surface0" clip-path="url(#clip0)">
<path style="stroke: none; fill-rule: nonzero; fill: rgb(100%,100%,100%); opacity: 1;" d="M 0 0 L 300 0 L 300 200 L 0 200 Z M 0 0 "/>
<path style="stroke: none; fill-rule: nonzero; fill: rgb(100%,0%,0%); opacity: 1;" d="M 216 100 C 216 136.45079 186.45079 166 150 166 C 113.54921 166 84 136.45079 84 100 C 84 63.54921 113.54921 34 150 34 C 186.45079 34 216 63.54921 216 100 "/>
</g>
</svg>

jruby でも実行しようとおもったが、
gem install cairo で、mkmf が無いとかのエラーでインストールできない...
ruby の lib 以下には mkmf.rb はあるが、jruby の lib 以下に mkmf.rb が無い。

Youtube を扱える ruby API, Rubyで作るProlog処理系, etc...

Youtube を扱える ruby API があることを知った。

- http://d.hatena.ne.jp/t-imaizumi/20070207/1170814526
> > t-imaizumiのMacとかのはなし - YouTubeのAPIを使ってみる。

このページによれば、他にもおもしろそうな API がたくさんあるようだ。

xfy 実験室 (http://xfy.justblog.jp/labs/ )で、 こういった ruby/perl のライブリーを利用した例も取り上げてみて欲しいなぁ。

ああ、こんな例も見つけた。
- http://codezine.jp/a/article/aid/461.aspx
> > CodeZine:Rubyで作るProlog処理系(Ruby, Prolog, 自動推論, 記号処理)

先日、"yaml <-> xml の相互変換 (名前空間に対応)"
http://youichi-kato.cocolog-nifty.com/blog/2007/05/xaml_xml_1777.html
を投稿した。
これを作っていて、思いついたことが1つある。
xfy の xvcd を ruby をつかって生成するのだ。

ちょっとした条件判定は if ()...else()  のような書式で書いておいて、
ruby で変換させるようにするとか...
また、共通で使う xvcd 記述を #incllude "lib/foo.xvcd" みたい記述しておいて、
ruby で include を展開させた結果を生成するとか...

ともかく xvcd の差分プログラミングを可能にする手法を構築したいものだ。
そのための手段 として、java でなく ruby のようなスクリプトを使うのが楽な気がする。

« 2007年5月21日 | トップページ | 2007年5月23日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク