mirror of
https://github.com/skishore/makemeahanzi.git
synced 2025-11-03 22:18:19 +08:00
Minor pruning of bad corners
This commit is contained in:
10
getchar.py
10
getchar.py
@ -18,6 +18,7 @@ TRANSFORM = 'scale({0:.2g}, -{0:0.2g}) translate(0, -900)'.format(SCALE)
|
|||||||
MAX_BRIDGE_DISTANCE = 128
|
MAX_BRIDGE_DISTANCE = 128
|
||||||
MAX_CORNER_MERGE_DISTANCE = 15
|
MAX_CORNER_MERGE_DISTANCE = 15
|
||||||
MIN_CORNER_ANGLE = 0.1*math.pi
|
MIN_CORNER_ANGLE = 0.1*math.pi
|
||||||
|
MIN_CORNER_TANGENT_DISTANCE = 4
|
||||||
|
|
||||||
|
|
||||||
class Corner(object):
|
class Corner(object):
|
||||||
@ -87,12 +88,12 @@ class Corner(object):
|
|||||||
segment1 = path[index]
|
segment1 = path[index]
|
||||||
tangent1 = segment1.end - segment1.start
|
tangent1 = segment1.end - segment1.start
|
||||||
if (type(segment1) == svg.path.QuadraticBezier and
|
if (type(segment1) == svg.path.QuadraticBezier and
|
||||||
segment1.end != segment1.control):
|
abs(segment1.control - segment1.end) > MIN_CORNER_TANGENT_DISTANCE):
|
||||||
tangent1 = segment1.end - segment1.control
|
tangent1 = segment1.end - segment1.control
|
||||||
segment2 = path[(index + 1) % len(path)]
|
segment2 = path[(index + 1) % len(path)]
|
||||||
tangent2 = segment2.end - segment2.start
|
tangent2 = segment2.end - segment2.start
|
||||||
if (type(segment2) == svg.path.QuadraticBezier and
|
if (type(segment2) == svg.path.QuadraticBezier and
|
||||||
segment2.control != segment2.end):
|
abs(segment2.control - segment2.end) > MIN_CORNER_TANGENT_DISTANCE):
|
||||||
tangent2 = segment2.control - segment2.start
|
tangent2 = segment2.control - segment2.start
|
||||||
return (tangent1, tangent2)
|
return (tangent1, tangent2)
|
||||||
|
|
||||||
@ -135,6 +136,11 @@ def augment_glyph(glyph):
|
|||||||
for stroke in strokes:
|
for stroke in strokes:
|
||||||
result.append('<path fill="{0}" d="{1}" />'.format(
|
result.append('<path fill="{0}" d="{1}" />'.format(
|
||||||
'#%02X%02X%02X' % (rand256(), rand256(), rand256()), stroke.d()))
|
'#%02X%02X%02X' % (rand256(), rand256(), rand256()), stroke.d()))
|
||||||
|
for path in paths:
|
||||||
|
for element in path:
|
||||||
|
result.append(
|
||||||
|
'<circle cx="{0}" cy="{1}" r="4" fill="blue" stroke="blue"/>'.format(
|
||||||
|
int(element.end.real), int(element.end.imag)))
|
||||||
for corner in corners.itervalues():
|
for corner in corners.itervalues():
|
||||||
result.append(
|
result.append(
|
||||||
'<circle cx="{0}" cy="{1}" r="4" fill="red" stroke="red" '
|
'<circle cx="{0}" cy="{1}" r="4" fill="red" stroke="red" '
|
||||||
|
|||||||
Reference in New Issue
Block a user