linebender / linebender/kurbo

Dash iterator zero-length LineTo noise

Open
#577 0 comments 0 reactions 0 assignees View on GitHub

@waywardmonkeys is already working on this.

Since Jul 23, 2026.

  • #578 by @RobertBrewitz — closed without merging
  • #597 by @waywardmonkeys — open
Dominant language
Rust
Stars
1k
Forks
103
PR merge metrics
No merged PRs in 30d

Description

If/When https://github.com/linebender/kurbo/pull/550 is merged this would be a follow-up issue.

When a dash transition lands exaxtly on a path vertex, the iterator emits a zero-length `LineTo` at the corner instead of cleanly transitioning to the next dash.

Example:

```rust
let mut path = BezPath::new();
path.move_to((0., 0.));
path.move_to((3., 0.));
path.move_to((3., 3.));
let dashes = [3., 1.];
let result: Vec = dash_iter(path.into_iter(), 0., &dashes, true).collect();

// Current noisy output: MoveTo(0,0), **LineTo(3,0), LineTo(3,0)**, MoveTo(3,1), LineTo(3,3)
// Expected output: MoveTo(0,0), LineTo(3,0), MoveTo(3,1), LineTo(3,3)
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the `dash_iter` entry point and reproduce the issue using the Rust example in this report. Check the open PR #597 before beginning, then verify that a dash transition at a vertex no longer emits a duplicate zero-length `LineTo` and that the expected path elements are produced.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.