3개의 서로 다른 가치 포인트가 주어지며 작업은 포인트가 동일선상에 있는지 여부를 확인하는 것입니다.
점이 같은 선에 있으면 동일 선상에 있고 다른 선에 있으면 동일 선상에 있지 않습니다. 다음은 동일선상 및 비공선점의 그림입니다.
입력
x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5
출력
no points are not collinear
입력
x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5
출력
points are collinear
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
(x1, y1), (x2, y2), (x3, y3)로 포인트를 입력
-
삼각형의 넓이 공식을 적용하십시오 x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)
-
다음과 같은 조건을 확인하십시오 -
-
삼각형의 면적이 0인 경우 인쇄 포인트가 동일선상에 있는 것보다
-
삼각형의 면적이 0이 아닌 경우 인쇄 포인트가 동일선상에 있지 않은 경우
-
-
최종 결과 인쇄
알고리즘
Start Step 1→ declare function to check if points are collinear or not void check_collinear(int x1, int y1, int x2, int y2, int x3, int y3) declare int a = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2) IF (a == 0) Print "yes points are collinear" End Else Print "no points are not collinear" Step 2→ In main() Declare int x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 Call check_collinear(x1, y1, x2, y2, x3, y3) Stop
예
#include <bits/stdc++.h> #include <math.h> #include <stdlib.h> using namespace std; //check if points are collinear or not void check_collinear(int x1, int y1, int x2, int y2, int x3, int y3){ int a = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2); if (a == 0) cout << "yes points are collinear"; else cout << "no points are not collinear"; } int main(){ int x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5; check_collinear(x1, y1, x2, y2, x3, y3); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
no points are not collinear