Definizioni e concetti

Un vettore è una linea direzionale che è 2 coordinate definite.


Moltiplicando un vettore per un numero k ne cambia la lunghezza di k volte. Quando \(k < 0\) il vettore si espanderà.

La lunghezza di un vettore è calcolata dalla formula \(\sqrt {x^2 + y^2} \)

Vettore normalizzato - un vettore di lunghezza unitaria, ottenuto dividendo un vettore per la sua lunghezza.

La somma dei vettori si ottiene costruendo un secondo vettore dall'estremità del primo e ponendo il vettore nel punto risultante.< /p>

Se x1, y1, x 2, y2 - coordinate rispettivamente del primo e del secondo vettore, quindi la loro somma è un vettore con coordinate \((x_1 + x_2) \)e \((y_1 + y_2) \).

Differenza vettore - la somma in cui il secondo vettore è invertito (moltiplicato per -1).

Prodotto scalare di vettori - numero, proiezione di un vettore su un altro moltiplicato per la sua lunghezza. Nel caso più semplice dello spazio euclideo ordinario, a volte viene utilizzato lo spazio "geometrico". definizione del prodotto scalare dei vettori diversi da zero a e b come prodotto delle lunghezze di questi vettori e del coseno dell'angolo tra di loro:  
\(a \cdot b = |a| \cdot |b| \cdot cos \alpha\).

Per il prodotto scalare per un vettore, vale la seguente formula:
\(a \cdot b = x_1 \cdot x_2 + y_1 \cdot y_2\)
dove x1, y1, x2, y2 - coordinate rispettivamente del primo e del secondo vettore, consentono di determinare se il secondo vettore si trova sullo stesso semipiano del primo.< /p>

Prodotto incrociato di vettori - un vettore nello spazio tridimensionale perpendicolare a entrambi i vettori, uguale in lunghezza all'area orientata del parallelogramma costruito su questi vettori. Il prodotto delle lunghezze dei vettori per il seno dell'angolo compreso tra loro e il segno di questo seno dipende dall'ordine degli operandi:   alpha\) 

Se calcolato utilizzando le coordinate:
\(a\ x\ b = x_1 \cdot y_2 + x_2 \cdot y_1\),
dove x1, y1, x2, y2 - le coordinate del primo e del secondo vettore, rispettivamente, consentono di determinare su quale lato della linea si trova il primo vettore, si trova il secondo vettore . Consente inoltre di trovare l'area orientata di triangoli e parallelogrammi.

La rotazione di un vettore viene eseguita utilizzando la magia nera degli adepti segreti della geometria Lobachevsky.
Per ruotare un vettore di \(\alpha\) in senso antiorario (\(\alpha <= 2 \cdot \ pi\ ), abituati agli angoli in radianti), devi moltiplicare il vettore per questa matrice:
\(\begin{bmatrix} \cos \alpha & -sin \alpha \\ \sin \alpha & cos \alpha \end{bmatrix}\)< /p>

Cosa significa moltiplicare un vettore per una matrice? Diciamo che le coordinate del nostro vettore sono x e y, quindi il prodotto di questo vettore e la nostra matrice sarà uguale al vettore con le coordinate x' ; e y':
\(x' = x \cdot cos \alpha - y \cdot sin \alpha \\ y' = x \cdot sin \alpha + y \cdot cos\alpha\)

Quindi otteniamo un nuovo vettore esattamente della stessa lunghezza, ma già ruotato dell'angolo A in senso antiorario.

La linea può essere definita in 5 modi diversi:
1) equazione \( y = kx + b\); la primissima equazione di una retta insegnata a scuola è comoda per costruire e calcolare manualmente, ma il suo utilizzo in un programma è molto scomodo;
2) di 2 punti sdraiati su di esso - in realtà abbastanza conveniente, ma ha un'applicazione piuttosto ristretta;
3) dal vettore normale di una linea retta e di un punto - il vettore normale a una linea retta è un vettore perpendicolare ad essa, ne parleremo più avanti;
4) lungo il vettore di direzione della linea retta e del punto - il vettore di direzione è un vettore che giace sulla linea retta e perpendicolare al vettore normale (beh, logico), su di esso sotto;
5) equazione di una retta \(ax + by + c = 0\); la classica equazione di una retta, nella maggior parte dei casi la più universale. Ora su di lui.

Coordinate del vettore normale di tale linea: \((a; b)\) o \( (-a; -b)\).

Coordinate del vettore di direzione di tale linea: \((-b; a)\) o \ ((b; -a)\).

Le rette sono parallele if:
\({a1 \over b1} = {a2 \over b2}\).

Distanza da un punto a una linea (attenzione: la distanza può essere negativa, tutto dipende da quale lato della linea si trova il punto):
\({(a \cdot x_1 + b \cdot y_1 + c) \over \sqrt{a^2 + b^2}}\),
dove x1, y1 sono le coordinate del punto.

Costruire una linea da un vettore normale e un punto, o un vettore di direzione e un punto, si riduce a costruire una linea da 2 punti, quindi diamo un'occhiata (è anche il più comunemente usato ).< /p>

Se x1, y1, x 2, y2 - coordinate rispettivamente del primo e del secondo punto, quindi

\(a = y_1 - y_2\)

\(b = x_2 - x_1\)

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

Incrocio

Punto di intersezione di linee

a1, b1, c1 - coefficienti della prima riga,
a2, b2, c2 - coefficienti della seconda riga,
x, y - punto di intersezione.

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

Sappiamo già come controllare le linee per l'intersezione (non sono parallele) e trovare il loro punto di intersezione.

Ora impariamo come farlo con i segmenti

Innanzitutto, impariamo come verificarne semplicemente l'intersezione.

I segmenti si intersecano se le estremità di uno sono sui lati opposti dell'altro e viceversa (questo è facilmente verificabile dal prodotto incrociato).  L'unico caso in cui ciò non funzionerà: i segmenti si trovano su una linea retta. Per questo, è necessario verificare l'intersezione del cosiddetto. bounding box (bounding box del segmento) - controlla l'intersezione della proiezione dei segmenti su X e Y.

assi.

Ora che sappiamo come controllare i segmenti per l'intersezione, impariamo a trovare il punto (o segmento) della loro intersezione:
- se non si intersecano, allora è chiaro che tale punto non esiste;
- altrimenti, costruiremo linee rette su cui giacciono questi segmenti.

Se sono paralleli, allora i segmenti giacciono sulla stessa linea, e dobbiamo trovare il segmento di intersezione - dal massimo dei bordi di sinistra dei segmenti al minimo dei bordi di destra (il punto è minore dell'altro punto, se è a sinistra, in caso di uguaglianza X-coordinate - se è inferiore).

Se le linee non sono parallele, trova il punto della loro intersezione e restituiscilo.