Skip to content

Assets 项目中使用基础数据

Ein Verne edited this page Mar 2, 2017 · 2 revisions

assets 分支 https://github.com/einverne/writing/tree/assets

包含项目使用到的信息,包括3057行汉字信息,601行部件信息,以及40个笔画信息。

整字信息字段

整字的信息保存在表 zi_info ,该表中包含常用3057个汉字,包含以下字段:

CREATE TABLE IF NOT EXISTS `zi_info` (
  `zi` text,
  `code` text,
  `unit_seq_ch` text,
  `unit_seq` text,
  `stroke_seq_ch` text,
  `stroke_seq` text,
  `xml` longtext
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中:

  • zi 标识该汉字,使用简体汉字
  • code 该汉字标识符,唯一
  • unit_seq_ch 该汉字部件顺序,部件使用中文名表示,部件与部件之间使用“-”分割
  • unit_seq 该汉字部件顺序,部件使用部件id来标识,部件与部件之间使用“-”分割
  • stroke_seq_ch 该汉字笔画顺序,笔画使用中文表示,笔画与笔画之间使用“-”分割
  • stroke_seq 该汉字笔画顺序,笔画使用笔画id来标识,笔画与笔画之间使用“-”分割
  • xml 该汉字的具体信息包括点集,使用xml保存,具体字段下文解释

举例:

zi code unit_seq_ch unit_seq stroke_seq_ch stroke_seq xml
B0A1 口字-耳刀旁-可字- 230010-220022-250062- 竖-横折(折直)-横-横撇弯钩-竖-横-竖-横折(折直)-横-竖钩- 110003-110018-110007-110027-110003-110007-110003... <item name="啊" stroke_seq_id="110003-110018-1100...

汉字 XML 字段信息解释

以“艾”字举例:

<item name="艾" stroke_seq_id="110007-110003-110003-110009-110014-" stroke_seq="横-竖-竖-撇-捺-" unit_seq_id="230057-220089-" unit_seq="草字头-交字底-" code="B0AC" pic="B0AC">
	<outline>
		<stroke name="横" newname="横" id="110007" code="01-D2BB-CDF5-CDF2" sample="一王万" id_old="110012" pic="110007">
			<trunpoint x="82" y="122" status="0" smooth="0"/>
			<trunpoint x="421" y="122" status="0" smooth="0"/>
		</stroke>
		<stroke name="竖" newname="竖" id="110003" code="01-C9CF-CFC2-D6D0" sample="上下中" id_old="110004-110018" pic="110003">
			<trunpoint x="188" y="59" status="0" smooth="0"/>
			<trunpoint x="188" y="179" status="0" smooth="0"/>
		</stroke>
		<stroke name="竖" newname="竖" id="110003" code="01-C9CF-CFC2-D6D0" sample="上下中" id_old="110004-110018" pic="110003">
			<trunpoint x="299" y="59" status="0" smooth="0"/>
			<trunpoint x="299" y="175" status="0" smooth="0"/>
		</stroke>
		<stroke name="撇" newname="撇" id="110009" code="01-CDF2-D5C9-BEAE" sample="万丈井" id_old="110014" pic="110009">
			<trunpoint x="333" y="205" status="0" smooth="1"/>
			<trunpoint x="307" y="259" status="0" smooth="1"/>
			<trunpoint x="260" y="333" status="0" smooth="1"/>
			<trunpoint x="190" y="388" status="0" smooth="1"/>
			<trunpoint x="113" y="426" status="0" smooth="1"/>
			<trunpoint x="66" y="441" status="0" smooth="1"/>
			<trunpoint x="46" y="445" status="0" smooth="1"/>
		</stroke>
		<stroke name="捺" idtag="1" newname="捺" id="110014" code="01-D5C9-B8F6-C8CB" sample="丈个人" id_old="110026" pic="110014">
			<trunpoint x="150" y="203" status="0" smooth="1"/>
			<trunpoint x="176" y="262" status="0" smooth="1"/>
			<trunpoint x="206" y="312" status="0" smooth="1"/>
			<trunpoint x="272" y="378" status="0" smooth="1"/>
			<trunpoint x="323" y="403" status="0" smooth="1"/>
			<trunpoint x="385" y="428" status="0" smooth="1"/>
			<trunpoint x="418" y="435" status="0" smooth="1"/>
		</stroke>
	</outline>
	<view name="上下">
		<sub1 num="3" name="横~1/竖~1/竖~1/" idtag="1" idx="0/3" autoname="p3_058"  partname="p345" id="230057" old_id="" code="C0CD-C4BC-B0A5" newname="草字头" sample="劳募哎" pic="230057" seq_ch="横-竖-竖-" seq="110007-110003-110003-"/>
		<sub1 num="5" name="撇~1/捺~1/" idtag="2" idx="3/5" autoname="p2_097"  partname="n220" id="220089" old_id="" code="BDBB-B0A5-BDCA" newname="交字底" sample="交哎绞" pic="220089" seq_ch="撇-捺-" seq="110009-110014-"/>
	</view>
	<keyview num="1" rely="宽"/>
	<tmpchecked>true</tmpchecked>
	<structview struct="0/1/2~3/4~" structname=""/>
</item>

在艾字的 XML 信息中,标注了艾字的笔画信息,在 <outline> 标签中为每一个笔画的点信息。每一笔:

<stroke name="横" newname="横" id="110007" code="01-D2BB-CDF5-CDF2" sample="一王万" id_old="110012" pic="110007">
    <trunpoint x="82" y="122" status="0" smooth="0"/>
    <trunpoint x="421" y="122" status="0" smooth="0"/>
</stroke>

有名字属性,笔画编号,笔画 code,笔画字例,以及其他相关信息。在 trunpoint 标签中的为笔画的点信息,比如上面所显示的就为横笔画的首点和尾点信息。其中 status 表示当前点为拐点, smooth 表示该点在撇捺等斜笔画中。

部件信息

部件信息保存在 unit_info 表中,该表包含601行部件信息,具体字段定义如下:

CREATE TABLE IF NOT EXISTS `unit_info` (
  `id` int(11) NOT NULL,
  `code` longtext,
  `name` longtext,
  `sample` longtext,
  `seq_ch` longtext,
  `seq` longtext,
  `zi_include` longtext,
  `xml` longtext
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中:

  • id 表示部件id
  • code 表示部件标识符
  • name 表示部件的名字
  • sample 包含该部件的简单例子
  • seq_ch 组成该部件的笔画笔段组成,中文表示,笔段与笔段之间使用“-”分割
  • seq 组成该部件的笔画组成序列,使用id来标识,笔段与笔段之间使用“-”分割
  • zi_include 包含该部件的汉字, 比 sample 多,字与字之间使用“-”分割
  • xml 部件的详细信息

笔画信息

部件信息保存在 zi_info 表中,该表包含40个笔画信息,具体字段定义如下:

CREATE TABLE IF NOT EXISTS `stroke_info` (
  `id` int(10) NOT NULL,
  `code` longtext,
  `name` longtext,
  `sample` longtext,
  `unit_include` longtext,
  `xml` longtext,
  `bdnum` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中:

  • id 标识该笔画id
  • code 表示该笔画唯一
  • name 该笔画的中文名字
  • sample 包含该笔画的样例汉字
  • unit_include 包含该笔画的部件,部件id组成,使用“-”分割
  • xml 笔画的xml信息
  • bdnum 数字,包含该笔画的笔段数量,例如横折,有两个笔段