From 19bfb90a9025a051a78867f32fcfc710881e3d57 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 14:48:34 +0530 Subject: [PATCH 1/9] enhance: add background rectangles to coordinate_label --- manim/mobject/geometry.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index d5c6c7d8f4..f3dda0f837 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1557,7 +1557,11 @@ def __init__(self, direction=RIGHT, buff=0, **kwargs): super().__init__(ORIGIN, direction, buff=buff, **kwargs) def coordinate_label( - self, integer_labels: bool = True, n_dim: int = 2, color: str = WHITE + self, + integer_labels: bool = True, + n_dim: int = 2, + color: str = WHITE, + show_bg_rec=False, ): """Creates a label based on the coordinates of the vector. @@ -1569,6 +1573,8 @@ def coordinate_label( The number of dimensions of the vector. color The color of the label. + show_bg_rec + Display background rectangle for a number. Examples -------- @@ -1582,12 +1588,13 @@ def construct(self): vect_1 = Vector([1, 2]) vect_2 = Vector([-3, -2]) - label_1 = vect1.coordinate_label() + label_1 = vect1.coordinate_label(show_bg_rec=True) label_2 = vect2.coordinate_label(color=YELLOW) self.add(plane, vect_1, vect_2, label_1, label_2) """ # avoiding circular imports + from ..mobject.shape_matchers import BackgroundRectangle from .matrix import Matrix vect = np.array(self.get_end()) @@ -1596,7 +1603,7 @@ def construct(self): vect = vect[:n_dim] vect = vect.reshape((n_dim, 1)) - label = Matrix(vect) + label = Matrix(vect, add_background_rectangles_to_entries=show_bg_rec) label.scale(LARGE_BUFF - 0.2) shift_dir = np.array(self.get_end()) @@ -1606,6 +1613,9 @@ def construct(self): shift_dir -= label.get_right() + DEFAULT_MOBJECT_TO_MOBJECT_BUFFER * RIGHT label.shift(shift_dir) label.set_color(color) + if show_bg_rec: + label.rect = BackgroundRectangle(label) + label.add_to_back(label.rect) return label From 7d3fb1fd120c580fd9599732619adbbdabb0d1f3 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 14:53:24 +0530 Subject: [PATCH 2/9] enhance: add typing --- manim/mobject/geometry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index f3dda0f837..e4c6516646 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1561,7 +1561,7 @@ def coordinate_label( integer_labels: bool = True, n_dim: int = 2, color: str = WHITE, - show_bg_rec=False, + show_bg_rec: bool = False, ): """Creates a label based on the coordinates of the vector. From f161ac5f44726096011672176b9f45405760a91a Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 20:41:01 +0530 Subject: [PATCH 3/9] fix: pass single parameter in Matrix instead of extra condition --- manim/mobject/geometry.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index e4c6516646..5148fe1476 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1603,7 +1603,7 @@ def construct(self): vect = vect[:n_dim] vect = vect.reshape((n_dim, 1)) - label = Matrix(vect, add_background_rectangles_to_entries=show_bg_rec) + label = Matrix(vect, include_background_rectangle=show_bg_rec) label.scale(LARGE_BUFF - 0.2) shift_dir = np.array(self.get_end()) @@ -1613,9 +1613,6 @@ def construct(self): shift_dir -= label.get_right() + DEFAULT_MOBJECT_TO_MOBJECT_BUFFER * RIGHT label.shift(shift_dir) label.set_color(color) - if show_bg_rec: - label.rect = BackgroundRectangle(label) - label.add_to_back(label.rect) return label From 41d6d5b296706defd866f5d12116e23a203cc83c Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 20:58:11 +0530 Subject: [PATCH 4/9] fix: example display resolution for coordinate_label --- manim/mobject/geometry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index 5148fe1476..bffe9a67fc 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1579,7 +1579,7 @@ def coordinate_label( Examples -------- - .. manim VectorCoordinateLabel + .. manim:: VectorCoordinateLabel :save_last_frame: class VectorCoordinateLabel(Scene): From 972e6e1b2bcc9e24aeb4e96d12dc4edf9dee0f70 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 21:01:09 +0530 Subject: [PATCH 5/9] fix: example display resolution for coordinate_label --- manim/mobject/geometry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index bffe9a67fc..1bd935bfe7 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1579,7 +1579,7 @@ def coordinate_label( Examples -------- - .. manim:: VectorCoordinateLabel + .. manim:: CoordinateLabelExample :save_last_frame: class VectorCoordinateLabel(Scene): From 2766eac330ec34786757e37063bada362de430cb Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 21:13:00 +0530 Subject: [PATCH 6/9] fix: revert example name to VectorCoordinateLabel --- manim/mobject/geometry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index 1bd935bfe7..bffe9a67fc 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1579,7 +1579,7 @@ def coordinate_label( Examples -------- - .. manim:: CoordinateLabelExample + .. manim:: VectorCoordinateLabel :save_last_frame: class VectorCoordinateLabel(Scene): From 5603358e4e3c5f5ee4adaf1948f28ff6ce183136 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Tue, 31 Aug 2021 21:18:03 +0530 Subject: [PATCH 7/9] fix: resolution for build error in example --- manim/mobject/geometry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index bffe9a67fc..e2a01b11fc 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1588,8 +1588,8 @@ def construct(self): vect_1 = Vector([1, 2]) vect_2 = Vector([-3, -2]) - label_1 = vect1.coordinate_label(show_bg_rec=True) - label_2 = vect2.coordinate_label(color=YELLOW) + label_1 = vect_1.coordinate_label(show_bg_rec=True) + label_2 = vect_2.coordinate_label(color=YELLOW) self.add(plane, vect_1, vect_2, label_1, label_2) """ From 598b8d09d137c7332bed993311b86650028417c2 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Sun, 5 Sep 2021 17:08:47 +0530 Subject: [PATCH 8/9] test: graphical unit test for Vector.coordinate_label --- .../geometry/VectorCoordLabel.npz | Bin 0 -> 2598 bytes tests/test_graphical_units/test_geometry.py | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 tests/control_data/graphical_units_data/geometry/VectorCoordLabel.npz diff --git a/tests/control_data/graphical_units_data/geometry/VectorCoordLabel.npz b/tests/control_data/graphical_units_data/geometry/VectorCoordLabel.npz new file mode 100644 index 0000000000000000000000000000000000000000..4bd555c0dd288c0173f71e5528abd1130cc9ab39 GIT binary patch literal 2598 zcmWIWW@Zs#U|`??VnqhKenrVCoD2*Ntdb0T3?d9^MTxno@hOQViF$bjm5dAmU>TrN z29PQcczgGJmbAOffx_>%%s-qJe|+u71qYTz{1>9V^=-d|_&mPkoY{5x+of-szZ@p& z++@jV{x6)Iv!RE7oAN{!?F1p4uR2RwLNcT3R(s^wG0W>@9(}Xu_Vlmk{`@=|KEM9w zS9an3et*o0(;wd3-fcYJ@9dv{r`OKhxpL z_kHvKXFh!P*M0l5WqH@_XU<-AJ@5XWUln<;`d9w9w3{Va_R5y@9ytjy~=v>pzQ+ zj0BnFkUI5l=-RN=JHn^N&!0d4HPEaDpW1%bOa(dS9y_`<60xid3<8S@x`}7?>S@!b zUw-;D)$sqhbADMSQeZbM0lMME3yrT;d!4r5_7xWwuit+@YV9E2R+a6Z+t=53X|a2M5YU0@>gt)fxxS!Ko*J4KzINTZWpV4nP5d|C z^wHMVe);9g77O=x+Mpl_35<-rnqhM3@$vrd-=XW}Pp_SN{NKNQV2>?dv+mZNJ3fEw z?BBk7_wVtIZ{Nxa=cS*Y_YxG=MWubg3%XRIkX` zskdLgyuAGA=MbQw=VSNE{M-q#@Z|1@^uG@ew;!$i^f~_jiN*O} zzjlG`PQMYmb^G@4IgdYl*f8ZML{Zz#(4R9`KR-WT{5Q*V)8!y_$Ifopwd!itQeavs zDJTedwFeRnhhMDP^DO=zcg2OcFmU|M+O%8ieQar2S=bxaKfgBaVcT7Ljgg^YmFDi% zR&)J;zLcqW^XHF^&3>?lY88{0NPHvDaVBYJu-1t-5siM!k;N&JD zj+BnBy#CslmY#n3$&)81u4Zj*yl!r5Yy0Uw-)N~d8UmvsFd71QLZD&$Z|(qZMkWzp h>kWIW4xzaLSava>webSHS=m6Mj6i4uq_2S6c>wJ=8r=W@ literal 0 HcmV?d00001 diff --git a/tests/test_graphical_units/test_geometry.py b/tests/test_graphical_units/test_geometry.py index b3d2c4b719..d7305a841c 100644 --- a/tests/test_graphical_units/test_geometry.py +++ b/tests/test_graphical_units/test_geometry.py @@ -118,6 +118,12 @@ def test_Vector(scene): scene.add(a) +@frames_comparison +def test_VectorCoordLabel(scene): + vec = Vector([1, 2]).coordinate_label(show_bg_rec=True) + scene.add(vec) + + @frames_comparison def test_Polygon(scene): a = Polygon(*[np.array([1, 1, 0]), np.array([2, 2, 0]), np.array([2, 3, 0])]) From 798aaee93e3106bc247bc61c1c50323804e2fae0 Mon Sep 17 00:00:00 2001 From: Rudransh24 Date: Mon, 6 Sep 2021 20:55:34 +0530 Subject: [PATCH 9/9] fix: rectified desired result in Vector.coordinate_label --- manim/mobject/geometry.py | 5 ++++- .../geometry/VectorCoordLabel.npz | Bin 2598 -> 2700 bytes 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/manim/mobject/geometry.py b/manim/mobject/geometry.py index a4ace9aa95..f22d7b97d5 100644 --- a/manim/mobject/geometry.py +++ b/manim/mobject/geometry.py @@ -1620,7 +1620,10 @@ def construct(self): else: # Pointing left shift_dir -= label.get_right() + DEFAULT_MOBJECT_TO_MOBJECT_BUFFER * RIGHT label.shift(shift_dir) - label.set_color(color) + if show_bg_rec: + label[1:].set_color(color) + else: + label.set_color(color) return label diff --git a/tests/control_data/graphical_units_data/geometry/VectorCoordLabel.npz b/tests/control_data/graphical_units_data/geometry/VectorCoordLabel.npz index 4bd555c0dd288c0173f71e5528abd1130cc9ab39..db6243f7618fac3e2e297e8150be91b9cec905c5 100644 GIT binary patch literal 2700 zcmWIWW@Zs#U|`??Vnv2I&;RcH#mT_Xz$(eW#~{LxR+N~V8lRF_lBkzgP|3(30G0tN zWdNxHfwy=4vqQoq4m{*JSkHRV!Xm+pGg(2GWo3dwiKawAhK|QYy(Jz#nG22x-Oib` zW^-qg$QSO8?v58u210jt3KlL_VEM%O=-6ECgTe1xr%mhG_H^&|;tS6YIHwgIu0Hqe z_}M!@b06JazyIgDi^kWD?Q7~@J$mxyLwNIH?)`Fda*{It9v*t5zxjFEzWoN(b*p~- z{jqbtp5NZze~-$a|7-L0-QVZ!?ri-%wU$N}W>rt_uGV*B6KDVb_}7}{%heen9vCGV z4lG}HH?RCkj@jsWhf z1_lSmaA5Eqd7%YNDl?My*8JS``uUITeX`ceRs%)WfW;+ZSs54v76Szsl1fB@dV1C| zF)(yo3BrjR*e)a6^Y_RqhSFeV$^T~LepJ%K6e7;qw*4J;}!i>T}ig&Kuwffof z=a+BYih6l(Z}rP>Z*SM{)Bp1IYwNSuz>rZeFa0N$ob9Y_`S<7j`u+Rz*6i!2 zZ1v*z&5`PLtKbJY{mHUb>uzn!jjsCgBJkG!`v23if#9j#<;#~J)`C4ad)2O2KR!Nw zd9+*n<(HS2qu2TR_)Pholatf(9TejZd8=NndK4G3@!p=w;Cs7&z23TT;leM+Z|$uv z&ya^%U{&!Uq3YL{%w1JqUrozC`g~p2S74BC$-chsf*mL>PMrP!an9G1Cr=j5fAl&0 zVkB71_ik*c4fBVOkB>jyyK3XcjUQ|v#=To-RsAhz=kYstVpKmvoM^Rs)sHh*SBI~^ z^ypDis&OeOVrK8!wQBu(ecSqfHfPVA39*7k?Bdm3>HlnNei+QPEME5M^DA(40z)%D zKYv%@V>heHPfvg@G`>;(=7!)bcp{vx7wh%-@nhNbcXyR)+rWdk>v`~+_3M{UojP^@ z&f@2ORiB=C{xsgz4$2Ni!J*-EEeaR?>08CWcInckA0Qs}4UOHJetzDSyzTZYe$0LW z6})?&JH{03J7VMiee~(mr(^A-6N`&CKmG|01#XZ5&}@0@ZJGPow9T*6wRw1WN^Ig+ zUw!rK=4gR98UmvsFd72*Lf}XGe&zsgMkWzp8xeck5uv*Q+|WX8Nd|bcvVl}E0-+6% KwgQ&!3=9B3lvE`E delta 1009 zcmeAXT_z$N;LXe;!oa}50mO<7cKwQyQziyyG*X3`QzG?n)n5c7;C8znnaB|Lu9{z306IrwqglxX* zENKbJjH+Ahkz>a!uakN7&7#}Wzn=T^^Jw_|`k!Cfh4=gYF)L1gcyD{R@qE9tfBv0b zJ9FpCnO5)L>HXVd@&B=Tx%hjXC+F>F|9^Pz(AnqT_s##G`S96a_wCP?|1^PHS^hX=a!v3d2-_Ft69wJ^Q)?=p6r)p zU~u@h?BdIkOMicVcYpWlRn~*Axj8vKf3`C-Fq|k61xojWaUL?-FUT+BRSiRGcY?_LW9s$9yudiAWcX}9j*_t%fx<8k`*>0Mk53@g@b z+WqRs4~x>>cb)d%*MAlt8F>+;I(6#Z(6wQ!cZ5%kpFe;8Yb^$b1)th})=ULicaMGY zMrK_vkah*Pa7G4(BRs2DPn$md^3$iOhX2o<^UE@k0-L=AX!eU28egmSI&Hu0D=scx zzyEyH+G!v&v{GmMXSd)1DU&b<88?}gSzz)MX3P3h?^c!Vp4->gcWJSEe-Kcgy1II1 zZmuuLqN$;2;cM5eTNbxI+{AzLO&@J-?U!G^Y_V{Erya}6zz`A`8GALu(f9veuzI*rY@r`fa$_nSDpP%;<^UUVij*2+-8?v3q5H?u6KQa(6`f--n0W zk5+#A9DZ>pC{7IW?zx8BR(@JyasJn@U0}=8Z^UlhzCC=-;}0J;O!)~>)OIuU=gig5 z&(9bC%`)9|IY`~Hvm18RuezGG6c{-r1qA`G_CUht@QYP@p2gqeuDB2v1`gO+n|5ox zk1Z`L3wy)*=hwzPY`aUZF)}o)(%ik;YOWv9pE4D1{`|4A*$+0=cV_I=>&st!|LtnO z_tm3Ei*6WO{J#o{H?@tY zmw}Vj