最近、TrollTech の Qt チュートリアルから Qt を学んでいますが、このページの弾丸の位置を計算するソース コードについて混乱しています。
QRect CannonField::shotRect() const
{
const double gravity = 4;
double time = timerCount / 20.0;
double velocity = shootForce;
double radians = shootAngle * 3.14159265 / 180;
double velx = velocity * cos(radians);
double vely = velocity * sin(radians);
double x0 = (barrelRect.right() + 5) * cos(radians);
double y0 = (barrelRect.right() + 5) * sin(radians);
double x = x0 + velx * time;
double y = y0 + vely * time - 0.5 * gravity * time * time;
QRect result(0, 0, 6, 6);
result.moveCenter(QPoint(qRound(x), height() - 1 - qRound(y)));
return result;
}
最後から 3 行目:
result.moveCenter(QPoint(qRound(x), height() - 1 - qRound(y)));
- 1
それはナンセンスだと思いますね。