ManimCommunity/manim

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

Open

#3,619 创建于 2024年2月15日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)Python (17,820 star) (1,378 fork)batch import
good first issueissue:bug

描述

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

贡献者指南

VMobject inaccurately attributes width/height attrs to its bézier control points · ManimCommunity/manim#3619 | Good First Issue