GraphiteEditor / GraphiteEditor/Graphite

Nudge-scaling of points with the Path tool

Abierto
#2,374 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Good First Issue
Lenguaje dominante
Rust
Estrellas
27.2k
Forks
1.3k
Merge medio
20 h 5 min
PR fusionados (30 d)
57

Descripción

With a group of points selected, we'd like to be able to use nudge-scaling to resize their bounding box.

Nudge scaling is when, in the Select tool, you hold Alt when nudging with the arrow keys to resize by nudging only the bottom and right (or instead, top and left if Ctrl is also pressed) edge while keeping the opposite edges of the bounding box stationary, thereby resizing the shape.

This feature should create a bounding box of all selected points, in document space coordinates. Points at the very top and left of the bounds should be unaffected, and points at the very bottom and left should be nudged the full amount, with intermediate points scaling proportionally. This would be equivalent to scaling them with GRS's S if you were able to set the pivot to the top left of the combined points' bounding box. Handles of points should behave as S scaling does presently.

---

https://github.com/user-attachments/assets/2e4cc512-8614-46d0-befa-f7d3e5253428

At the very end, I'm scaling those points (with the `S` key followed by `X`) as a means of illustrating the desired equivalent behavior for nudge scaling.

Arrow keys are used for nudging. In the Select tool, it moves the object. In the Path tool, it moves the points. When you add the Alt modifier key, it performs nudge scaling instead of nudging. But it's not implemented in the Path tool.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Start by tracing arrow-key handling in the Select tool and the corresponding Path tool point-nudging and S-key scaling behavior. Implement the Alt-modified bounding-box scaling described for selected points, including Ctrl for the opposite edges, and verify that points and handles match the existing scaling behavior.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
computer-graphics
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.