Enable Glyphs to have an outline
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- go
调研方向
从 vg/draw/canvas.go 开始,阅读 GlyphStyle 和字形的 DrawGlyph 实现,然后查看 pull request 298,了解现有的提议方案。当字形可以使用可选轮廓进行渲染,并且在未配置轮廓时保持现有行为,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Just in case anyone is wanting to ask why we would do this, 1. other libraries do it, and 2. In my case I need to make my application create a graph that looks like the current ones (with an outline). Consider for example the javascript library, chart.js
A patch for this could be done without altering the API. Here is my current solution:
--- a/vg/draw/canvas.go
+++ b/vg/draw/canvas.go
@@ -55,6 +55,12 @@ type GlyphStyle struct {
// Radius specifies the size of the glyph's radius.
Radius vg.Length
+ // Width of the line around the glyph. If set, LineColour is used to outline the glyph
+ Width vg.Length
+
+ // Outline glyph with this color if Width is set.
+ LineColor color.Color
+
// Shape draws the shape of the glyph.
Shape GlyphDrawer
}
@@ -106,6 +112,11 @@ func (CircleGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point) {
p.Arc(pt, sty.Radius, 0, 2*math.Pi)
p.Close()
c.Fill(p)
+
+ if sty.Width > 0 {
+ c.SetLineStyle(LineStyle{Color: sty.LineColor, Width: sty.Width})
+ c.Stroke(p)
+ }
}
// RingGlyph is a glyph that draws the outline of a circle.
This simply add's two fields, if you want to set an outline, you can set the new Width field, and the new LineColor field.
- 主要语言
- Go
- 星标
- 3k
- 派生
- 202
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
gonum/plot 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 35/100
-
难度 2/5 1-3 小时 新手友好度 52/100
-
难度 5/5 一周以上 新手友好度 32/100
-
plot/plotter: NewHist(binPoints) panic when a small negative number is used可能已有人在做 @SashaMIT 于 14 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
-
难度 3/5 1-2 天 新手友好度 35/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
blinklabs-io/dingo#5636 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
JetBrains/youtrack-cli#130 ·
维护者通常 1 天内回复
-
kind/bug needs-triage sig/release
难度 2/5 1-3 小时 新手友好度 73/100
kubernetes/kubernetes#143392 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 61/100
维护者通常 1 天内回复
-
stage-fail
难度 1/5 1 小时以内 新手友好度 72/100
siyuan-note/bazaar#2405 ·
维护者通常 1 天内回复