Az átfedésben lévő részek, geometriai algoritmusok, programmirovanie-DLA-sshool

Olvasmány a sorozat „Geometriai algoritmusok”

Üdvözöljük, kedves olvasó. Írjunk három új funkciók.

LinesCross () funkció határozza meg, hogy a két szegmens metszik. Ez határozza meg a relatív pozíciója a szegmensek vektor alkalmazásával termékek. Kiszámításához vektor termékek levelet funkció - VektorMulti ().

RealLess () függvény végrehajtásához alkalmazott összehasonlító operátorok "<” (строго меньше) для вещественных чисел.

Zadacha1. Két szegmenseket a koordinátái által meghatározott. Írj programot, amely meghatározza, hogy ezeket a szegmenseket metszik egymást. megtalálni a metszéspont.

döntés
Legyen a két szegmens kapnak. Az első pont. A második pont.

Az átfedésben lévő részek, geometriai algoritmusok, programmirovanie-DLA-sshool

A kölcsönös elrendezése a szegmensek segítségével ellenőrizhető kereszt-termékek:


Tekintsük a szegmens és a pontokat, és.

Az átfedésben lévő részek, geometriai algoritmusok, programmirovanie-DLA-sshool
Lies elhagyta a vonal, a vektor termék> 0, mivel a vektorokat orientált pozitívan neki.

A lényeg az, hogy a jobb oldalt neki szorzat <0, так как векторы отрицательно ориентированы.

Ahhoz, hogy az a pont, és feküdt ellentétes oldalán a vonal, elég, hogy megfelel a feltétellel <0 ( векторные произведения имели противоположные знаки).

Hasonló lehet érvelni a szegmensben, és a pontok és.

Tehát, ha a szegmens metszik egymást.

Annak tesztelésére, ezt a feltételt használják LinesCross () függvény, és kiszámításához a vektor termékek - VektorMulti () függvény.

A vektor terméke két vektor a következőképpen számítjuk ki:

ax, ay - koordinátáit az első vektor,

bx, által - a koordinátáit a második vektor.

A program eredményei:

Típus koordináták intervallumok: -1 1 2 2,52 2 1 -1 3
Igen.

Írtunk egy programot annak meghatározására, hogy a szegmensek metszik, mivel azok koordinátáit.

A következő leckében, hogy az algoritmus, amellyel meg lehet állapítani, hogy a pont a háromszög belsejében fekszik.

Kedves olvasó. Már megtanult néhány leckét a sorozat „Geometriai algoritmusok.” Ne minden írott rendelkezésre? Én nagyon hálás, ha hagyja, értékelje ezeket a leckéket. Talán valamit kell továbbfejleszteni.

Üdvözlettel, Vera Gospodarets.

Oszd meg barátaiddal