processing / processing/processing4

Double precision support for all fundamental geometry classes (PShape, PVector ...)

Offen
#893 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Relevant sub-area for this feature?

Core/Environment/Rendering

Feature description

When using PShape and PVector calculations alongside with native Path2D.Double objects (using various conversions) there are obvious, randomly appeared but systematic rendering artifacts - rounding errors (same result when using same parameter values) upon all kinds of calculations, transformations etc. With all that CPU processing power around, I guess there is no practical reason of not adding Double coordinate support for all classes without braking compatibility with existing projects.

Benefits

Use PShape and PVector classes alongside with other classes that support natively double precision coordinates like Path2D without precision errors. Future proof Processing projects.

Possible challenges

I do not have a clue what might be the impact in codebase. I guess there should be a compatibility code care for all existing projects and default will be Float.

Additional context

An Article about the precision artifacts: https://blog.generativedarkroom.com/why-i-switched-from-processing-to-openrndr-b50c931d21ae

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung der Klassen PShape und PVector und vergleiche ihre Koordinaten- und Berechnungspfade mit nativen Path2D.Double-Objekten. Bestimme den Umfang der Unterstützung doppelter Genauigkeit in den grundlegenden Geometrieklassen und wie die Kompatibilität bestehender float-basierter Projekte erhalten bleibt; als abgeschlossen gilt die Aufgabe, wenn ein abgestimmtes Design und ein konsistentes Präzisionsverhalten ohne die gemeldeten Rendering-Artefakte vorliegen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
computer-graphics
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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