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

vg,vg/draw: primitives for an Ellipse

Offen
#641 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
38/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
go

Rechercherichtung

Beginne in vg/draw und untersuche vg.Path sowie die vorhandenen Primitive ArcComp und CurveComp. Verwende das verknüpfte Maisonobe-Paper, um die vorgeschlagene EArc-Geometrie zu verstehen; abgeschlossen ist die Arbeit, wenn elliptische Bögen das angegebene Verhalten für Fokuspunkt, Winkelrichtung und nil-Pfad unterstützen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

unless I am mistaken, gonum/plot doesn't expose primitives to draw ellipses nor arcs of ellipses.
vg.Path exposes a vg.ArcComp but that's only to draw a circular arc.

one can of course draw an ellipse with a combination of vg.CurveComp (quad or cubic ones), according to that paper:
Drawing an elliptical arc using polylines, quadratic or cubic Bezier curves", L. Maisonobe

An electronic version may be found at:

I've already provided such an implementation for Gio.
I could probably provide one for gonum/plot as well.

I'd propose to put it into vg/draw:

package draw

// EArc adds an elliptical arc to the path. The implied ellipse is defined
// by its focus points f1 and f2.
// The arc starts in the current point and ends angle radians along the ellipse boundary.
// The sign of angle determines the direction; positive being counter-clockwise,
// negative clockwise.
// If path is nil, a new path is created.
func EArc(path *vg.Path, f1, f2 vg.Point, angle float64) { ... }

WDYT?

Vorherrschende Sprache
Go
Sterne
3k
Forks
202
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

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 gonum/plot

Alle Issues in gonum/plot

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

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