#include #define VARNAME(x) #x #define show(x) cerr << #x << " = " << x << endl using namespace std; using ll = long long; using ld = long double; template ostream& operator<<(ostream& os, const vector& v) { os << "sz:" << v.size() << "\n["; for (const auto& p : v) { os << p << ","; } os << "]\n"; return os; } template ostream& operator<<(ostream& os, const pair& p) { os << "(" << p.first << "," << p.second << ")"; return os; } constexpr ll MOD = (ll)1e9 + 7LL; constexpr ld PI = static_cast(3.1415926535898); template constexpr T INF = numeric_limits::max() / 10; int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; for (int q = 0; q < N; q++) { int T; cin >> T; ld p, omega, v, gx, gy; cin >> p >> omega >> v >> gx >> gy; const ld l = hypot(omega, (ld)(1 + v)); const ld theta = atan(omega / (1 + v)); if (l >= 1) { const ld ox = gx * pow(l, 1 - T) - l * cos(T * theta); const ld oy = gy * pow(l, 1 - T) - l * sin(T * theta); const ld dx = cos((T - 1) * theta) * ox + sin((T - 1) * theta) * oy; const ld dy = -sin((T - 1) * theta) * ox + cos((T - 1) * theta) * oy; cout << fixed << setprecision(15) << dx << " " << dy << endl; for (int i = 0; i < T - 1; i++) { cout << 0 << " " << 0 << endl; } // ld posx = 1; // ld posy = 0; // for (int i = 1; i <= T; i++) { // ld posx_ = (1 + v) * posx - omega * posy + (i == 1 ? dx : 0); // posy = omega * posx + (1 + v) * posy + (i == 1 ? dy : 0); // posx = posx_; // cout << fixed << setprecision(15) << posx << " " << posy << endl; // } } else { const ld dx = gx - pow(l, T) * cos(T * theta); const ld dy = gy - pow(l, T) * sin(T * theta); for (int i = 0; i < T - 1; i++) { cout << 0 << " " << 0 << endl; } cout << dx << " " << dy << endl; // ld posx = 1; // ld posy = 0; // for (int i = 1; i <= T; i++) { // ld posx_ = (1 + v) * posx - omega * posy + (i == T ? dx : 0); // posy = omega * posx + (1 + v) * posy + (i == T ? dy : 0); // posx = posx_; // cout << fixed << setprecision(15) << posx << " " << posy << endl; // } } } return 0; }