PShape.contains() is broken for transformed shapes (double invert)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- java
- Ambito
- computer-graphics
Direzione di ricerca
Inizia in PShape.java, in contains(), dove l’issue identifica due inversioni consecutive della matrice. Esegui il repro translated-rectangle fornito e verifica che la rimozione dell’inversione aggiuntiva faccia restituire true a contains(120, 120) per la forma trasformata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
contains() in PShape is inverting the matrix twice, so it cancels itself out and hit-testing runs in the wrong space.
In PShape.java:
PMatrix inverseCoords = matrix.get();
inverseCoords.invert();
inverseCoords.invert();
inverseCoords.mult(new PVector(x, y), p);
That second invert() should not be there.
So for translated/rotated/scaled shapes, contains(x, y) gives wrong answers.
Quick repro:
PShape s = createShape(RECT, 0, 0, 50, 50);
s.translate(100, 100);
println(s.contains(120, 120)); // false, should be true
Expected: point-in-shape test respects the shape transform.
Actual: transform handling is wrong because inverse matrix is never actually applied.
- Lingua principale
- Java
- Stelle
- 497
- Fork
- 183
- Merge medio
- 4h 39m
- PR unite (30g)
- 3
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di processing/processing4
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
processing/processing4#1554 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
processing/processing4#1515 · 1 reazione ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
processing/processing4#1573 ·
-
startup error Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
processing/processing4#1569 · 7 commenti ·
-
Binaries under bin directory lack executable permissions for the snap and .deb packages for Linux Apertabug
processing/processing4#1567 · 3 commenti · 1 reazione · 1 assegnatario ·
Tutte le issue di processing/processing4
Issue simili
-
bug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
opensearch-project/ml-commons#5094 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
emitter:client:csharp feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
affects/8.10 affects/8.9 component/clients kind/bug likelihood/mid severity/mid
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Two open-case totals on one screen: the Programs tile says 15,858 and the nav badge says 15,868 Apertabug frontend maui-pilot
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100