[p5.js 2.0+ Bug Report]: SVG importer does not respect preserveAspectRatio="none" for <symbol>/<use>
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 83/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript
- Área
- computer-graphics
Línea de trabajo
Empieza con la suite de pruebas de los elementos <defs> y <use> en test/unit/svg/svg_import.js y ejecuta npm test -- test/unit/svg/svg_import.js para confirmar el fallo. Sigue cómo el importador SVG gestiona preserveAspectRatio para un símbolo al que se hace referencia mediante <use>. El trabajo está terminado cuando la prueba de regresión pasa con una transformación horizontal de 2 y una transformación vertical de 1.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Most appropriate sub-area of p5.js?
- Accessibility
- Color
- Core/Environment/Rendering
- Data
- DOM
- Events
- Image
- IO
- Math
- Typography
- Utilities
- WebGL
- WebGPU
- p5.strands
- Build process
- Unit testing
- Internationalization
- Friendly errors
- Other (specify if possible)
p5.js version
2.3.2
Web browser and version
No response
Operating system
macOS 15.7.3
Steps to reproduce this
Steps:
- Add the regression test below to the
<defs> and <use> elementssuite intest/unit/svg/svg_import.js. - Run
npm test -- test/unit/svg/svg_import.js. - Observe that the test fails because
node.state.transform.ais1instead of the expected2.
The test uses a 100×100 <symbol> with preserveAspectRatio="none" inside a 200×100 <use> viewport. In this case, the expected transform is non-uniform scaling: 2× horizontally and 1× vertically.
I reproduced this on p5.js 2.3.2 (main at 7f9e0fda5). The SVG importer test suite reports 92 passing tests and this test failing with:
AssertionError: expected 1 to be close to 2 +/- 0.001
Snippet:
test('use respects preserveAspectRatio=none', function () {
const record = createSVG(`
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="stretch" viewBox="0 0 100 100" preserveAspectRatio="none">
<rect x="0" y="0" width="100" height="100" />
</symbol>
</defs>
<use href="#stretch" width="200" height="100" />
</svg>
`);
const scope = firstChild(record);
const node = scope.children[0];
assert.closeTo(node.state.transform.a, 2, 0.001);
assert.closeTo(node.state.transform.d, 1, 0.001);
});
- Lenguaje dominante
- JavaScript
- Estrellas
- 24.1k
- Forks
- 3.9k
- Merge medio
- 3 d 8 h
- PR fusionados (30 d)
- 34
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de processing/p5.js
-
Add unit tests for noiseDetail()Posiblemente ocupada @Pcmhacker-piro la tomó hace 1 día. AbiertoArea:Math Enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
processing/p5.js#9253 ·
Los mantenedores suelen responder en 2 días
-
[p5.js 2.0+ Bug Report]: storeItem() validation branches are missing `return`, so bad input throws a TypeError or is stored anywayPosiblemente ocupada @iUjjwalRaj la tomó hace 2 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
processing/p5.js#9242 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
processing/p5.js#9241 ·
Los mantenedores suelen responder en 2 días
-
[p5.js 2.0+ Bug Report]: Typo in Spanish reference documentation for ellipseMode()Posiblemente ocupada @cgutierrezval la tomó hace 5 días. AbiertoInternationalization p5.js 2.0+
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
processing/p5.js#9231 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
[p5.js 2.0+ Bug Report]: ReferenceError: p5 is not defined when calling loadPixels/get/copy/mask on p5.MediaElement in ESMPosiblemente ocupada @Pcmhacker-piro la tomó hace 10 días. AbiertoArea:Core Area:DOM
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
processing/p5.js#9189 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de processing/p5.js
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
naver/egjs-flicking#971 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
RADAR-base/radar-self-enrolment-ui#118 ·
Los mantenedores suelen responder en 1 día