processing / processing/processing4
Double precision support for all fundamental geometry classes (PShape, PVector ...)
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 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
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
Commencer par examiner les classes PShape et PVector et comparer leurs chemins de coordonnées et de calcul avec des objets Path2D.Double natifs. Déterminer l’étendue de la prise en charge de la double précision dans les classes fondamentales de géométrie et la manière dont la compatibilité avec les projets existants basés sur float serait conservée ; la tâche sera considérée comme terminée lorsqu’une conception approuvée et un comportement cohérent en matière de précision seront établis, sans les artefacts de rendu signalés.
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é
- À clarifier
- Accessibilité débutants
- 25/100