andriod面积图简单实现

面积图实现效果图:


面积图实现代码:

package mychart;

import java.util.List;

import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Path;
import android.view.View;

public class AreaView extends View{
	private int axisColor;		// 轴线颜色
	private float axisWith;     // 轴线宽度
	private int[] lineColor; 	// 数据线/点颜色
	private int[] lineWidth;	// 数据线/点宽度
	private int textColor;      // 文本颜色
	private int textSize;      	// 文本字体
	private int leftMargins;    // 左边距
	private int rightMargins;  	// 右边距
	private int bottomMargins;  // 下边距
	private int topMargins;    	// 上边距
	private float XScale;       // X的刻度长度
	private int xLength;        // X轴的长度
	private int YScale;         // Y的刻度长度
	private int yLength;        // Y轴的长度
	private List<int[]> data;   // y轴数据
	private String[] xData;		// x轴数据
	private boolean hasYAxis;  	// 显示Y轴轴线
	private boolean hasXAxis;  	// 显示X轴轴线
	private boolean hasYScale;  // 显示Y轴刻度
	private boolean hasXScale;  // 显示X轴刻度
	private int initX;			// 原点X
	private int initY;			// 原点Y
	private Paint axisPaint, textPaint, linePaint, areaPaint;
	private int[] colors = new int[]{Color.BLUE, Color.CYAN, Color.RED, Color.GREEN, Color.YELLOW};	
	


	//构造函数
	public AreaView(Context context) {
		super(context);
	}
	
	public AreaView(Context context, List<int[]> data, String[] xData) {
		super(context);
		setData(data, xData);
		setLineColor(colors);
	}
	
	public AreaView(Context context, List<int[]> data, int[] color, String[] xData) {
		super(context);
		setData(data, xData);
		setLineColor(color);
	}
	
	protected void onDraw(Canva
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Three.js可以通过ThreeLayers实现面积,具体步骤如下: 1. 创建Three.js场景和ThreeLayers层。 ```javascript var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer(); document.body.appendChild(renderer.domElement); var layers = new THREE.Layers(); layers.set(1); //设置层1为可见 var threeLayer = new THREE.Sprite(); threeLayer.layers = layers; scene.add(threeLayer); ``` 2. 创建面积的网格模型。 ```javascript var geometry = new THREE.Geometry(); geometry.vertices.push( new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 1, 0), new THREE.Vector3(1, 1, 0), new THREE.Vector3(1, 0, 0) ); geometry.faces.push(new THREE.Face3(0, 1, 2), new THREE.Face3(0, 2, 3)); var material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); var mesh = new THREE.Mesh(geometry, material); mesh.layers = layers; threeLayer.add(mesh); ``` 3. 设置Three.js场景相机和渲染器,并渲染场景。 ```javascript var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 ); camera.position.set(0, 0, 5); renderer.setSize(window.innerWidth, window.innerHeight); function render() { requestAnimationFrame(render); renderer.render(scene, camera); } render(); ``` 这样就可以在Three.js中实现面积了。其中,ThreeLayers的作用是将层与场景中的对象进行分离,从而实现对象的独立控制。在上面的代码中,我们将网格模型和ThreeLayer都设置为层1,然后通过设置ThreeLayer的位置和旋转来控制网格模型的位置和旋转。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值