Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 평행사변형의 가능한 모든 좌표 찾기

<시간/>

주어진 세 좌표에서 가능한 모든 좌표를 찾아 0이 아닌 영역의 평행 사변형을 만듭니다. A, B, C가 주어진 세 점이라고 가정하면 세 가지 가능한 상황만 있을 수 있습니다.

  • AB, AC는 측면, BC는 대각선
  • AB, BC는 측면, AC는 대각선
  • BC, AC는 측면, AB는 대각선

따라서 우리는 세 개의 좌표가 주어지면 평행 사변형을 생성할 수 있는 세 개의 좌표만 가능하다고 말할 수 있습니다. 반대쪽이 같으므로 AD =BC, AB =CD이므로 아래와 같이 누락된 점 D의 좌표를 계산합니다. -

(Dx-Ax,Dy-Ay) = (Cx-Bx,Cy-By)
Dx = Ax+Cx-Bx
Dy = Ay+Cy-By

#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 - ax <<endl;
}
int main() {
   int ax = 5, ay = 0; //coordinates of A
   int bx = 1, by = 1; //coordinates of B
   int cx = 2, cy = 5; //coordinates of C
   printPoints(ax, ay, bx, by, cx, cy);
}

출력

4, -4
6, 4
-2, 1