gpt4 book ai didi

android - 如何使物体沿圆形路径移动?

转载 作者:行者123 更新时间:2023-11-28 10:15:15 25 4
gpt4 key购买 nike

考虑以(0,0)为圆心,分别以110和210为半径的两个圆...

即我将 CENTER 设为 (0,0),CIRCLE 1 半径设为 110,CIRCLE 2 半径设为 210。现在我需要在这两个圆圈之间移动一个对象 tball

这是我的代码--

public void run() {

while (isitok == true) {
// perform drawing
if (!holder.getSurface().isValid()) {
continue;
}
Canvas canvas = holder.lockCanvas();
canvas.drawARGB(255, 150, 150, 10);

// System.out.println("Canvas matrix -" + canvas.getm));
Paint p = new Paint();

// canvas.drawBitmap(tball, (x - tball.getWidth()) / 2,
// (y - tball.getHeight()) / 2, p);

p.setStyle(Paint.Style.STROKE);
p.setColor(Color.WHITE);
p.setColor(Color.parseColor("#0101DF"));

canvas.drawCircle(canvas.getWidth() / 2,
canvas.getHeight() / 2, 60, p);
canvas.drawCircle(canvas.getWidth() / 2,
canvas.getHeight() / 2, 110, p);

float x = (canvas.getWidth() / 2) - (tball.getWidth() / 2);
float y = (canvas.getHeight() / 2) - 110 + (110 - 60) / 2
- (tball.getHeight() / 2);

canvas.drawBitmap(tball, x, y, p);

float movingpts[];

holder.unlockCanvasAndPost(canvas);
}
}

最佳答案

圆坐标是

X = MX + R * cos( angle )
Y = MY + R * sin( angle )

其中 (MX,MY) 是圆的中心或中点,R 是半径。对于屏幕坐标,有时使用

Y = MY - R * sin( angle )

获得与圆方向数学约定一致的 Angular 。

关于android - 如何使物体沿圆形路径移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24242243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com