Definições e conceitos

Um vetor é uma linha direcional que é definiu 2 coordenadas.


Multiplicar um vetor por um número k é alterar seu comprimento em k vezes. Quando \(k < 0\) o vetor se expandirá.

O comprimento de um vetor é calculado pela fórmula \(\sqrt {x^2 + y^2} \)

Vetor normalizado - um vetor de comprimento unitário, obtido dividindo um vetor por seu comprimento.

A soma dos vetores é obtida construindo um segundo vetor a partir do final do primeiro e colocando o vetor no ponto resultante.< /p>

Se x1, y1, x 2, y2 - coordenadas do primeiro e segundo vetores, respectivamente, então sua soma é um vetor com coordenadas \((x_1 + x_2) \)e \((y_1 + y_2) \).

Diferença de vetores - a soma onde o segundo vetor é invertido (multiplicado por -1).

Produto escalar de vetores - número, projeção de um vetor sobre outro multiplicado por seu comprimento. No caso mais simples do espaço euclidiano ordinário, às vezes é usado o espaço "geométrico". definição do produto escalar de vetores diferentes de zero a e b como o produto dos comprimentos desses vetores e o cosseno do ângulo entre eles:  
\(a \cdot b = |a| \cdot |b| \cdot cos \alpha\).

Para o produto escalar por um vetor, a seguinte fórmula é verdadeira:
\(a \cdot b = x_1 \cdot x_2 + y_1 \cdot y_2\)
onde x1, y1, x2, y2 - coordenadas do primeiro e segundo vetor, respectivamente, permite determinar se o segundo vetor está no mesmo semiplano que o primeiro.< /p>

Produto vetorial de vetores - um vetor no espaço tridimensional perpendicular a ambos os vetores, igual em comprimento à área orientada do paralelogramo construído sobre esses vetores. O produto dos comprimentos dos vetores pelo seno do ângulo entre eles e o sinal desse seno depende da ordem dos operandos:   alpha\) 

Se calculado usando coordenadas:
\(a\ x\ b = x_1 \cdot y_2 + x_2 \cdot y_1\),
onde x1, y1, x2, y2 - as coordenadas do primeiro e do segundo vetor, respectivamente, permitem determinar de que lado da linha está o primeiro vetor, o segundo vetor está localizado . Também permite encontrar a área orientada de triângulos e paralelogramos.

A rotação de um vetor é realizada usando a magia negra dos adeptos secretos da geometria de Lobachevsky.
Para girar um vetor \(\alpha\) no sentido anti-horário (\(\alpha <= 2 \cdot \ pi\ ), acostume-se com os ângulos em radianos), você precisa multiplicar o vetor por esta matriz:
\(\begin{bmatrix} \cos \alpha & -sin \alpha \\ \sin \alpha & cos \alpha \end{bmatrix}\)< /p>

O que significa multiplicar um vetor por uma matriz? Digamos que as coordenadas do nosso vetor sejam x e y, então o produto desse vetor e nossa matriz será igual ao vetor com as coordenadas x' ; e sim:
\(x' = x \cdot cos \alpha - y \cdot sin \alpha \\ y' = x \cdot sin \alpha + y \cdot cos\alpha\)

Assim, obtemos um novo vetor de exatamente o mesmo comprimento, mas já girado pelo ângulo A no sentido anti-horário.

A linha pode ser definida de 5 maneiras diferentes:
1) equação \( y = kx + b\); a primeira equação de uma reta ensinada na escola é conveniente para construir e calcular manualmente, mas seu uso em um programa é muito inconveniente;
2) por 2 pontos sobre ele - na verdade bastante conveniente, mas tem uma aplicação bastante restrita;
3) pelo vetor normal de uma reta e um ponto - o vetor normal a uma reta é um vetor perpendicular a ela, mais sobre isso abaixo;
4) ao longo do vetor diretor da linha reta e do ponto - o vetor diretor é um vetor situado na linha reta e perpendicular ao vetor normal (bem, lógico), sobre ele abaixo;
5) equação de uma reta \(ax + by + c = 0\); a clássica equação de uma reta, na maioria dos casos a mais universal. Agora sobre ele.

Coordenadas do vetor normal de tal linha: \((a; b)\) ou \( (-a; -b)\).

Coordenadas do vetor de direção de tal linha: \((-b; a)\) ou \ ((b; -a)\).

As linhas são paralelas se:
\({a1 \over b1} = {a2 \over b2}\).

Distância de um ponto a uma reta (cuidado: a distância pode ser negativa, tudo depende de qual lado da reta está o ponto):
\({(a \cdot x_1 + b \cdot y_1 + c) \over \sqrt{a^2 + b^2}}\),
onde x1, y1 são as coordenadas do ponto.

Construir uma linha a partir de um vetor normal e um ponto, ou um vetor de direção e um ponto, resume-se a construir uma linha a partir de 2 pontos, então vamos dar uma olhada nela (é também a mais usada ).< /p>

Se x1, y1, x 2, y2 - coordenadas do primeiro e segundo pontos, respectivamente, então

\(a = y_1 - y_2\)

\(b = x_2 - x_1\)

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

Intersecção

Ponto de interseção de linhas

a1, b1, c1 - coeficientes da primeira linha,
a2, b2, c2 - coeficientes da segunda linha,
x, y - ponto de interseção.

\(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)} \)

Já sabemos como verificar a interseção de linhas (elas não são paralelas) e encontrar seu ponto de interseção.

Agora vamos aprender como fazer isso com segmentos

Primeiro, vamos aprender como simplesmente verificar a interseção deles.

Segmentos se cruzam se as extremidades de um estiverem em lados opostos do outro e vice-versa (isso é facilmente verificado pelo produto vetorial).  O único caso em que isso não funcionará - os segmentos estão em uma linha reta. Para isso, você precisa verificar a interseção dos chamados. bounding box (caixa delimitadora do segmento) - verifique a interseção da projeção dos segmentos no X e no Y.

eixos.

Agora que sabemos como verificar segmentos de interseção, vamos aprender como encontrar o ponto (ou segmento) de sua interseção:
- se eles não se cruzam, é claro que tal ponto não existe;
- caso contrário, construiremos linhas retas nas quais esses segmentos se encontram.

Se forem paralelos, os segmentos estão na mesma linha e precisamos encontrar o segmento de interseção - do máximo das bordas esquerdas dos segmentos ao mínimo das bordas direitas (o ponto é menor que o outro ponto, se for à esquerda, em caso de igualdade X-coordenadas - se for inferior).

Se as linhas não forem paralelas, encontre o ponto de interseção e retorne-o.