From 086e87f4b7c6c62397bb175b9a8b58c79ebd04e8 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Tue, 19 May 2020 08:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=8D=E8=BD=AC=E4=B8=8B?= =?UTF-8?q?=E7=9A=84=E7=AE=AD=E5=A4=B4=E8=A1=A8=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Internal/CoordinateChart.cs | 48 +++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/Runtime/Internal/CoordinateChart.cs b/Runtime/Internal/CoordinateChart.cs index f93b65c3..1cddd7d5 100644 --- a/Runtime/Internal/CoordinateChart.cs +++ b/Runtime/Internal/CoordinateChart.cs @@ -975,15 +975,26 @@ namespace XCharts totalWidth += scaleWidth; } } - if (yAxis.show && yAxis.axisLine.show) + if (yAxis.show && yAxis.axisLine.show && yAxis.axisLine.symbol) { 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); - if (yAxis.axisLine.symbol) + var inverse = yAxis.IsValue() && yAxis.inverse; + var offset = AxisHelper.GetAxisLineSymbolOffset(yAxis); + if (inverse) { + var startPos = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight); + var arrowPos = new Vector3(lineX, m_CoordinateY); var axisLine = yAxis.axisLine; - ChartDrawer.DrawArrow(vh, new Vector3(lineX, m_CoordinateX), top, axisLine.symbolWidth, axisLine.symbolHeight, + ChartDrawer.DrawArrow(vh, startPos, arrowPos, axisLine.symbolWidth, axisLine.symbolHeight, + axisLine.symbolOffset, axisLine.symbolDent, m_ThemeInfo.axisLineColor); + } + else + { + var startPos = new Vector3(lineX, m_CoordinateX); + var arrowPos = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight + yAxis.axisLine.width); + var axisLine = yAxis.axisLine; + ChartDrawer.DrawArrow(vh, startPos, arrowPos, axisLine.symbolWidth, axisLine.symbolHeight, axisLine.symbolOffset, axisLine.symbolDent, m_ThemeInfo.axisLineColor); } } @@ -1065,15 +1076,26 @@ namespace XCharts totalWidth += scaleWidth; } } - if (xAxis.show && xAxis.axisLine.show) + if (xAxis.show && xAxis.axisLine.show && xAxis.axisLine.symbol) { var lineY = m_CoordinateY + (xAxis.axisLine.onZero ? m_YAxises[xAxisIndex].runtimeZeroYOffset : 0); if (xAxis.IsValue() && xAxisIndex > 0) lineY += m_CoordinateHeight; - var top = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width, lineY); - if (xAxis.axisLine.symbol) + var inverse = xAxis.IsValue() && xAxis.inverse; + var offset = AxisHelper.GetAxisLineSymbolOffset(xAxis); + if (inverse) { + var startPos = new Vector3(m_CoordinateX + m_CoordinateWidth, lineY); + var arrowPos = new Vector3(m_CoordinateX, lineY); var axisLine = xAxis.axisLine; - ChartDrawer.DrawArrow(vh, new Vector3(m_CoordinateX, lineY), top, axisLine.symbolWidth, axisLine.symbolHeight, + ChartDrawer.DrawArrow(vh, startPos, arrowPos, axisLine.symbolWidth, axisLine.symbolHeight, + axisLine.symbolOffset, axisLine.symbolDent, m_ThemeInfo.axisLineColor); + } + else + { + var startPos = new Vector3(m_CoordinateX, lineY); + var arrowPos = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width, lineY); + var axisLine = xAxis.axisLine; + ChartDrawer.DrawArrow(vh, startPos, arrowPos, axisLine.symbolWidth, axisLine.symbolHeight, axisLine.symbolOffset, axisLine.symbolDent, m_ThemeInfo.axisLineColor); } } @@ -1083,11 +1105,12 @@ namespace XCharts { if (xAxis.show && xAxis.axisLine.show) { + var inverse = xAxis.IsValue() && xAxis.inverse; 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 right = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width + offset, lineY); + var left = new Vector3(m_CoordinateX - xAxis.axisLine.width - (inverse ? offset : 0), lineY); + var right = new Vector3(m_CoordinateX + m_CoordinateWidth + xAxis.axisLine.width + (!inverse ? offset : 0), lineY); ChartDrawer.DrawLine(vh, left, right, xAxis.axisLine.width, m_ThemeInfo.axisLineColor); } } @@ -1097,10 +1120,11 @@ namespace XCharts if (yAxis.show && yAxis.axisLine.show) { var offset = AxisHelper.GetAxisLineSymbolOffset(yAxis); + var inverse = yAxis.IsValue() && yAxis.inverse; var lineX = m_CoordinateX + (yAxis.axisLine.onZero ? m_XAxises[yAxisIndex].runtimeZeroXOffset : 0); if (yAxis.IsValue() && yAxisIndex > 0) lineX += m_CoordinateWidth; - var bottom = new Vector3(lineX, m_CoordinateY - yAxis.axisLine.width); - var top = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight + yAxis.axisLine.width + offset); + var bottom = new Vector3(lineX, m_CoordinateY - yAxis.axisLine.width - (inverse ? offset : 0)); + var top = new Vector3(lineX, m_CoordinateY + m_CoordinateHeight + yAxis.axisLine.width + (!inverse ? offset : 0)); ChartDrawer.DrawLine(vh, bottom, top, yAxis.axisLine.width, m_ThemeInfo.axisLineColor); } }