정의 및 개념

벡터 는 2개의 좌표를 정의했습니다.


벡터에 숫자 k를 곱하면 길이가 k만큼 변경됩니다. \(k < 0\) 벡터가 확장됩니다.

벡터의 길이는 공식 \(\sqrt {x^2 + y^2} \)

정규화된 벡터 - 벡터를 길이로 나눈 단위 길이의 벡터입니다.

벡터의 합은 첫 번째 벡터의 끝에서 두 번째 벡터를 구성하고 그 벡터를 결과 점에 넣어 구합니다.< /p>

If x1, y1, x 2, y2 - 각각 첫 번째와 두 번째 벡터의 좌표, 그 합은 좌표 \((x_1 + x_2) \)\((y_1 + y_2) \).

벡터 차이 - 두 번째 벡터가 반전된 합계입니다(-1을 곱함).

벡터의 내적 - 숫자, 한 벡터를 다른 벡터에 투영하고 길이를 곱한 것입니다. 일반적인 유클리드 공간의 가장 단순한 경우에는 "기하학적" 공간이 때때로 사용됩니다. 0이 아닌 벡터 a 및 b 의 스칼라 곱을 이러한 벡터의 길이와 이들 사이 각도의 코사인 의 곱으로 정의:  
\(a \cdot b = |a| \cdot |b| \cdot cos \alpha\).

벡터에 의한 내적의 경우 다음 공식이 적용됩니다.
\(a \cdot b = x_1 \cdot x_2 + y_1 \cdot y_2\)
여기서 x1, y1, x2, y2 - 각각 첫 번째 및 두 번째 벡터의 좌표를 통해 두 번째 벡터가 첫 번째 벡터와 동일한 반평면에 있는지 여부를 확인할 수 있습니다.< /p>

벡터의 외적 - 두 벡터에 수직인 3차원 공간의 벡터로 방향 영역과 길이가 같습니다. 이러한 벡터에 구축된 평행사변형. 벡터 길이와 벡터 사이 각도의 사인의 곱과 이 사인의 부호는 피연산자의 순서에 따라 달라집니다:   alpha\) 

좌표를 사용하여 계산하는 경우:
\(a\ x\ b = x_1 \cdot y_2 + x_2 \cdot y_1\),
여기서 x1, y1, x2, y2 - 각각 첫 번째 및 두 번째 벡터의 좌표를 사용하면 첫 번째 벡터가 있는 선의 어느 쪽, 두 번째 벡터가 있는지 확인할 수 있습니다. . 또한 삼각형과 평행사변형의 지향 영역을 찾을 수 있습니다.

벡터의 회전 은 Lobachevsky 기하학의 비밀 숙련자의 흑마술을 사용하여 수행됩니다.
벡터를 시계 반대 방향으로 \(\alpha\)만큼 회전하려면(\(\alpha <= 2 \cdot \ pi\ ), 라디안 단위의 각도에 익숙해지려면) 벡터에 이 행렬을 곱해야 합니다.
\(\begin{bmatrix} \cos \alpha & -sin \alpha \\ \sin \alpha & cos \alpha \end{bmatrix}\)< /p>

벡터에 행렬을 곱한다는 것은 무엇을 의미합니까? 벡터의 좌표가 xy라고 가정하면 이 벡터와 행렬의 곱은 좌표가 x'인 벡터와 같습니다. ; y':
\(x' = x \cdot cos \alpha - y \cdot sin \alpha \\ y' = x \cdot sin \alpha + y \cdot cos\alpha\)

그래서 우리는 정확히 같은 길이의 새로운 벡터를 얻었지만 이미 시계 반대 방향으로 각도 A만큼 회전했습니다.

선은 5가지 방법으로 정의할 수 있습니다.
1) 등식\( y = kx + b\); 학교에서 가르치는 최초의 직선 방정식은 손으로 만들고 계산하기에는 편리하지만 프로그램에서 사용하는 것은 매우 불편합니다.
2) 2포인트로 - 실제로 매우 편리하지만 적용 범위가 다소 좁습니다.
3) 직선과 점의 법선 벡터 - 직선에 대한 법선 벡터는 직선에 수직인 벡터입니다. 자세한 내용은 아래에서 확인하세요.
4) 직선과 점의 지시 벡터를 따라-지시 벡터는 직선에 있고 법선 벡터에 수직인 벡터입니다(음, 논리적).
5) 직선의 방정식 \(ax + by + c = 0\); 직선의 고전 방정식, 대부분의 경우 가장 보편적입니다. 이제 그에 대해 알아보십시오.
<사업부>

그런 직선의 법선 벡터 좌표: \((a; b)\) 또는 \( (-a; -b)\).

이러한 선의 방향 벡터 좌표: \((-b; a)\) 또는 \ ((b; -a)\).

선이 평행인 경우:
\({a1 \over b1} = {a2 \over b2}\).

점에서 선까지의 거리(주의: 거리가 음수일 수 있으며 모두 선의 어느 쪽에 점이 있는지에 따라 다름):
\({(a \cdot x_1 + b \cdot y_1 + c) \over \sqrt{a^2 + b^2}}\),
여기서 x1, y1는 점의 좌표입니다.

법선 벡터와 점, 또는 방향 벡터와 점에서 선을 구성하는 것은 2점에서 선을 구성하는 것으로 귀결되므로 살펴보겠습니다(또한 가장 일반적으로 사용되는 ).< /p>

If x1, y1, x 2, y2 - 각각 첫 번째와 두 번째 점의 좌표, 그런 다음

\(a = y_1 - y_2\)

\(b = x_2 - x_1\)

\(c = x_1 \cdot y_2 - x_2 \cdot y_1\)

교차로

의 교차점

<코드>a1, b1, c1 - 첫 번째 줄의 계수,
a2, b2, c2 - 두 번째 줄의 계수
x, y - 교차점.

\(x = {-(c1 \cdot b2 - c2 \cdot b1) \over (a1 \cdot b2 - a2 \cdot b1)} \\ y = {-(a1 \ cdot c2 - a2 \cdot c1) \over (a1 \cdot b2 - a2 \cdot b1)} \)

우리는 이미 선의 교차점(평행하지 않음)을 확인하고 교차점을 찾는 방법을 알고 있습니다.

이제 세그먼트로 이를 수행하는 방법을 알아보겠습니다. 

먼저 간단하게 교차점을 확인하는 방법을 알아보겠습니다.

세그먼트 교차 한쪽 끝이 다른 쪽 끝과 반대쪽에 있는 경우(이는 외적으로 쉽게 확인됨).  이것이 작동하지 않는 유일한 경우 - 세그먼트는 하나의 직선에 있습니다. 이를 위해 소위 교차점을 확인해야 합니다. 경계 상자(세그먼트의 경계 상자) - XY에서 세그먼트 투영의 교차점을 확인합니다.

축.

이제 세그먼트에서 교차점을 확인하는 방법을 알았으니 교차점(또는 세그먼트)을 찾는 방법을 알아보겠습니다.
- 교차하지 않으면 그러한 점이 존재하지 않는다는 것이 분명합니다.
- 그렇지 않으면 이러한 세그먼트가 놓이는 직선을 구성합니다.

만약 그들이 평행하다면, 세그먼트는 같은 선상에 있고 우리는 세그먼트의 왼쪽 경계의 최대값에서 오른쪽 경계의 최소값까지의 교차 세그먼트를 찾아야 합니다. 점은 다른 점보다 작습니다. 왼쪽에 있는 경우 X-좌표 - 더 낮은 경우).

선이 평행하지 않으면 교차점을 찾아 반환합니다.