你好我想实现一个简单的app,就是月亮图片围绕地球图片旋转。
我是新手主要想用canvas画出月亮和地球图片,然后月亮按照一定的速度绕地球旋转。地球按照一定速度自转。
我不知道月亮绕地球旋转咋实现,以及地球自转咋实现啊,请高手指点一下啊,有代码参考最好了!

Canvas 旋转, 地球月亮
------解决方案--------------------
你用canvas,那就应该是2D绘图了,2D的话,地球自转使用matrix就行,我给你画布旋转的方法吧,比较简单:
Matrix m = new Matrix();
m.postTranslate(x,y);//移动到地球中心点
m.postRotate(degree);//旋转
c.drawBitmap(bmp,m,paint);//画地球
月球公转的话,使用下面函数来计算圆形上某点坐标:
protected float xn(float pointX,float pointY,float x,float y,double angle){
double angleHude = Math.toRadians(angle);//角度转弧度
double cosAngle = Math.cos(angleHude);
double sinAngle = Math.sin(angleHude);
return (float)((pointX-x)*cosAngle-(pointY-y)*sinAngle+x);
}
protected float yn(float pointX,float pointY,float x,float y,double angle){
double angleHude = Math.toRadians(angle);//角度转弧度
double cosAngle = Math.cos(angleHude);
double sinAngle = Math.sin(angleHude);
return (float)((pointX-x)*sinAngle+(pointY-y)*cosAngle+y);
}
------解决方案--------------------
那个是我没考虑周全
先给你地球自转的吧,公转的我看看下班之前能不能给你写出来:
package org.yye.android.commons.rotate;
import android.app.Activity;
import android.content.Context;
import android.graphics.*;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.ImageView;
import org.yye.android.commons.R;
import java.util.HashMap;
import java.util.Map;
/**
* User: ye.yang
* Date: 13-5-10
* Time: 上午10:57
*/
public class RotateActivity extends Activity {
private float degree = 0f;
private Canvas c;
private Paint p;
private Handler handler = new Handler();
private ImageView iv;
private int w,h;
private Bitmap earthBmp;