PShape.contains() is broken for transformed shapes (double invert)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- java
- Domínio
- computer-graphics
Direção de pesquisa
Comece em PShape.java, em contains(), onde a issue identifica duas inversões consecutivas de matriz. Execute o repro translated-rectangle fornecido e verifique se remover a inversão extra faz com que contains(120, 120) retorne true para a forma transformada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 497
- Forks
- 183
- Merge médio
- 4h 39min
- PRs com merge (30d)
- 3
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de processing/processing4
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
processing/processing4#1554 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
processing/processing4#1515 · 1 reação ·
-
bug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
processing/processing4#1573 ·
-
startup error Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
processing/processing4#1569 · 7 comentários ·
-
Binaries under bin directory lack executable permissions for the snap and .deb packages for Linux Abertabug
processing/processing4#1567 · 3 comentários · 1 reação · 1 responsável ·
Todas as issues de processing/processing4
Issues semelhantes
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
apache/flink-agents#1152 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
objectionary/eo-graphs#75 ·