Android编程绘制抛物线的方法示例
本文实例讲述了Android编程绘制抛物线的方法。分享给大家供大家参考,具体如下:
packagecom.yarin.android.Examples_05_04; importjava.util.HashSet; importjava.util.Iterator; importjava.util.LinkedList; importjava.util.List; importjava.util.Set; importandroid.content.Context; importandroid.graphics.Canvas; importandroid.graphics.Color; importandroid.graphics.Paint; importandroid.graphics.Rect; importandroid.util.Log; importandroid.view.KeyEvent; importandroid.view.MotionEvent; importandroid.view.View; importandroid.widget.Toast; publicclassGameViewextendsViewimplementsRunnable { /*声明Paint对象*/ privatePaintmPaint=null; doublemaxS=0; doublemaxH=0; doublemaxT=0; doubledx; doubledy; doubled; MovingObjectobj; booleanisDraw=false; publicGameView(Contextcontext) { super(context); /*构建对象*/ mPaint=newPaint(); //计算物体的最大高度、运动时间及最大射程 obj=newMovingObject(30,Math.PI/4,Color.RED); //运行时间 obj.T=2*obj.V0*Math.sin(obj.Sita)/9.8; //最大高度 obj.H=obj.V0*obj.V0*Math.sin(obj.Sita)*Math.sin(obj.Sita) /(2*9.8); //最大射程 obj.Smax=2*obj.V0*obj.V0*Math.sin(obj.Sita) *Math.cos(obj.Sita)/9.8; if(obj.Smax>maxS) { maxS=obj.Smax; } if(obj.H>maxH) { maxH=obj.H; } if(obj.T>maxT) { maxT=obj.T; } dx=(800-20)/maxS; dy=(480-20)/maxH; d=Math.min(dx,dy); //最大运行时间 Log.v("TAG",String.valueOf(maxT)); //最大高度 Log.v("TAG",String.valueOf(maxH)); //最大射程 Log.v("TAG",String.valueOf(maxS)); } publicvoidonDraw(Canvascanvas) { super.onDraw(canvas); /*设置画布的颜色*/ canvas.drawColor(Color.BLACK); /*设置取消锯齿效果*/ mPaint.setAntiAlias(true); canvas.drawColor(Color.GREEN); if(isDraw) { canvas.drawCircle((float)obj.X,(float)obj.Y,10,mPaint); } } //触笔事件 publicbooleanonTouchEvent(MotionEventevent) { switch(event.getAction()) { caseMotionEvent.ACTION_DOWN: newThread(this).start(); break; } returntrue; } publicvoidrun() { for(doublet=0;t///构造函数 /// ///V0物体的初速度 ///Sita物体初速度与水平方向的夹角 ///Color颜色 publicMovingObject(doubleV0,doubleSita,intred) { this.V0=V0; this.Sita=Sita; this.Color=red; } /// ///物体的初速度 /// publicdoubleV0; //////物体初速度与水平方向的夹角 /// publicdoubleSita; //////物体的横坐标 /// publicdoubleX; //////物体的纵坐标 /// publicdoubleY; //物体的颜色 publicintColor; //要绘制的物体的矩形 publicRectGetObjectRectangle() { returnnewRect((int)X-3,(int)Y-3,6,6); } //////最大射程 /// publicdoubleSmax; //////最大高度 /// publicdoubleH; //////运行时间 /// publicdoubleT; }
希望本文所述对大家Android程序设计有所帮助。