Onlar düz qırılır: səthdəki kəsiklərin aşınması. İki kəsişmənin çarpaz çubuğunun nöqtəsinin təyin edilməsi Kəsiklərin çarpaz əlaqəsi c

İcazə verin sizə iki kəsim verim. İlk tapşırıqlar ləkələnmişdir P 1 (x 1; y 1)і P 2 (x 2; y 2). Digər iş yerləri ləkəlidir P 3 (x 3; y 3)і P 4 (x 4; y 4).

Bölmələrin qarşılıqlı fırlanması vektor yaradılması ilə yoxlanıla bilər:

Gəlin videoya nəzər salaq P 3 P 4 və ləkələr P 1і P2.

Nöqtə, ləkə P 1 düz bir xəttdə sol əllə yatın P 3 P 4, vektor TV üçün v 1 > 0, Vektorların fraqmentləri müsbət yönümlüdür.
Nöqtə, ləkə P2 sağ əlli düz bir xəttlə retuş edilir, bunun üçün vektor tir var v 2< 0 , Vektorların fraqmentləri mənfi yönümlüdür.

Bir nöqtə qoymaq üçün P 1і P2 düz üzünə oyulmuş tərəflərə uzanın P 3 P 4, bu kifayətdir ki, ağıl qalib gəlsin v 1 v 2< 0 (Vektor kiçik işarələr yaradır).

Bənzər yuma kəsmə üçün həyata keçirilə bilər P 1 P 2 nöqtə qoyuram P 3і S 4.

Ozhe, yakscho v 1 v 2< 0 і v 3 v 4< 0 sonra şlamlar qırılır.

İki vektorun vektor gəliri düsturla hesablanır:

de:
balta, ay- birinci vektorun koordinatları
bx, tərəfindən- Başqa vektorun koordinatları.

Düz xətt koordinatları ilə müəyyən edilmiş iki fərqli nöqtədən keçmək deməkdir.

Düz xəttdə üst-üstə düşməyən iki nöqtə tapın: P 1 koordinatları ilə ( x 1; y 1)і P2 koordinatları ilə (x 2; y 2). Bir nöqtədə koplu aydın vektor P 1 Və nəhayət nöqtədə P2 May koordinatları (x 2 -x 1 , y 2 -y 1). Yakshcho P(x, y)- düz xəttin kifayət qədər nöqtəsidir, sonra vektorun koordinatları P 1 P bərabərdir (x - x 1, y - y 1).

Vektor yaradıcılığının köməyi üçün vektorların kolinearlığı P 1 Pі P 1 P 2 belə yazmaq olar:
|P 1 P ,P 1 P 2 |=0, sonra. (x-x 1)(y 2 -y 1)-(y-y 1)(x 2 -x 1)=0
ya da başqa
(y 2 -y 1)x + (x 1 -x 2)y + x 1 (y 1 -y 2) + y 1 (x 2 -x 1) = 0

Qalan ayə bu şəkildə yenidən yazılır:
ax + by + c = 0, (1)
de
a = (y 2 -y 1),
b = (x 1 -x 2),
c = x 1 (y 1 -y 2) + y 1 (x 2 -x 1)

Yaxşı, (1) şəklində bərabərlikləri birbaşa qura bilərsiniz.

Düz xəttin nöqtəsini necə bilmək olar?
Aydın həll yolu birbaşa rütbələr sistemini açmaqdır:

balta 1 +1-ə =-c 1
balta 2 +2 ilə =-c 2
(2)

Təyinatı daxil edin:

Burada D– sistemin əsas lideri və Dx, Dy- bir sıra əmsalların aydın bilinməyən sayda müstəqil üzvlərlə əvəz edilməsi nəticəsində ikinci dərəcəli olanlar. Yakshcho D ≠ 0 onda sistem (2) bir mahnıdır, onda tək bir həll var. Məqsədi aşağıdakı düsturlarda tapmaq olar: x 1 = D x / D, y 1 = D y / D, Onlar Kramer düsturları adlanır | Mühasib fərqli qaydada hesablandığı üçün kiçik bir təxmindir. Başın iki diaqonalı var: baş və yan. Baş diaqonalı başlanğıcın yuxarı sol küncünün düz xəttindən aşağı sağ küncə qədər götürülmüş elementlərdən ibarətdir. Yan diaqonal yuxarı sağdan aşağı sola doğrudur. Başqa bir sıranın mənşəyi əsas diaqonalın elementlərinin əlavə edilməsindən ikinci dərəcəli diaqonalın elementlərinin əlavə edilməsidir.

Mən düz xətləri keçəcəyəm

Zəhmət olmasa, bizə əmsallarınızla verilən iki birbaşa göstəriş verin. Onların kəsişmə nöqtəsini bilmək və ya birbaşa paralel olanı başa düşmək lazımdır.

Qərar

İkisi birbaşa paralel olmadığı üçün hamısı dəyişir. Örgü nöqtəsini tapmaq üçün sistemin iki düz xəttini əymək və onu buraxmaq kifayətdir:

Kramerin düsturuna əsasən, sistemin həllinin eyni olacağı dərhal aydın olur Mən bir nöqtə qoyacağam:



Znamennik sıfırına bənzəyir, budur.

onda sistem qərar qəbul edə bilməz (birbaşa paralel və qaçılmaz) və ya sonsuz zəngindir (birbaşa qaçmaq). Bu iki növü ayırmaq lazımdırsa, əmsalların eyni mütənasiblik əmsalı ilə birbaşa mütənasib olduğunu yoxlamaq lazımdır ki, bu da əmsaldır, bunun üçün kifayət qədər ödəməli olduğunuz və iki əsas olanlar, çünki cinayətin qoxusu. sıfıra bərabərdir, onda onlar düz birlikdə qaçırlar:

İcra

struct pt (ikiqat x, y;); struktur xətti (ikiqat a, b, c;); ikiqat EPS =1e-9; ikiqat det (ikiqat a, ikiqat b, ikiqat c, ikiqat d) (a * d - b * c qaytarın;) bool kəsişir (xətt m, xətt n, pt & res) (ikiqat zn = det (ma, mb, na) , nb); əgər (abs (zn)< EPS)returnfalse; res.x=- det (m.c, m.b, n.c, n.b)/ zn; res.y=- det (m.a, m.c, n.a, n.c)/ zn;returntrue;} bool parallel (line m, line n){returnabs(det (m.a, m.b, n.a, n.b))< EPS;} bool equivalent (line m, line n){returnabs(det (m.a, m.b, n.a, n.b))< EPS &&abs(det (m.a, m.c, n.a, n.c))< EPS &&abs(det (m.b, m.c, n.b, n.c))< EPS;}

"Serialından dərs" Həndəsi alqoritmlər»

Salam, əziz oxucu.

Epizod 1: Bir nöqtənin koordinatlarını necə bilmək və iki düz xətti keçmək

Gəlin daha üç yeni funksiya yazaq.

LinesCross() funksiyası əhəmiyyətlidir, əymək iki video. Bu halda vektor yaradıcılığının köməyi ilə bölmələrin qarşılıqlı fırlanması göstərilir. Vektor yaradılmasını hesablamaq üçün VektorMulti() funksiyasını yazacağıq.

Tənzimləmə əməliyyatını həyata keçirmək üçün RealLess() funksiyasından istifadə olunur.<” (строго меньше) для вещественных чисел.

Tapşırıq 1. İki hissəyə öz koordinatları verilir. Proqramı qatlayın, o deməkdir ki, qarışdırma və kəsiklər, çarpaz çubuğun nöqtəsini bilmədən.

Qərar
. Digər vəzifələr ləkələnmişdir.



Nöqtələrə və nöqtələrə nəzər salaq.

Ləkə düz bir xəttdə sol əllə yerləşir, çünki onun vektor istiqaməti var > 0, vektor fraqmentləri müsbət yönümlüdür.

Ləkə düz bir xəttdə sağ əllə qırxılır, bunun üçün bir vektor işarəsi var < 0, так как векторы отрицательно ориентированы.

i nöqtələrinin müxtəlif tərəflərdə düz bir xəttdə uzanması üçün ağılın formalaşması kifayətdir.< 0 (векторные произведения имели противоположные знаки).

Bənzər işarələmə kəsmə və işarələmə üçün həyata keçirilə bilər.

Ozhe, yakscho sonra şlamlar qırılır.

Hesablamaları yoxlamaq üçün LinesCross() funksiyasından, vektor yaradılmasını hesablamaq üçün isə VektorMulti() funksiyasından istifadə olunur.

balta, ay - birinci vektorun koordinatları,

bx, by – başqa vektorun koordinatları.

Geometr4 proqramı; (Niyə 2 bölmə hərəkət edir?) Const _Eps: Real=1e-4; (dəqiqlik virahuvan) var x1, y1, x2, y2, x3, y3, x4, y4: real; var v1,v2,v3,v4: real;funksiya RealLess(Const a, b: Real): Boolean; (Ciddi az) start RealLess: = b-a> _Eps end; (RealLess)funksiya VektorMulti(ax,ay,bx,by:real): real; (ax, ay - a bx koordinatları, by - koordinatları b) başlama vektormulti: = ax * by-bx * ay; end;Function LinesCross(x1,y1,x2,y2,x3,y3,x4,y4:real): boolean; (Niyə parçalar hərəkət edir?) begin v1:=vektormulti(x4-x3,y4-y3,x1-x3,y1-y3); v2:=vektormulti(x4-x3,y4-y3,x2-x3,y2-y3); v3:=vektormulti(x2-x1,y2-y1,x3-x1,y3-y1); v4:=vektormulti(x2-x1,y2-y1,x4-x1,y4-y1); RealLess(v1*v2,0) və RealLess(v3*v4,0) (v1v2)<0 и v3v4<0, отрезки пересекаются} then LinesCross:= true else LinesCross:= false end; {LinesCross}begin {main} writeln(‘Введите координаты отрезков: x1,y1,x2,y2,x3,y3,x4,y4’); readln(x1,y1,x2,y2,x3,y3,x4,y4); if LinesCross(x1,y1,x2,y2,x3,y3,x4,y4) then writeln (‘Да’) else writeln (‘Нет’) end.

Vikonanny proqramının nəticələri:

Çəkilişlərin koordinatlarını daxil edin: -1 1 2 2.52 2 1 -1 3
Belə ki.

Bölmələrin koordinatlarını nəzərə alaraq onların necə hərəkət etdiyini göstərən proqram yazdıq.

Növbəti dərsdə trikuputinin ortasındakı nöqtəni təyin etməyə kömək edəcək bir alqoritm hazırlayacağıq.

Kanslerin çitçusu.

Siz artıq “Həndəsi alqoritmlər” seriyasından çoxlu dərslər öyrənmisiniz. Hər şey yazılıb? Məni bu dərslər haqqında videodan məhrum etsəniz çox minnətdar olaram. Əlavə araşdırma tələb oluna bilər.

Hörmətlə, Vira Gospodar.

İcazə verin sizə iki kəsim verim. İlk tapşırıqlar ləkələnmişdir P 1 (x 1; y 1)і P 2 (x 2; y 2). Digər iş yerləri ləkəlidir P 3 (x 3; y 3)і P 4 (x 4; y 4).

Bölmələrin qarşılıqlı fırlanması vektor yaradılması ilə yoxlanıla bilər:

Gəlin videoya nəzər salaq P 3 P 4 və ləkələr P 1і P2.

Nöqtə, ləkə P 1 düz bir xəttdə sol əllə yatın P 3 P 4, vektor TV üçün v 1 > 0, Vektorların fraqmentləri müsbət yönümlüdür.
Nöqtə, ləkə P2 sağ əlli düz bir xəttlə retuş edilir, bunun üçün vektor tir var v 2< 0 , Vektorların fraqmentləri mənfi yönümlüdür.

Bir nöqtə qoymaq üçün P 1і P2 düz üzünə oyulmuş tərəflərə uzanın P 3 P 4, bu kifayətdir ki, ağıl qalib gəlsin v 1 v 2< 0 (Vektor kiçik işarələr yaradır).

Bənzər yuma kəsmə üçün həyata keçirilə bilər P 1 P 2 nöqtə qoyuram P 3і S 4.

Ozhe, yakscho v 1 v 2< 0 і v 3 v 4< 0 sonra şlamlar qırılır.

İki vektorun vektor gəliri düsturla hesablanır:

de:
balta, ay- Birinci vektorun koordinatları,
bx, tərəfindən- Başqa vektorun koordinatları.

Düz xətt koordinatları ilə müəyyən edilmiş iki fərqli nöqtədən keçmək deməkdir.

Düz xəttdə üst-üstə düşməyən iki nöqtə tapın: P 1 koordinatları ilə ( x 1; y 1)і P2 koordinatları ilə (x 2; y 2).

Peretin düz

Bir nöqtədə koplu aydın vektor P 1 Və nəhayət nöqtədə P2 May koordinatları (x 2 -x 1 , y 2 -y 1). Yakshcho P(x, y)- düz xəttin kifayət qədər nöqtəsidir, sonra vektorun koordinatları P 1 P bərabərdir (x - x 1, y - y 1).

Vektor yaradıcılığının köməyi üçün vektorların kolinearlığı P 1 Pі P 1 P 2 belə yazmaq olar:
|P 1 P,P 1 P 2 |=0, sonra. (x-x 1)(y 2 -y 1)-(y-y 1)(x 2 -x 1)=0
ya da başqa
(y 2 -y 1)x + (x 1 -x 2)y + x 1 (y 1 -y 2) + y 1 (x 2 -x 1) = 0

Qalan ayə bu şəkildə yenidən yazılır:
ax + by + c = 0, (1)
de
a = (y 2 -y 1),
b = (x 1 -x 2),
c = x 1 (y 1 -y 2) + y 1 (x 2 -x 1)

Yaxşı, (1) şəklində bərabərlikləri birbaşa qura bilərsiniz.

Düz xəttin nöqtəsini necə bilmək olar?
Aydın həll yolu birbaşa rütbələr sistemini açmaqdır:

balta 1 +1-ə =-c 1
balta 2 +2 ilə =-c 2
(2)

Təyinatı daxil edin:

Burada D– sistemin əsas lideri və Dx, Dy— yüz əmsalın naməlum sayılan azad üzvlərlə əvəzlənməsinə nail olacaq deputatlar. Yakshcho D ≠ 0 onda sistem (2) bir mahnıdır, onda tək bir həll var. Məqsədi aşağıdakı düsturlarda tapmaq olar: x 1 = D x / D, y 1 = D y / D, Onlar Kramer düsturları adlanır | Mühasib fərqli qaydada hesablandığı üçün kiçik bir təxmindir. Başın iki diaqonalı var: baş və yan. Baş diaqonalı başlanğıcın yuxarı sol küncünün düz xəttindən aşağı sağ küncə qədər götürülmüş elementlərdən ibarətdir. Yan diaqonal yuxarı sağdan aşağı sola doğrudur. Başqa bir sıranın mənşəyi əsas diaqonalın elementlərinin əlavə edilməsindən ikinci dərəcəli diaqonalın elementlərinin əlavə edilməsidir.