我正在為 Fyne 開發(fā)圖表小部件,我使用rasterx包 ( https://github.com/srwiley/rasterx ) 并且效果很好。但我花了幾個小時嘗試制作圓弧(創(chuàng)建餅圖元素)但沒有成功。讓我們以此為起點:cx, cy := float64(w/2.0), float64(h/2.0)r := float64(w / 3.0)angle := 45.0rot := angle * math.Pi / 180.0我在https://github.com/srwiley/rasterx/blob/master/shapes.go#L99AddArc獲取函數(shù)來理解原理并執(zhí)行: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()結(jié)果是一個圓,而不是弧。由于這個rasterx包是基于 SVG 2.0 規(guī)范的,所以我可能漏掉了什么。你能幫我看看如何為給定角度創(chuàng)建“餅圖元素”嗎?非常感謝。PS:我不應(yīng)該使用其他包rasterx,請不要告訴我使用另一個包。
2 回答

桃花長相依
TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊
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)
- 2 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消