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