AChartEngine应用之LineChart(模拟三角函数sin,cos)
用AChartEngine模拟sin,cos三角函数,这是高中的时候画过的函数图,现在通过代码来画就是不一样,我现在是测试了sin,cos其他的不知道AChartEngine能不能画。画这些函数的时候最好要弄多一些点,设置每个点的跨度不宜太大了,因为这些三角函数图还是由一系列的点组成,点太少可能导致不圆滑,构建LineChart图的步骤主要分为以下三步,还需要在项目中引入AChartEngine依赖jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />
1. 设置XYMultipleSeriesRenderer
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); renderer.setAxisTitleTextSize(16); renderer.setChartTitleTextSize(20); renderer.setLabelsTextSize(15); renderer.setLegendTextSize(15); renderer.setPointSize(5f); renderer.setMargins(new int[] { 20, 30, 15, 20 });// 上,左,下,右 renderer.setXLabelsAlign(Align.RIGHT); renderer.setXLabels(0);// 设置X轴显示的刻度标签的个数 renderer.setZoomEnabled(false); renderer.setPanEnabled(false, false);// 不允许左右拖动,不允许上下拖动. |
2. 构建数据源CategorySeries
int step = 2;// 设置每个点的跨度,不宜太大了,因为这些三角函数图还是由一 系列的点组成, 点太少可能导致不圆滑 int count = 360 / step + 1;// 需要产生的点数 List<double[]> x = new ArrayList<double[]>();// X轴数据集 List<double[]> y = new ArrayList<double[]>();// Y轴数据集 x.add(new double[count]); x.add(new double[count]); double[] sinValues = new double[count]; double[] cosValues = new double[count]; y.add(sinValues);// 添加sin y.add(cosValues);// 添加cos for (int i = 0; i < count; i++) {// 产生点 int angle = i * step; x.get(0)[i] = angle; x.get(1)[i] = angle; double rAngle = Math.toRadians(angle); sinValues[i] = Math.sin(rAngle);// 获取相应的sin值 cosValues[i] = Math.cos(rAngle);// 获取相应的cos值
|