@@ -157,30 +157,28 @@ protected void drawCubic(Canvas c, LineDataSet dataSet, List<Entry> entries) {
157157 float curDx = 0f ;
158158 float curDy = 0f ;
159159
160+ Entry prevPrev = entries .get (minx );
161+ Entry prev = entries .get (minx );
160162 Entry cur = entries .get (minx );
161163 Entry next = entries .get (minx + 1 );
162- Entry prev = entries .get (minx );
163- Entry prevPrev = entries .get (minx );
164164
165165 // let the spline start
166166 cubicPath .moveTo (cur .getXIndex (), cur .getVal () * phaseY );
167167
168- prevDx = (next .getXIndex () - cur .getXIndex ()) * intensity ;
169- prevDy = (next .getVal () - cur .getVal ()) * intensity ;
168+ prevDx = (cur .getXIndex () - prev .getXIndex ()) * intensity ;
169+ prevDy = (cur .getVal () - prev .getVal ()) * intensity ;
170170
171- cur = entries .get (minx + 1 );
172- next = entries .get (minx + (entries .size () - minx > 2 ? 2 : 1 ));
173- curDx = (next .getXIndex () - prev .getXIndex ()) * intensity ;
174- curDy = (next .getVal () - prev .getVal ()) * intensity ;
171+ curDx = (next .getXIndex () - cur .getXIndex ()) * intensity ;
172+ curDy = (next .getVal () - cur .getVal ()) * intensity ;
175173
176174 // the first cubic
177175 cubicPath .cubicTo (prev .getXIndex () + prevDx , (prev .getVal () + prevDy ) * phaseY ,
178176 cur .getXIndex () - curDx ,
179177 (cur .getVal () - curDy ) * phaseY , cur .getXIndex (), cur .getVal () * phaseY );
180178
181- for (int j = minx + 2 , count = Math .min (size , entries .size () - 1 ); j < count ; j ++) {
179+ for (int j = minx + 1 , count = Math .min (size , entries .size () - 1 ); j < count ; j ++) {
182180
183- prevPrev = entries .get (j - 2 );
181+ prevPrev = entries .get (j == 1 ? 0 : j - 2 );
184182 prev = entries .get (j - 1 );
185183 cur = entries .get (j );
186184 next = entries .get (j + 1 );
0 commit comments