Skip to content

Morph quality: arc-length-based path resampling for transform alignment #7

Description

@ronaldmannak

BezierPath.aligned(with:) (PR #2) equalizes curve counts by subdividing curves evenly in parameter space. That is exactly what Manim's simpler alignment does and looks good for the Phase 1 shape pairs (circle↔square↔polygon), but extreme pairs (e.g. a path with one very long and several tiny segments) can morph unevenly, because matched curves cover very different arc lengths.

Improvement: resample both paths by arc length before pairing curves (or weight the subdivision distribution by approximateLength per curve), and consider rotating the start point of closed subpaths to minimize control-point travel.

Deferred from the Phase 1 stack (#2, #4) to keep those PRs focused; not user-visible for the shipped shape set.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions