Uhhh... help? #3899
Unanswered
WiktorProj
asked this question in
Q&A
Uhhh... help?
#3899
Replies: 1 comment
-
I assume that you are aware of the fact that you are trying to divide by zero along the axis-lines? This would make the resulting vectors infinitely long - which is a bit difficult to handle... class BasicUsage(Scene):
def construct(self):
def func(pos):
if pos[0] != 0 and pos[1] != 0:
return 1/pos[0]*RIGHT + 1/pos[1]*UP
else:
return ORIGIN
self.add(ArrowVectorField(func)) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Description of bug / unexpected behavior
I don't even know how i got here!
Expected behavior
Should generate a vector field
How to reproduce the issue
Add a 1/ to the lambda
Code for reproducing the problem
Logs
Terminal output
Exception Traceback (most recent call last) Cell In[8], line 9 4 self.add(ArrowVectorField(func)) 8 # don't remove below command for run button to work ----> 9 get_ipython().run_line_magic('manim', '-qm -v DEBUG BasicUsage')File /usr/local/lib/python3.11/site-packages/IPython/core/interactiveshell.py:2480, in InteractiveShell.run_line_magic(self, magic_name, line, _stack_depth)
2478 kwargs['local_ns'] = self.get_local_scope(stack_depth)
2479 with self.builtin_trap:
-> 2480 result = fn(*args, **kwargs)
2482 # The code below prevents the output from being displayed
2483 # when using magics with decorator @output_can_be_silenced
2484 # when the last Python token in the expression is a ';'.
2485 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False):
File /usr/local/lib/python3.11/site-packages/manim/utils/ipython_magic.py:143, in ManimMagic.manim(self, line, cell, local_ns)
141 SceneClass = local_ns[config["scene_names"][0]]
142 scene = SceneClass(renderer=renderer)
--> 143 scene.render()
144 finally:
145 # Shader cache becomes invalid as the context is destroyed
146 shader_program_cache.clear()
File /usr/local/lib/python3.11/site-packages/manim/scene/scene.py:229, in Scene.render(self, preview)
227 self.setup()
228 try:
--> 229 self.construct()
230 except EndSceneEarlyException:
231 pass
Cell In[8], line 4, in BasicUsage.construct(self)
2 def construct(self):
3 func = lambda pos: 1/pos[0]*RIGHT + 1/pos[1]*UP
----> 4 self.add(ArrowVectorField(func))
File /usr/local/lib/python3.11/site-packages/manim/mobject/vector_field.py:604, in ArrowVectorField.init(self, func, color, color_scheme, min_color_scheme_value, max_color_scheme_value, colors, x_range, y_range, z_range, three_dimensions, length_func, opacity, vector_config, **kwargs)
601 y_range = np.arange(*self.y_range)
602 z_range = np.arange(*self.z_range)
603 self.add(
--> 604 *[
605 self.get_vector(x * RIGHT + y * UP + z * OUT)
606 for x, y, z in it.product(x_range, y_range, z_range)
607 ]
608 )
609 self.set_opacity(self.opacity)
File /usr/local/lib/python3.11/site-packages/manim/mobject/vector_field.py:605, in (.0)
601 y_range = np.arange(*self.y_range)
602 z_range = np.arange(*self.z_range)
603 self.add(
604 *[
--> 605 self.get_vector(x * RIGHT + y * UP + z * OUT)
606 for x, y, z in it.product(x_range, y_range, z_range)
607 ]
608 )
609 self.set_opacity(self.opacity)
File /usr/local/lib/python3.11/site-packages/manim/mobject/vector_field.py:628, in ArrowVectorField.get_vector(self, point)
626 if norm != 0:
627 output *= self.length_func(norm) / norm
--> 628 vect = Vector(output, **self.vector_config)
629 vect.shift(point)
630 if self.single_color:
File /usr/local/lib/python3.11/site-packages/manim/mobject/geometry/line.py:670, in Vector.init(self, direction, buff, **kwargs)
667 if len(direction) == 2:
668 direction = np.hstack([direction, 0])
--> 670 super().init(ORIGIN, direction, buff=buff, **kwargs)
File /usr/local/lib/python3.11/site-packages/manim/mobject/geometry/line.py:530, in Arrow.init(self, stroke_width, buff, max_tip_length_to_length_ratio, max_stroke_width_to_length_ratio, *args, **kwargs)
527 # TODO, should this be affected when
528 # Arrow.set_stroke is called?
529 self.initial_stroke_width = self.stroke_width
--> 530 self.add_tip(tip_shape=tip_shape)
531 self._set_stroke_width_from_length()
File /usr/local/lib/python3.11/site-packages/manim/mobject/geometry/arc.py:121, in TipableVMobject.add_tip(self, tip, tip_shape, tip_length, tip_width, at_start)
119 else:
120 self.position_tip(tip, at_start)
--> 121 self.reset_endpoints_based_on_tip(tip, at_start)
122 self.asign_tip_attr(tip, at_start)
123 self.add(tip)
File /usr/local/lib/python3.11/site-packages/manim/mobject/geometry/arc.py:204, in TipableVMobject.reset_endpoints_based_on_tip(self, tip, at_start)
202 self.put_start_and_end_on(tip.base, self.get_end())
203 else:
--> 204 self.put_start_and_end_on(self.get_start(), tip.base)
205 return self
File /usr/local/lib/python3.11/site-packages/manim/mobject/geometry/tips.py:133, in ArrowTip.base(self)
117 @Property
118 def base(self) -> Point3D:
119 r"""The base point of the arrow tip.
120
121 This is the point connecting to the arrow line.
(...)
131
132 """
--> 133 return self.point_from_proportion(0.5)
File /usr/local/lib/python3.11/site-packages/manim/mobject/types/vectorized_mobject.py:1451, in VMobject.point_from_proportion(self, alpha)
1448 return curve(residue)
1450 current_length += length
-> 1451 raise Exception(
1452 "Not sure how you reached here, please file a bug report at https://github.com/ManimCommunity/manim/issues/new/choose"
1453 )
Exception: Not sure how you reached here, please file a bug report at https://github.com/ManimCommunity/manim/issues/new/choose
Beta Was this translation helpful? Give feedback.
All reactions