mirror of
https://github.com/skishore/makemeahanzi.git
synced 2025-11-02 21:41:28 +08:00
Fix bugs in stroke extraction code
This commit is contained in:
@ -110,12 +110,12 @@ function orient_paths(paths) {
|
|||||||
var result = [];
|
var result = [];
|
||||||
for (var i = 0; i < paths.length; i++) {
|
for (var i = 0; i < paths.length; i++) {
|
||||||
var path = paths[i];
|
var path = paths[i];
|
||||||
for (var j = 0; j < paths.length; j++) {
|
for (var j = 0; j < path.length; j++) {
|
||||||
var ref = [path[j].start, path[j].end];
|
var ref = [path[j].start, path[j].end];
|
||||||
path[j].start = ref[1];
|
path[j].start = ref[1];
|
||||||
path[j].end = ref[0];
|
path[j].end = ref[0];
|
||||||
}
|
}
|
||||||
path[j].reverse();
|
path.reverse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return paths;
|
return paths;
|
||||||
@ -127,7 +127,8 @@ function get_2x_area(path) {
|
|||||||
var area = 0;
|
var area = 0;
|
||||||
for (var i = 0; i < path.length; i++) {
|
for (var i = 0; i < path.length; i++) {
|
||||||
var segment = path[i];
|
var segment = path[i];
|
||||||
area += (segment.end.x - segment.start.x)*(segment.end.y + segment.start.y);
|
area += (segment.end[0] + segment.start[0])*
|
||||||
|
(segment.end[1] - segment.start[1]);
|
||||||
}
|
}
|
||||||
return area;
|
return area;
|
||||||
}
|
}
|
||||||
@ -514,7 +515,12 @@ this.get_glyph_render_data = function(glyph, manual_bridges, classifier) {
|
|||||||
var strokes = extract_strokes(
|
var strokes = extract_strokes(
|
||||||
paths, endpoints, manual_bridges || bridges, log);
|
paths, endpoints, manual_bridges || bridges, log);
|
||||||
var expected = UNIHAN_STROKE_COUNTS[glyph.name];
|
var expected = UNIHAN_STROKE_COUNTS[glyph.name];
|
||||||
if (strokes.length === expected) {
|
log.push(['success', 'For character: ' +
|
||||||
|
String.fromCodePoint(parseInt(glyph.name.substr(3), 16))]);
|
||||||
|
if (expected === undefined) {
|
||||||
|
log.push(['success', 'Extracted ' + strokes.length + ' stroke' +
|
||||||
|
(strokes.length > 1 ? 's' : '') + '.']);
|
||||||
|
} else if (strokes.length === expected) {
|
||||||
log.push(['success', 'Extracted ' + strokes.length + ' stroke' +
|
log.push(['success', 'Extracted ' + strokes.length + ' stroke' +
|
||||||
(strokes.length > 1 ? 's' : '') + '.']);
|
(strokes.length > 1 ? 's' : '') + '.']);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
function save_glyph(glyph) {
|
function save_glyph(glyph) {
|
||||||
check(glyph.name, String);
|
check(glyph.name, String);
|
||||||
var saved_glyph = _.extend({}, glyph);
|
var saved_glyph = _.extend({}, glyph);
|
||||||
saved_glyph.derived = {
|
if (saved_glyph.render !== undefined) {
|
||||||
errors: saved_glyph.render.log.filter(function(pair) {
|
saved_glyph.derived = {
|
||||||
return pair[0] !== 'success';
|
errors: saved_glyph.render.log.filter(function(pair) {
|
||||||
}),
|
return pair[0] !== 'success';
|
||||||
strokes: saved_glyph.render.strokes,
|
}),
|
||||||
};
|
strokes: saved_glyph.render.strokes,
|
||||||
|
};
|
||||||
|
}
|
||||||
delete saved_glyph.render;
|
delete saved_glyph.render;
|
||||||
Glyphs.upsert({name: glyph.name}, saved_glyph);
|
Glyphs.upsert({name: glyph.name}, saved_glyph);
|
||||||
return glyph;
|
return glyph;
|
||||||
|
|||||||
Reference in New Issue
Block a user