From b3967a2725a1e9c92e07203bd34d5c6aa75f1d3f Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Tue, 19 May 2020 07:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=98=E7=BA=BF=E5=9B=BE?= =?UTF-8?q?=E7=AE=AD=E5=A4=B4=E7=BB=98=E5=88=B6=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Internal/CoordinateChart_DrawLine.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Runtime/Internal/CoordinateChart_DrawLine.cs b/Runtime/Internal/CoordinateChart_DrawLine.cs index f64de8e8..7dbfee1b 100644 --- a/Runtime/Internal/CoordinateChart_DrawLine.cs +++ b/Runtime/Internal/CoordinateChart_DrawLine.cs @@ -59,16 +59,24 @@ namespace XCharts if (!serie.show || !serie.lineArrow.show) continue; if (serie.dataPoints.Count < 2) return; Color lineColor = SerieHelper.GetLineColor(serie, m_ThemeInfo, n, false); - + Vector3 startPos, arrowPos; switch (serie.lineArrow.position) { case LineArrow.Position.End: var dataPoints = serie.GetUpSmoothList(serie.dataCount - 1); - if (dataPoints.Count < 2) dataPoints = serie.dataPoints; - var startPos = dataPoints[dataPoints.Count - 2]; - var arrowPos = dataPoints[dataPoints.Count - 1]; + if (dataPoints.Count < 3) + { + dataPoints = serie.dataPoints; + startPos = dataPoints[dataPoints.Count - 2]; + arrowPos = dataPoints[dataPoints.Count - 1]; + } + else + { + startPos = dataPoints[dataPoints.Count - 3]; + arrowPos = dataPoints[dataPoints.Count - 2]; + } ChartDrawer.DrawArrow(vh, startPos, arrowPos, serie.lineArrow.width, - serie.lineArrow.height, serie.lineArrow.offset, serie.lineArrow.dent, lineColor); + serie.lineArrow.height, serie.lineArrow.offset, serie.lineArrow.dent, lineColor); break; case LineArrow.Position.Start: dataPoints = serie.GetUpSmoothList(1);