PKU 2624 4th Point

  • 幾何
  • 接する点を固定してベクトルの足し算と引き算
typedef complex<double> P;

void go(const P& a, const P& b, const P& c, const P& d) {
	if (abs(a - c) > EPS) {
		return;
	}

	assert(abs(a - d) > EPS);
	assert(abs(b - c) > EPS);
	assert(abs(b - d) > EPS);

	P p = b - a + d;
	printf("%.03f %.03f\n", p.real(), p.imag());
}

int main() {
	for (double c[8]; cin >> c[0] >> c[1] >> c[2] >> c[3] >> c[4] >> c[5] >> c[6] >> c[7]; ) {
		P p[4];
		for (int i = 0; i < 4; ++i) {
			p[i] = P(c[i * 2], c[i * 2 + 1]);
		}

		for (int i = 0; i < 2; ++i) {
			for (int j = 0; j < 2; ++j) {
				go(p[i], p[1 - i], p[2 + j], p[3 - j]);
			}
		}
	}
}