processing / processing/processing4
Add `beginClip()` and `endClip()` masking functions
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 494
- Forks
- 183
- Merge moyen
- 4 h 39 min
- PR mergées (30 j)
- 3
Description
Relevant sub-area for this feature?
Core/Environment/Rendering
Feature details
Feature description
Add beginClip() and endClip() to define clipping masks using drawing commands. Shapes drawn between these calls become the mask. An optional invert flag enables inverse masking.
Benefits
- More intuitive and less verbose than
mask() - Matches p5.js API and reduces cognitive load when switching from one to the other
Challenges
- Not sure
Additional context
See https://p5js.org/reference/p5/beginClip/
Example code
This mask() code...
// Create pattern graphics
pattern = createGraphics(width, height);
pattern.beginDraw();
pattern.background(255);
pattern.stroke(0);
pattern.strokeWeight(2);
for (int x = 0; x < width; x += 10) {
pattern.line(x, 0, x, height);
}
pattern.endDraw();
// Create mask graphics (white circle on black)
maskImg = createGraphics(width, height);
maskImg.beginDraw();
maskImg.background(0);
maskImg.noStroke();
maskImg.fill(255);
maskImg.ellipse(width/2, height/2, 200, 200);
maskImg.endDraw();
// Apply mask to pattern
pattern.mask(maskImg);
... becomes this using beginClip()/endClip():
// Define clipping region
beginClip();
ellipse(width/2, height/2, 200, 200);
endClip();
// Draw pattern inside the clip
stroke(0);
strokeWeight(2);
for (int x = 0; x < width; x += 10) {
line(x, 0, x, height);
}
Would you like to help implement this feature?
No, I’m just suggesting the feature
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez dans la zone Core/Environment/Rendering en lisant le comportement existant de mask() et la référence liée de p5.js beginClip(). Définissez le fonctionnement attendu de beginClip(), endClip() et du flag invert facultatif, puis vérifiez que les commandes de dessin entre les appels produisent le comportement de découpage normal et inversé attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- computer-graphics
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100