diff --git a/Runtime/Internal/CoordinateChart.cs b/Runtime/Internal/CoordinateChart.cs
index cd65beea..f93b65c3 100644
--- a/Runtime/Internal/CoordinateChart.cs
+++ b/Runtime/Internal/CoordinateChart.cs
@@ -1083,11 +1083,12 @@ namespace XCharts
{
if (xAxis.show && xAxis.axisLine.show)
{
+ var offset = AxisHelper.GetAxisLineSymbolOffset(xAxis);
var lineY = m_CoordinateY + (xAxis.axisLine.onZero ? m_YAxises[xAxisIndex].runtimeZeroYOffset : 0);
if (xAxis.IsValue() && xAxisIndex > 0) lineY += m_CoordinateHeight;
var left = new Vector3(m_CoordinateX - xAxis.axisLine.width, lineY);
- var top = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width, lineY);
- ChartDrawer.DrawLine(vh, left, top, xAxis.axisLine.width, m_ThemeInfo.axisLineColor);
+ var right = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width + offset, lineY);
+ ChartDrawer.DrawLine(vh, left, right, xAxis.axisLine.width, m_ThemeInfo.axisLineColor);
}
}
@@ -1095,11 +1096,12 @@ namespace XCharts
{
if (yAxis.show && yAxis.axisLine.show)
{
+ var offset = AxisHelper.GetAxisLineSymbolOffset(yAxis);
var lineX = m_CoordinateX + (yAxis.axisLine.onZero ? m_XAxises[yAxisIndex].runtimeZeroXOffset : 0);
if (yAxis.IsValue() && yAxisIndex > 0) lineX += m_CoordinateWidth;
- var top = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight + yAxis.axisLine.width);
- ChartDrawer.DrawLine(vh, new Vector3(lineX, m_CoordinateY - yAxis.axisLine.width),
- top, yAxis.axisLine.width, m_ThemeInfo.axisLineColor);
+ var bottom = new Vector3(lineX, m_CoordinateY - yAxis.axisLine.width);
+ var top = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight + yAxis.axisLine.width + offset);
+ ChartDrawer.DrawLine(vh, bottom, top, yAxis.axisLine.width, m_ThemeInfo.axisLineColor);
}
}
diff --git a/Runtime/Internal/Helper/AxisHelper.cs b/Runtime/Internal/Helper/AxisHelper.cs
index 6ee9e445..75d23db1 100644
--- a/Runtime/Internal/Helper/AxisHelper.cs
+++ b/Runtime/Internal/Helper/AxisHelper.cs
@@ -16,6 +16,20 @@ namespace XCharts
return axis.axisTick.width != 0 ? axis.axisTick.width : axis.axisLine.width;
}
+ ///
+ /// 包含箭头偏移的轴线长度
+ ///
+ ///
+ ///
+ public static float GetAxisLineSymbolOffset(Axis axis)
+ {
+ if (axis.axisLine.show && axis.axisLine.symbol && axis.axisLine.symbolOffset > 0)
+ {
+ return axis.axisLine.symbolOffset;
+ }
+ return 0;
+ }
+
///
/// 获得分割段数
///