使用 AddArc 使用 RasterX 包创建一个“饼图元素”

我正在为 Fyne 开发图表小部件,我使用rasterx包 ( https://github.com/srwiley/rasterx ) 并且效果很好。但我花了几个小时尝试制作圆弧(创建饼图元素)但没有成功。


让我们以此为起点:


cx, cy := float64(w/2.0), float64(h/2.0)

r := float64(w / 3.0)

angle := 45.0

rot := angle * math.Pi / 180.0

我在https://github.com/srwiley/rasterx/blob/master/shapes.go#L99AddArc获取函数来理解原理并执行:


points := []float64{r, r, angle, 1, 0, px, py}


stroker.Start(rasterx.ToFixedP(px, py))

rasterx.AddArc(points, cx, cy, px, py, stroker)

stroker.Stop(false)

stroker.Draw()

结果是一个圆,而不是弧。


由于这个rasterx包是基于 SVG 2.0 规范的,所以我可能漏掉了什么。你能帮我看看如何为给定角度创建“饼图元素”吗?


非常感谢。


PS:我不应该使用其他包rasterx,请不要告诉我使用另一个包。


ITMISS
浏览 142回答 2
2回答

桃花长相依

px, py inpoints需要与传递给AddArc. 这对我有用:        angle := 45.0        rot1 := angle * math.Pi / 180.0        rot2 := (angle - 90) * math.Pi / 180.0        p1x := cx + r*math.Cos(rot1)        p1y := cy + r*math.Sin(rot1)        p2x := cx + r*math.Cos(rot2)        p2y := cy + r*math.Sin(rot2)        points := []float64{r, r, angle, 1, 0, p2x, p2y}...        stroker.Start(rasterx.ToFixedP(p1x, p1y))        rasterx.AddArc(points, cx, cy, p1x, p1y, stroker)

紫衣仙女

这只是一个猜测,但不AddArc想要弧度角而不是度数吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go