2014年3月31日月曜日

LR

この物語はフィクションです。実在の人物・団体とは関係ありません。

男は目覚めるとゆっくり上体を起こした。

自分が病室らしきところにいることは理解できた。しばし天井を眺めて記憶をたどってみたが、なぜここにいるのかは思い出せなかった。

しばらすると足音が近づいてきた。部屋の前で止まったらしい。ゆっくりとドアが開かれる。

女性の声が後ろから聞こえたのでそちらへ振り返る。

女性、看護師の説明によると、事故で2日ほど眠っていたらしい。目立つ外傷はないとのこと。体を少し動かしてみるがたしかにどこかが痛むということはない。

看護師が医者を呼びに行くその背中を見送りながら男は考えていた。

なぜ看護師の声が背中から聞こえたのか。なぜドアの音がした方向に看護師の姿ではなく、窓の外の景色が存在したのか。

120度クローン型パターン

Public Domain Mark

本作品には、知られている限り、著作権の制約が存在していません。

120度クローン型パターン

六角型

三角型

六角+垂直

三角+水平

合成

120度クローン型パターンを列挙。基本形が2種類。六角型に対して垂直クローン、三角型に水平クローンを配置できる。

三角型と六角+垂直型とを組み合わせると麻の葉になる。
三角型+水平との組み合わせもある(合成)。

グラデーショントーンの問題解決提案

トーンのドットサイズを面積のみで計算していくと、当然のことながら、あるサイズ以上ではドット同士が重なってしまって正しい濃度を得ることが出来ない(左の画像)。
とりあえず、重なり始めた箇所以降を別の補正方法(100%の時に3つのドットの重心で閉じる様)で補ってみたのが右。

ごまかせているように感じられなくもないが、膨張色補正がないので、突然暗くなっていくような不自然さの方が勝る。

2014年3月30日日曜日

干渉縞のサンプル

グラデーショントーンを作成するPython Scriptを書いているが、細かい問題がたくさんあって足踏みをしていて、気分転換に少し遊んでみる。

10°

30°

ドットの並びが60度のパターン。
異なるサイズのトーンを重ねるとまた違うパターンが生まれるので、覚えていたら次の気分転換でやるかもしれない。

2014年3月28日金曜日

xmlにインデントを加えて整形した時の覚書

svgwriteを使ってSVGファイルを作ってみたのですが、改行がないので、ファイルサイズ的には良いのですが、デバッグには都合が悪いので、整形するための方法を探していた時の覚書です。

lxml

inkscapeに合わせてlxmlにしてみました。

from lxml import etree
...
    e = etree.fromstring(root.tostring())
    et = etree.ElementTree(e)
    et.write(filename, pretty_print=True)

分かりやすくてよいのですが、インデントが半角スペース二個で固定されている点が不満です。
その他、表示上問題ありませんが、styleに付いている<[!CDATA[]]>が消えてしまいました。

minidom

参考:Creating XML Documents

上は自力でがんばったのですが、最初に検索で見つけたのはこちらの方法です。

from xml.dom import minidom
...
    d = minidom.parseString(root.tostring())
    f = open(filename, 'w')
    f.write(d.toprettyxml(indent=' '))
    f.close()

svgwriteから直接文字列を取り出せるので、参考先と比較すると少し簡潔になります。
私の見損じがあるかもしれませんが、lxmlを使うより良い感じがしました。

2014年3月27日木曜日

140325-いえ

クリエイティブ・コモンズ・ライセンス

©Fr Antunes ©Yusai

ダメ元で挑戦してみたけれど、まだ無理だった。石組みの上手な捌き方はまだ閃かない。

2014年3月26日水曜日

懐かしのアセンブリ言語

Computer History MuseumでMS-DOSとMS WORD 1.1aのソースが公開されているそうなので、何かの勉強になるかと思って見に行ったのですが、アセンブリ言語。

高水準言語でも勉強のために他人のソースを読むことはしないのに、低水準言語、これはさすがに読む気になれません。

MSXを触っていた頃にマシン語でグラフィックツールを作っていた頃のことを思い出して少し懐かしんだ後、そっとゴミ箱へドラッグ&ドロップしました。

Inkscapeファイルのクリーンアップ

何かのきまぐれでPyhonからSVGを作る方法を探していたら、Scourというモジュールと出会った。
SVGファイルのダイエットに使うものだが、同じスタイルのオブジェクトをグループにまとめてファイルサイズの削減をする機能が付いている。
これまで手作業で行っていたのでとてもありがたい。

サイズの圧縮能力は、これまでに作ったもので試したところ、大体40%くらいのダイエットが出来た。
まだ少しゴミが残るがこれは置換削除してしまえばよい。

GitHub-oberstetでモジュールのダウンロードが出来ます。
コマンドラインの詳細はcodedreadで確認してください。

2014年3月25日火曜日

140324-たてもの

クリエイティブ・コモンズ・ライセンス

©www.jordiarmengol.net (Xip) ©Yusai

建物は難しい。ビットマップトレースを手本にして線を選ぶ訓練をしてみる。

2014年3月21日金曜日

140320-たね

クリエイティブ・コモンズ・ライセンス

©nosha ©Yusai

シルエットにしたため枝が浮いてしまった。

2014年3月20日木曜日

正方形パターンとパターンビューワー

Public Domain Mark

本作品には、知られている限り、著作権の制約が存在していません。

お試し用にパターンビューワーのページを作ってみました。

2014年3月19日水曜日

スタイルを削除して軽量化するエクステンションの続き

先日Styleを全消去する.popを探したのだけれど、スタイルの選別作業には役に立たなかった。

    for id, node in self.selected.iteritems():
        oldStyle = simplestyle.parseStyle(node.get('style'))
        newStyle = {}
        for key, value in oldStyle.iteritems():
            ####Action####
            if key == 'fill':
                newStyle[key] = value
            #...
        node.set('style', simplestyle.formatStyle(newStyle))

私は絵を作る時にFillと補助線しか使わないので、それだけ残るようなエクステンションにしてみたけれど、意外と長くなって(57行)しまった。
それでもファイルサイズの圧縮効果はそこそこ(前回のうさぎの絵で30%強サイズ減)だったので、即席だけど一番利用回数が多いエクステンションとなりそう。

2014年3月18日火曜日

remove style extension 0.1

Inkscapeのファイルサイズが大きくなる原因の一つであるStyleの使わない値。
最終的にはfill,stroke,stroke-widthを残して削除するようにしたいが、とりあえずStyleをまるごと削除してしまうところから始めた。

ノードから特定のKey情報を獲得したり設定したりする、node.getとnode.setの命令はあるが、特定のKeyを削除する命令が存在しない。

参考:Python XML Remove Some Elements and Their Children but Keep Specific Elements and Their Children

    node.attrib.pop(key)

これで済んだ。

140316 - うさぎ

クリエイティブ・コモンズ・ライセンス

©Don McCullough ©Yusai

目が怖い、フワフワしている感じが出ない。

2014年3月16日日曜日

140314 - いわ

クリエイティブ・コモンズ・ライセンス

©Thomas Leth-Olsen ©Yusai

じゃがいもみたい、細かすぎて半分に到達することなく断念、手描きでなければこれは無理気味

2014年3月13日木曜日

140313 - めがね

クリエイティブ・コモンズ・ライセンス

©alpha du centaure ©Yusai

直線と曲線の入り交じっている昆虫は、美しく、難しい

2014年3月12日水曜日

Create Roll Tile Extension

英語版Inkscapeマニュアル(執筆時接続不可)にある、タイルクローンを回転させて使うサンプルは興味深いのですが、数値入力が面倒なので特化したエクステンションを作成してみました。

Download

使用例です。
センスがないのでなかなか良いサンプルが作れません。

2014年3月9日日曜日

140309b - はな

クリエイティブ・コモンズ・ライセンス

©Adrian Dreßler ©Yusai

花続き、直線が難しい

140309 - はな

クリエイティブ・コモンズ・ライセンス

©Kumaravel ©Yusai

力量不足でうまく処理できない、ごちゃごちゃしている対象