fix: fix label position of pie, #9
This commit is contained in:
parent
6041098d33
commit
4bec97baa5
1 changed files with 10 additions and 0 deletions
10
pie_chart.go
10
pie_chart.go
|
|
@ -96,6 +96,8 @@ func pieChartRender(opt pieChartOption, result *basicRenderResult) error {
|
|||
d.circle(radius, cx, cy)
|
||||
} else {
|
||||
currentValue := float64(0)
|
||||
prevEndX := 0
|
||||
prevEndY := 0
|
||||
for index, v := range values {
|
||||
|
||||
pieStyle := getPieStyle(theme, index)
|
||||
|
|
@ -124,6 +126,14 @@ func pieChartRender(opt pieChartOption, result *basicRenderResult) error {
|
|||
|
||||
endx := cx + int(labelRadius*math.Cos(angle))
|
||||
endy := cy + int(labelRadius*math.Sin(angle))
|
||||
// 计算是否有重叠,如果有则调整y坐标位置
|
||||
if index != 0 &&
|
||||
math.Abs(float64(endx-prevEndX)) < labelFontSize &&
|
||||
math.Abs(float64(endy-prevEndY)) < labelFontSize {
|
||||
endy -= (labelFontSize << 1)
|
||||
}
|
||||
prevEndX = endx
|
||||
prevEndY = endy
|
||||
d.moveTo(startx, starty)
|
||||
d.lineTo(endx, endy)
|
||||
offset := labelLineWidth
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue