[WIP] Redesign plotting API
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- csharp, fsharp
- Bereich
- data-visualization
Rechercherichtung
Der vorgeschlagene Einstiegspunkt ist der Typ AngouriMath.Interactive.Plot, der für das Plotten und Slider-Methoden GenericChart zurückgibt. Beginne damit, die bestehende experimentelle Plot-Implementierung zu finden und ihr 2D-, 3D- und Slider-Verhalten mit den hier aufgeführten Signaturen und Standardwerten zu vergleichen. Als erledigt gilt, dass die neu entworfene API konsistent implementiert ist und zur offenen Frage nach ausdruckswertigen Bereichen eine dokumentierte Entscheidung vorliegt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Plotting API
Since 1.4 preview 1 one now can plot functions in "experimental"/preview mode. Time to make it prettier!
Root types
Will be in class Plot:
module AngouriMath.Interactive
...
type AnyFunc = obj
type AnyVar = obj
...
type Plot =
... // here the static members come
2D
Signature
static member plottingFunction(func : AnyFunc,
[<Optional;DefaultParameterValue(null)>] ?var : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?range : double seq
) : GenericChart
Functions
| Function | Default range |
|---|---|
cartesianLine |
[-1.0..0.01..1.0] |
cartesianScatter2D |
[-1.0..0.01..1.0] |
polarLine |
[0.0..0.01..3.1415] |
polarScatter |
[0.0..0.01..3.1415] |
3D
Signature
static member plottingFunction(func : AnyFunc,
[<Optional;DefaultParameterValue(null)>] ?var1 : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?var2 : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?range1 : double seq,
[<Optional;DefaultParameterValue(null)>] ?range2 : double seq
) : GenericChart
If no var was specified, they're taken from the expression in the alphabet order, e. g. for y + x the variables will be x and y.
Functions
| Function | Default range 1 | Default range 2 |
|---|---|---|
cartesianSurface |
[-1.0..0.05..1.0] |
[-1.0..0.05..1.0] |
cartesianScatter3D |
[-1.0..0.05..1.0] |
[-1.0..0.05..1.0] |
sphericalSurface |
[0.0..0.05..3.1415] |
[0.0..0.05..3.1415] |
sphericalScatter |
[0.0..0.05..3.1415] |
[0.0..0.05..3.1415] |
cylindricalSurface |
[0.0..0.05..3.1415] |
[0.0..0.05..1.0] |
cylindricalScatter |
[0.0..0.05..3.1415] |
[0.0..0.05..1.0] |
Sliders
For 2D
static member withSlider2D(func : AnyFunc,
plottingFunc : (AnyFunc * AnyVar Option * double seq option) -> GenericChart,
[<Optional;DefaultParameterValue(null)>] ?var : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?range : double seq,
[<Optional;DefaultParameterValue(null)>] ?param : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?paramRange : double seq,
) : GenericChart
If no parameter and argument is specified, the variables taken from the expression are ordered in alphabet order, and the parameter is the first of them. For example, in x + a the paramater is a and the variable is x.
The default value for range now is [1.0..0.1..2.0], but no default value for range (it will be passed as-is).
For 3D
static member withSlider3D(func : AnyFunc,
plottingFunc : (AnyFunc * AnyVar Option * AnyVar Option * double seq Option * double seq Option) -> GenericChart,
[<Optional;DefaultParameterValue(null)>] ?var1 : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?var2 : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?range1 : double seq,
[<Optional;DefaultParameterValue(null)>] ?range2 : double seq,
[<Optional;DefaultParameterValue(null)>] ?param : AnyVar,
[<Optional;DefaultParameterValue(null)>] ?paramRange : double seq,
) : GenericChart
Likewise, the param variable is defined as the first one by alphabet by default.
Unresolved questions
Can we let input expressions? e. g. range = [ 0.0..0.1.. (2 * pi) ]
- Vorherrschende Sprache
- C#
- Sterne
- 831
- Forks
- 79
- Ø Merge
- 2 Std. 22 Min.
- Gemergte PRs (30 T.)
- 507
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ASC-Community/AngouriMath
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
ASC-Community/AngouriMath#1807 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
ASC-Community/AngouriMath#1692 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
ASC-Community/AngouriMath#1690 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
ASC-Community/AngouriMath#1689 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
ASC-Community/AngouriMath#1684 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in ASC-Community/AngouriMath
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
PCL-Community/PCL-CE#3658 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Deploy & Patch-issues opprettes ikke: create-pnd-issues.yml har feilet hver uke siden 2025-09-08Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Altinn/altinn-auth#4359 ·
Maintainer antworten meist innerhalb von 1 Tag
-
type/automation type/tech-debt
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
no-stack-trace
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
Maintainer antworten meist innerhalb von 1 Tag
-
S: Untriaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
project-wayfarer/wayfarer-14#1650 ·
Maintainer antworten meist innerhalb von 2 Tagen