[WIP] Redesign plotting API
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- csharp, fsharp
- Ambito
- data-visualization
Direzione di ricerca
Il punto di ingresso proposto è il tipo AngouriMath.Interactive.Plot, che restituisce GenericChart per il plotting e i metodi slider. Inizia individuando l’implementazione sperimentale esistente del plotting e confrontando il suo comportamento 2D, 3D e slider con le firme e i valori predefiniti elencati qui. Il lavoro è completo quando la nuova API è implementata in modo coerente ed esiste una decisione documentata sulla questione irrisolta degli intervalli con valori costituiti da espressioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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) ]
- Lingua principale
- C#
- Stelle
- 831
- Fork
- 79
- Merge medio
- 2h 22m
- PR unite (30g)
- 507
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ASC-Community/AngouriMath
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
ASC-Community/AngouriMath#1807 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
ASC-Community/AngouriMath#1692 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
ASC-Community/AngouriMath#1690 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
ASC-Community/AngouriMath#1689 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ASC-Community/AngouriMath#1684 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ASC-Community/AngouriMath
Issue simili
-
[i18n] 安装实例完成后的成功提示未正确本地化Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
PCL-Community/PCL-CE#3658 ·
I maintainer di solito rispondono entro 1 giorno
-
Deploy & Patch-issues opprettes ikke: create-pnd-issues.yml har feilet hver uke siden 2025-09-08Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Altinn/altinn-auth#4359 ·
I maintainer di solito rispondono entro 1 giorno
-
アプリ: チャット 優先: 中 提案
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
yksr-melt/Meltype#243 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Workflows: a workflow stored with null conditions is skipped with an exception instead of runApertabug core
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
type/automation type/tech-debt
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno