ManimCommunity/manim

VMobject inaccurately attributes width/height attrs to its bézier control points

Aberta

#3.619 aberto em 15 de fev. de 2024

 (0 comentário) (0 reação) (0 responsável)Python (1.378 forks)batch import
good first issueissue:bug

Métricas do repositório

Stars
 (17.820 estrelas)
Métricas de merge de PR
 (Mesclagem média 90d 10h) (31 fundiu PRs em 30d)

Description

Description of bug / unexpected behavior

The VMobject width/height attributes are calculated using the points array which is actually the control points for the quadratic bézier curves. This is not very intuitive behavior for end-users.

Expected behavior

The VMobject width/height attributes should indicate the width/height of the physical curve, respectively.

How to reproduce the issue

class TestFail(Scene):
  def construct(self):
    c = Circle().scale(3)
    c.rotate(30*DEGREES)
    radius = c.width / 2
    l = Line().set_length(radius * 2).move_to(c)

    self.add(c, l)

image

Additional media files

https://discord.com/channels/581738731934056449/976376734935048223/1207665909871677500

Additional comments

Possibly related to this issue: #3344 This may be helpful for anyone fixing this issue in the future: https://stackoverflow.com/questions/2587751/an-algorithm-to-find-bounding-box-of-closed-bezier-curves

Guia do colaborador