Analytická geometrie - Poloha bodu vůči přímce

Vydáno dne v kategorii Analytická geometrie; Autor: Jakub Vojáček; Počet přečtení: 44 451

Naučíme se určit ve které polorovině dáné přímkou se nachází bod.


Pokud máme přímku p a body A, B, tak můžeme pomocí obecné rovnice přímky p určit, jestli se oba body nacházejí ve stejné polorovině (rovina je rozdělena na dvě poloroviny přímou p), popř. je-li každý v jiné polorovině. Takže my nedokážeme určit, jestli je bod nalevo nebo napravo od přímky, my pouze určujeme, zda se oba body nacházejí ve stejné polorovině. K čemu to je? Například proto, abychom otestovali, zda bod X leží/neleží v trojúhelníku ABC.

Začneme těmi nejjednoduššími příklady. Narýsujte přímku procházející body X[0,0], Y[1,1]:

 Analytická geometrie

Tato přímka má obecnou rovnici p: x-y=0. Pokud do této rovnice dosadím souřadnice jakéhokoliv bodu, který leží na přímce, rovnice se potvrdí (0=0). Pokud tam ale dosadím souřadnice bodu, který na přímce neleží, rovnost nebude platit. Narýsujte si další dva body A[0, 2], B[2, 0].

 Analytická geometrie

Nyní zkuste dosadit souřadnice bodů A, B dosadit do obecné rovnice přímky p:

A
p: x-y=0
-2=0
B
p: x-y=0
2=0

O bodech A, B se dá s pomocí obrázku s jistotou říci, že neleží ve stejné polorovině. To se nám také potvrdilo předchozím výpočtem. Totiž, pokud jsme do obecné rovnice přímky p dosadili souřadnice bodu A vyšla nám nerovnice -2 < 0 a pro bod B vyšlo 2 > 0. Rozdíl je jasný. Aby bod ležel v polorovině dané bodem A musí vyjít x < 0. A aby nějaký bod ležel ve stejné polorovině jako bod B, musí vyjít x > 0.

Leží bod M[4, 7] ve stejné polorovině jako bod N[5, 3] (pracujeme se stejnou přímkou jako v předchozím příkladě)?

Je zbytečné si kreslit obrázek, vše můžeme bez problému spočítat:

p: x-y=0
M
4-7=0
-3 < 0
N
5-3=0
2 > 0

Body M, N neleží ve stejné polorovině.

Složitější příklady

1) Určete, zda se bod M[3, 2] nachází v konvexním úhlu AVB.

 Analytická geometrie

Trošku jsem vám zlehčil práci; podle obrázku totiž víte, že se bod nachází nachází v konvexním úhlu AVB. Na vás je pouze dokázat stejnou skutečnost numerickým výpočtem.

Začneme tím, že si napíšeme obecné rovnice přímek AV, BV.

AV: x-y=0
BV: 0x+y-1=0

Konvexní úhel AVB je vlastně průnik dvou polorovin (AVB a BVA). Bod M tedy musí splňovat dvě podmínky. Musí ležet v polorovině AVB a současně musí ležet v polorovině BVA.

Do obecné rovnice přímky AV dosadíme bod M
AV: x-y=0
3-2=0
1 > 0
Polohu bodu M zkontrolujeme pomocí bodu B
AV: x-y=0
4-1=0
3 > 0

Ověřili jsme,o že se bod M nachází v polorovině AVB. Zbývá ověřit, zda je bod M i v polorovině BVA:

Do obecné rovnice přímky BV dosadíme bod M
BV: 0x+y-1=0
1 > 0
Polohu bodu M zkontrolujeme pomocí bodu A
BV: 0x+y-1=0
2 > 0

Bod M leží v konvexním úhlu AVB.

2) Určete, zda se bod M[2, 2] nachází v trojúhelníku ABC.

 Analytická geometrie

Trojúhelník je vlastně jenom průnik tří polorovin. Takže pokud bude bod M ležet ve všech třech polorovinách tak leží v trojúhelníku ABC. Je to vlastně předchozí příklad doplněný o ještě jednu polorovinu.

Opět začneme tím, že napíšeme obecné rovnice přímek:

AB: y-1=0
AC: x-1=0
BC: x+y-5=0

Postupně otestujeme, zda se bod M nachází ve stejné polorovině jako protější vrchol. Začneme přímkou AB.

Doplníme bod M do obecné rovnice přímky AB:
AB: y-1=0
1 > 0
Doplníme bod C do obecné rovnice přímky AB:
AB: y-1=0
3 > 0
→ leží ve stejné polorovině

Tak, jedna podmínka je splněna. Nyní otestujeme polorovinu danou přímkou AC:

Doplníme bod M do obecné rovnice přímky AC:
AC: x-1=0
1 > 0
Doplníme bod B do obecné rovnice přímky AC:
AC: x-1=0
3 > 0
→ leží ve stejné polorovině

I tato podmínka byla splněna. Nakonec otestujeme polorovinu danou přímkou BC:

Doplníme bod M do obecné rovnice přímky BC:
BC: x+y-5=0
-1 < 0
Doplníme bod A do obecné rovnice přímky BC:
BC: x+y-5=0
-3 < 0
→ leží ve stejné polorovině

Bod M leží v trojúhelníku ABC.

Zdrojový kód

Zdrojový kód v jazyce C pro test, zda-li bod D leží v úhlu ABC :-)

int porovnej(long int u1, long int u2, long int u3, int a1, int a2, int b1, int b2){
    /*
     * Zjistí, zda bodi A a B lezi ve stejne polorovine od primky u1x+u2y+u3=0
     */
    if ((u1*a1+u2*a2+u3) * (u1*b1+u2*b2+u3) > 0){
        return 1;
    }
    return 0;
}

int v_uhlu(int a1, int a2, int b1, int b2, int c1, int c2, int d1, int d2){
    /*
     * Kontroluje, zda lezi bod D[d1, d2] v uhlu ABC
     */
    long int u[3] = {-b2+a2, b1-a1, 0};//primka AB - dosadit A, kontrola s C
    long int v[3] = {-c2+b2, c1-b1, 0};//primka BC - dosadit B, kontrola s A
    u[2] = -u[0]*a1-u[1]*a2;
    v[2] = -v[0]*b1-v[1]*b2;   
    return (porovnej(u[0], u[1], u[2], c1, c2, d1, d2) && porovnej(v[0], v[1], v[2], a1, a2, d1, d2));
}

Toho, že umíme určit, zda-li se body nacházejí ve stejné polorovině se dá využít i v jiných příkladech než test toho, zda bod leží v trojúhelníku. Například pro test, je-li nějaký n-úhelník konvexní. Konvexní bude právě tehdy, bude-li pro každé jeho čtyři po sobě následující body platit, že první a čtvrtý bod jsou ve stejné polorovině dané přímkou, která vznikne spojením druhého a třetího bodu.

Test

Vypočtěte \int_1^{\mathrm{e}}\left(-\frac{3}{x}+2\right)\mathrm{d}x


Hlavolam

Jak to tak bývá, zlý čaroděj uvěznil mudrce. A kdo by to čekal, dal mu šanci se zachránit, pokud splní úkol. Na stole je kulatý tác, kterým lze volně otáčet, a na něm čtyři mince do čtverce. Mudrc má zavázané oči, nic nevidí. Jeho úkolem je otočit mince tak, že bude na všech panna. Nemá to však jednoduché. Otočí jistý počet mincí, pak černokněžník tácem zatočí. Opět otočí nějaké mince a znovu se tácem náhodně otočí. Toto se opakuje, dokud nejsou všechny mince správně. V tu chvíli je hra zlotřilým čarodějem ukončena. Mudrc nepozná podle hmatu pannu od orla. Musí vždy mince nechat na svém místě, ve čtverci. A hlavně - kvůli zlé magii - má strašnou smůlu a pokud bude spoléhat jen na náhodu, tak úkol nikdy nesplní.