首页 > 代码库 > Android曲线拟合

Android曲线拟合

最近在研究一个问题,有一系列点,需要拟合成一条漂亮的曲线,绘制出来,研究结果如下,感谢网友!

// 获取一系列点的曲线路径
    private Path getPointCurvePath(List<Point> points)
	{
		Point startp;
		Point endp;
		Point p3 = new Point();
		Point p4 = new Point();
		Path path = new Path();
		
		if (null == points || 0 == points.size())
		{
			return path;
		}
		
		startp = points.get(0);
		path.moveTo(startp.x, startp.y);
		int xCenter, yCenter;
		
		for (int i = 0; i < points.size() - 1; i++)
		{			
			startp = points.get(i);
			endp = points.get(i+1);			
			xCenter = (int)(startp.getX() + endp.getX()) / 2;
			yCenter = (int)(startp.getY() + endp.getY()) / 2;
			p3.y = startp.y;
			p3.x = xCenter;
			p4.y = endp.y;
			p4.x = xCenter;
			// 确定曲线的路径		
			path.cubicTo(p3.x, p3.y, p4.x, p4.y, endp.x, endp.y);
			
			// path.quadTo(xCenter, yCenter,  endp.x, endp.y);
			
			
		}		
		
		return path;
	}

效果如下:


技术分享

Android曲线拟合