5

你能画出对角线/箭头/任何看起来像你划掉的东西,取消数学方程中的类似项吗?

在此处输入图像描述

4

1 回答 1

3

定义的最接近的东西是Cross,但它并不完全是您正在寻找的东西,我喜欢使用它:

class Cancel(VGroup):
    CONFIG = {
        "line_kwargs": {"color":RED},
        "buff_text": None,
        "buff_line": 0.7,
    }
    def __init__(self,text,texmob=None,**kwargs):
        digest_config(self,kwargs)
        VGroup.__init__(self,**kwargs)

        pre_coord_dl = text.get_corner(DL)
        pre_coord_ur = text.get_corner(UR)
        reference_line = Line(pre_coord_dl,pre_coord_ur)
        reference_unit_vector = reference_line.get_unit_vector()
        coord_dl = text.get_corner(DL) - text.get_center() - reference_unit_vector*self.buff_line
        coord_ur = text.get_corner(UR) - text.get_center() + reference_unit_vector*self.buff_line
        if texmob == None:
            line = Line(coord_dl,coord_ur,**self.line_kwargs)
            self.add(line)
        else:
            arrow = Arrow(coord_dl,coord_ur,**self.line_kwargs)
            unit_vector = arrow.get_unit_vector()
            if self.buff_text == None:
                self.buff_text = get_norm((texmob.get_center()-texmob.get_critical_point(unit_vector))/2)*2
            texmob.move_to(arrow.get_end()+unit_vector*self.buff_text)
            self.add(arrow,texmob)


class CancelTerms(Scene):
    def construct(self):
        formula = TexMobject("f(x)",height=1)
        cancel_formula = Cancel(formula,TexMobject("testa"))
        self.add(formula,cancel_formula)

在此处输入图像描述

于 2020-02-04T04:19:07.333 回答