亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 AddArc 使用 RasterX 包創建一個“餅圖元素”

使用 AddArc 使用 RasterX 包創建一個“餅圖元素”

Go
ITMISS 2022-12-19 14:09:06
我正在為 Fyne 開發圖表小部件,我使用rasterx包 ( https://github.com/srwiley/rasterx ) 并且效果很好。但我花了幾個小時嘗試制作圓弧(創建餅圖元素)但沒有成功。讓我們以此為起點: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獲取函數來理解原理并執行: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,請不要告訴我使用另一個包。
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超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)

http://img1.sycdn.imooc.com//63a00020000126a803070305.jpg

查看完整回答
反對 回復 2022-12-19
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

這只是一個猜測,但不AddArc想要弧度角而不是度數嗎?



查看完整回答
反對 回復 2022-12-19
  • 2 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號