Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm tất cả tọa độ có thể của hình bình hành

Cho 3 tọa độ A, B, C. Tìm tất cả tọa độ D có thể để tạo hình bình hành diện tích khác 0. Chỉ có 3 trường hợp:

  • AB, AC là cạnh, BC là đường chéo
  • AB, BC là cạnh, AC là đường chéo
  • BC, AC là cạnh, AB là đường chéo

Do cạnh đối diện bằng nhau: AD = BC, AB = CD. Tính D:

Dx = Ax + Cx - Bx
Dy = Ay + Cy - By

Và 2 trường hợp tương tự.

Ví dụ mã nguồn

#include <iostream>
using namespace std;

void printPoints(int ax, int ay, int bx, int by, int cx, int cy) {
    cout << ax + bx - cx << ", " << ay + by - cy << endl;
    cout << ax + cx - bx << ", " << ay + cy - by << endl;
    cout << cx + bx - ax << ", " << cy + by - ay << endl;
}

int main() {
    int ax = 5, ay = 0;
    int bx = 1, by = 1;
    int cx = 2, cy = 5;
    printPoints(ax, ay, bx, by, cx, cy);
}

Kết quả đầu ra

4, -4
6, 4
-2, 1