Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

PShape.contains() is broken for transformed shapes (double invert)

Ouverte
#1,445 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
1/5
Temps estimé
Moins d'une heure
Accessibilité débutants
55/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
java

Piste de recherche

Commencez dans PShape.java, au niveau de contains(), où l’issue identifie deux inversions de matrice consécutives. Exécutez le repro translated-rectangle fourni et vérifiez que la suppression de l’inversion supplémentaire fait que contains(120, 120) renvoie true pour la forme transformée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

paused

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.

Langage dominant
Java
Étoiles
497
Forks
183
Merge moyen
4 h 39 min
PR mergées (30 j)
3

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de processing/processing4

Toutes les issues de processing/processing4

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.