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.

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.

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.