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程序设计有所帮助。