この前の記事の図版

この前の記事の図版は全部JavaScriptでdiv要素を配置させて作りました


この図の波括弧の部分もCSSのborder-radiusを使って書いたりという謎の努力!

上の図はこんな感じ (なぐり書きコード)

var c = "white";
place_box("", 0, 1, 5, 0.5, c);
place_box("", 5, 1, 5, 0.5, c);
place_box("", 10, 1, 1, 0.5, c).style.borderRight = "none";
place_text("…",10 +0.5 , 1, 1, 0.5);

var c = "#ddd";
place_box("", 0, 1, 0.5, 0.5, c);
place_text("a<sub>0</sub>", 0, 0, 0.5, 1, "", "bottom");

place_box("", 5, 1, 0.5, 0.5, c);
place_text("a<sub>M</sub>", 5, 0, 0.5, 1, "", "bottom");

place_box("", 10, 1, 0.5, 0.5, c);
place_text("a<sub>2M</sub>", 10, 0, 0.5, 1, "", "bottom");

var c = "#FCD9BA";
place_box("", 2, 1, 0.5, 0.5, c);
place_text("a<sub>i</sub>", 2, 0, 0.5, 1, "", "bottom");
place_text("b<sub>0</sub>", 2, 1.5, 0.5, 0.6, "", "bottom");

place_box("", 2 + 5, 1, 0.5, 0.5, c);
place_text("a<sub>i+M</sub>", 2 + 5, 0, 0.5, 1, "", "bottom");
place_text("b<sub>M</sub>", 2 + 5, 1.5, 0.5, 0.6, "", "bottom");

// 波括弧
for (var i=0;i<2;i++){
	var d = place_text("", i*5+0.25, 1.5, 4.5, 1);
	d.style.borderBottom = "1px solid";
	d.style.borderRadius = "0 0 50px 50px / 0 0 10px 10px";
	var x = i*5+5/2;
	place_text("", x-0.5, 2.5, 0.5, 0.5, "", "", "white");
	var d = place_box("", x-0.5, 2.5, 0.5, 0.5);
	d.style.borderWidth = "1px 1px 0 0";
	d.style.borderRadius = "0 20px 0 0 / 0 20px 0 0";
	place_text("", x, 2.5, 0.5, 0.5, "", "", "white");
	var d = place_box("", x, 2.5, 0.5, 0.5);
	d.style.borderWidth = "1px 0 0 1px";
	d.style.borderRadius = "20px 20px 0 0 / 20px 0 0 0";
}
place_text("a<sub>0</sub>からa<sub>M-1</sub>まで", 0, 3, 5, 1);
place_text("a<sub>M</sub>からa<sub>2M-1</sub>まで", 5, 3, 5, 1);
place_text("並びはまったく同じ", 0, 4, 10, 1);

この方法の問題は手でスクリーンキャプチャしないといけないのが面倒なことかなあ。

筆者: oupo (連絡先: oupo.nejiki@gmail.com)