ManimCommunity/manim

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

Open

#3619 aperta il 15 feb 2024

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Python (1378 fork)batch import
good first issueissue:bug

Metriche repository

Star
 (17.820 star)
Metriche merge PR
 (Merge medio 11g 17h) (4 PR mergiate in 30 g)

Descrizione

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

Guida contributor