Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

PShape does not provide getters for rectMode / ellipseMode

Offen
#1,359 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
48/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java

Rechercherichtung

Beginne in der Klasse PShape und untersuche die geschützten Felder ellipseMode und rectMode neben ihrer bestehenden öffentlichen API. Füge eine Möglichkeit hinzu, mit der Aufrufer beide Modi abfragen können, und überprüfe anschließend, dass der Code zur Konvertierung primitiver Formen die Bedeutungen der Parameter für jeden Modus unterscheiden kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement
Most relevant area for this enhancement?

Core/Environment/Rendering

Feature to enhance

The PShape class

Enhancement details
Enhancement description

I was half way developing some classes to convert between PShapes and OPENRNDR Shapes but got stuck.

When dealing with PShape.PRIMITIVE types, PShape.getKind() returns what kind of shape is it (rect, ellipse, ...) and the PShape.getParams() returns an array of float values (x, y, width...) One needs to know the kind to know what the float values mean. But it's not sufficient, because if one called ellipseMode before, the values may mean center x and y, or corner x and y, either width or radius.

I didn't find a way to query ellipseMode or rectMode.

Benefits

Adding a way to query this information would help cross framework use of the PShape data structures.

Challenges

I think adding two getters to PShape shouldn't have any negative impact, but I'm not very familiar with the code base to be sure.

Additional context

Here a wip function where I try to convert an ELLIPSE PShape to an OPENRNDR Shape. This is incomplete, because the meaning of params 0, 1, 2 and 3 depend on the ellipseMode used, and there's no way to figure this out (I think).

        PShape.PRIMITIVE -> {
            listOf( // 101
                when (kind) {
                    PShape.RECT -> Rectangle( // 30
                        params[0] * 1.0, params[1] * 1.0,
                        params[2] * 1.0, params[3] * 1.0
                    ).contour

                    PShape.ELLIPSE -> Ellipse( // 31
                        params[0] * 1.0, params[1] * 1.0,
                        params[2] * 0.5, params[3] * 0.5
                    ).contour

                    PShape.LINE -> LineSegment(
                        params[0] * 1.0, params[1] * 1.0,
                        params[2] * 1.0, params[3] * 1.0
                    ).contour

                    // ARC, TRIANGLE, QUAD, SPHERE, BOX
                    else -> error("unsupported primitive kind: $kind")
                }
            )

PShape holds ellipseMode and rectMode variables, but they are protected and without getters.

Would you like to help implement this enhancement?

I’m not sure yet

Vorherrschende Sprache
Java
Sterne
497
Forks
183
Ø Merge
4 Std. 39 Min.
Gemergte PRs (30 T.)
3

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus processing/processing4

Alle Issues in processing/processing4

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.