mirror of
https://github.com/3b1b/manim.git
synced 2025-09-19 04:41:56 +00:00
Merge
This commit is contained in:
commit
270e93f6f0
2 changed files with 29 additions and 3 deletions
|
@ -9,6 +9,9 @@ from manimlib.mobject.svg.svg_mobject import SVGMobject
|
|||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
TEXT_MOB_SCALE_FACTOR = 0.05
|
||||
|
||||
|
||||
class TextSetting(object):
|
||||
def __init__(self, start, end, font, slant, weight, line_num=-1):
|
||||
self.start = start
|
||||
|
@ -45,8 +48,23 @@ class Text(SVGMobject):
|
|||
self.lsh = self.size if self.lsh == -1 else self.lsh
|
||||
|
||||
file_name = self.text2svg()
|
||||
self.remove_last_M(file_name)
|
||||
SVGMobject.__init__(self, file_name, **config)
|
||||
|
||||
nppc = self.n_points_per_curve
|
||||
for each in self:
|
||||
if len(each.points) == 0:
|
||||
continue
|
||||
points = each.points
|
||||
last = points[0]
|
||||
each.clear_points()
|
||||
for index, point in enumerate(points):
|
||||
each.append_points([point])
|
||||
if index != len(points) - 1 and (index + 1) % nppc == 0 and any(point != points[index+1]):
|
||||
each.add_line_to(last)
|
||||
last = points[index + 1]
|
||||
each.add_line_to(last)
|
||||
|
||||
if self.t2c:
|
||||
self.set_color_by_t2c()
|
||||
if self.gradient:
|
||||
|
@ -55,7 +73,15 @@ class Text(SVGMobject):
|
|||
self.set_color_by_t2g()
|
||||
|
||||
# anti-aliasing
|
||||
self.scale(0.1)
|
||||
if self.height is None:
|
||||
self.scale(TEXT_MOB_SCALE_FACTOR)
|
||||
|
||||
def remove_last_M(self, file_name):
|
||||
with open(file_name, 'r') as fpr:
|
||||
content = fpr.read()
|
||||
content = re.sub(r'Z M [^A-Za-z]*? "\/>', 'Z "/>', content)
|
||||
with open(file_name, 'w') as fpw:
|
||||
fpw.write(content)
|
||||
|
||||
def find_indexes(self, word):
|
||||
m = re.match(r'\[([0-9\-]{0,}):([0-9\-]{0,})\]', word)
|
||||
|
|
|
@ -38,7 +38,7 @@ bool is_inside_curve(){
|
|||
|
||||
|
||||
float sdf(){
|
||||
if(is_inside_curve()) return -1;
|
||||
if(is_inside_curve()) return -1.0;
|
||||
return min_dist_to_curve(uv_coords, uv_b2, bezier_degree, false);
|
||||
}
|
||||
|
||||
|
@ -49,4 +49,4 @@ void main() {
|
|||
if (fill_type == FILL_ALL) return;
|
||||
frag_color.a *= smoothstep(1, 0, sdf() / uv_anti_alias_width);
|
||||
// frag_color.a += 0.2;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue