kamichikoichi / kage-engine

GNU General Public License v3.0
77 stars 14 forks source link

How can it be used to render IDS? #1

Closed ztl8702 closed 4 years ago

ztl8702 commented 8 years ago

This is indeed a powerful engine. I wonder how the format used by this engine is defined. Can it be used to render IDS (Ideographic Description Sequence)?

kamichikoichi commented 8 years ago

This engine can't render directly from IDS to SVG(or etc.). You must design size and position of each parts.

for exaple:⿰氵𦰩

// % js sample.js > result.svg (SpiderMonkey) // % java -jar js.jar sample.js > result.svg (Rhino)

load("2d.js"); load("buhin.js"); load("curve.js"); load("kage.js"); load("kagecd.js"); load("kagedf.js"); load("polygon.js"); load("polygons.js");

var kage = new Kage(); kage.kUseCurve = true; var polygons = new Polygons();

kage.kBuhin.push("u6c35-01", "2:7:8:31:20:56:27:67:41$2:7:8:12:66:39:73:49:87$2:7:8:14:133:49:142:45:184$2:32:7:40:150:44:138:86:67"); kage.kBuhin.push("u26c29", "99:0:0:0:3:200:162:u8279-03$1:12:13:44:63:44:92$1:2:2:44:63:156:63$1:22:23:156:63:156:92$1:2:2:44:92:156:92$1:0:0:30:114:170:114$1:0:0:18:137:182:137$7:32:7:100:63:100:110:100:175:14:185$2:7:0:104:137:126:170:175:179"); kage.kBuhin.push("u8279-03", "1:0:0:13:39:187:39$1:0:0:72:13:72:64$1:0:0:128:13:128:64");

kage.kBuhin.push("target", "99:0:0:0:0:160:200:u6c35-01$99:0:0:50:0:200:200:u26c29"); kage.makeGlyph(polygons, "target");

print(polygons.generateSVG(true));

ztl8702 commented 8 years ago

Thanks for the answer! BTW, Is there any code sample for resolving complex IDS into tree structures?

kamichikoichi commented 8 years ago

Umm... currently there isn't any.

shirakaba commented 7 years ago
kage.kBuhin.push("u9ebb-2", "99:0:0:0:0:200:200:u9ebb:0:0:0");

上記のkage.kBuhin.push()とは、どこから最後の99:0:0:0:0:200:200:u9ebb:0:0:0のデータ(ポリーゴンだと思いますが)を見つけれますか?ここのkage.gitのレポのkagedbのparts.txtのファイルの中では幾つかのポリーゴンデータがありますけど800字だけぐらいなので足りないです。partsdbというファイルも見えますがオープンできません。

全部の漢字のポリーゴンデータがどこかでダウンロードできますか?

kamichikoichi commented 7 years ago

返事が遅くなってすみません。本件はkagedbやparts.txtおよびpartsdbは関係ありません。 http://glyphwiki.org/wiki/GlyphWiki:%e9%ab%98%e5%ba%a6%e3%81%aa%e6%b4%bb%e7%94%a8%e6%96%b9%e6%b3%95 にリンクされているdumpデータ(dump.tar.gzの中の(dump_newest_only.txtまたは dump_all_versions.txt)をもとに、必要な部品データを kage.kBuhin.push("foo", "bar"); と自分で追加していくことになります。

shirakaba commented 7 years ago

説明してくれてありがとうございます。役に立ちました。

ところで、そのリンクのウェブフォント (http://glyphwiki.org/font/gw465758.ttf)[http://glyphwiki.org/font/gw465758.ttf] はただ普通の機能のフォントでしょうか?もしくは、どんなグリフ (例えば ebag_s215-030) でも表現できるフォントの訳ですか?

後者なら、CSSの設定したら、<span class="webfont"></span>の中で何を入りますか?Unicodeのu6f22を書いたいなら&#x6f22;を入力したらいけるけどcdp-88f0というグリフを書いたいなら&#cdp-88f0;を入力したらはいけません。

TNTErick commented 5 years ago

I think there is no need of making a tree of ids

kamichikoichi commented 4 years ago

間が空いてしまい、質問内容も分散してしまったため閉じます。必要な場合は再質問をお願いします。