Taškas k priklauso. Konvertuoti sudėtingą brėžinį

Priklausymo ženklai gerai žinomi iš planimetrijos kurso. Mūsų užduotis yra atsižvelgti į juos geometrinių objektų projekcijų atžvilgiu.

Taškas priklauso plokštumai, jei jis priklauso tiesei, esančiai šioje plokštumoje.

Priklausymas tiesiajai plokštumai nustatomas pagal vieną iš dviejų kriterijų:

a) tiesė eina per du šioje plokštumoje esančius taškus;

b) tiesė eina per tašką ir yra lygiagreti šioje plokštumoje esančioms tiesėms.

Naudodami šias savybes, kaip pavyzdį išspręskime problemą. Tegul plokštuma yra apibrėžta trikampiu ABC. Būtina sukurti trūkstamą projekciją D 1 taškas D priklausantis šiai plokštumai. Konstrukcijų seka tokia (2.5 pav.).

Ryžiai. 2.5.

Sudaryti taško, priklausančio plokštumai, projekcijas D Per tašką 2 atliekame tiesios linijos projekciją d ABC, guli lėktuve , kertantis vieną iš trikampio kraštinių ir taško A , kertantis vieną iš trikampio kraštinių ir taško 2 D 2. Tada taškas 1 2 priklauso tiesėms 2 ir 2 C IN 2 ir 1 C 2. Todėl galime gauti jo horizontalią projekciją 1 1 į , kertantis vieną iš trikampio kraštinių ir taško 1 per ryšio liniją. Sujungimo taškai 1 1 ir 2 atliekame tiesios linijos projekciją 1, gauname horizontalią projekciją D 1. D 2 .

Aišku, kad esmė

1 priklauso jai ir yra ant projekcijos jungties su tašku linijos

Problemos, kaip nustatyti, ar priklauso taškas, ar tiesi plokštuma, išsprendžiamos gana paprastai. Fig. 2.6 paveiksle parodyta tokių problemų sprendimo eiga. Siekiant aiškumo, plokštumą apibrėžiame trikampiu. Ryžiai. 2.6. Uždaviniai nustatyti, ar taškas priklauso tiesei plokštumai. Norint nustatyti, ar taškas priklauso ABC E lėktuvas, nubrėžkite tiesią liniją per jos priekinę projekciją E 2 ABC A lėktuvas 2. Darant prielaidą, kad tiesė a priklauso plokštumai lėktuvas, sukurkime jo horizontaliąją projekciją Ryžiai. 2.6. Uždaviniai nustatyti, ar taškas priklauso tiesei plokštumai. 1 susikirtimo taškuose 1 ir 2. Kaip matome (2.6 pav., a), tiesūs Ryžiai. 2.6. Uždaviniai nustatyti, ar taškas priklauso tiesei plokštumai. ABC.

1 nepereina per tašką 1. Todėl taškas Priklausymo linijai problemoje ABC V 1. Todėl taškas trikampio plokštumos 1. Todėl taškas(2.6 pav., b), pakanka naudoti vieną iš tiesių projekcijų 1. Todėl taškas ABC 2 pastatykite kitą 1. Todėl taškas 1* atsižvelgiant į tai 1. Todėl taškas. Kaip matome, 1. Todėl taškas ABC.

1* ir

1 nesutampa. Todėl tiesiai 2.4. Lygių linijos plokštumoje Lygių linijų apibrėžimas buvo pateiktas anksčiau. Lygio linijos, priklausančios duotai plokštumai, vadinamos

Panagrinėkime lygių linijų konstravimą trikampio apibrėžtoje plokštumoje (2.7 pav.).

Ryžiai. 2.7. Trikampiu apibrėžtos plokštumos pagrindinių tiesių konstravimas

Horizontali plokštuma ABC pradedame piešdami jo priekinę projekciją h 2, kuri, kaip žinoma, yra lygiagreti ašiai Oi. Kadangi ši horizontali linija priklauso šiai plokštumai, ji eina per du plokštumos taškus ABC, būtent taškai , kertantis vieną iš trikampio kraštinių ir taško ir 1. turintys priekines projekcijas , kertantis vieną iš trikampio kraštinių ir taško 2 ir 1 2 , išilgai ryšio linijos gauname horizontalias projekcijas ( , kertantis vieną iš trikampio kraštinių ir taško 1 jau yra) 1 1 . Taškų sujungimas , kertantis vieną iš trikampio kraštinių ir taško 1 ir 1 1, turime horizontalią projekciją h 1 horizontali plokštuma ABC. Profilio projekcija h 3 horizontalios plokštumos ABC bus lygiagreti ašiai Oi pagal apibrėžimą.

Priekinė plokštuma ABC yra sukonstruotas panašiai (2.7 pav.), tik tas skirtumas, kad jo brėžinys prasideda horizontalia projekcija f 1, nes žinoma, kad jis yra lygiagretus OX ašiai. Profilio projekcija f 3 frontai turi būti lygiagrečiai OZ ašiai ir pereiti per iškyšas SU 3, 2 3 tų pačių taškų SU ir 2.

Lėktuvo profilio linija ABC turi horizontalią r 1 ir priekyje r 2 projekcijos lygiagrečios ašims OY Ir OZ ir profilio projekcija r 3 galima gauti iš priekio naudojant susikirtimo taškus C ir 3 s ABC.

Statant pagrindines plokštumos linijas, reikia atsiminti tik vieną taisyklę: norint išspręsti problemą, visada reikia gauti du susikirtimo taškus su duota plokštuma. Kitu būdu apibrėžtoje plokštumoje esančių pagrindinių linijų konstravimas nėra sudėtingesnis nei aptartas aukščiau. Fig. 2.8 paveiksle parodyta horizontaliosios ir priekinės plokštumos, apibrėžtos dviem susikertančiomis linijomis, konstrukcija lėktuvas Ir 1. Todėl taškas.

Ryžiai. 2.8. Plokštumos, apibrėžtos susikertančiomis tiesėmis, pagrindinių tiesių konstravimas.

Taškas priklauso plokštumai, jei jis priklauso bet kuriai šios plokštumos tiesei.

Tiesė priklauso plokštumai, jei du jos taškai priklauso plokštumai.

Šie du gana akivaizdūs teiginiai dažnai vadinami sąlygomis, kad taškas priklausytų tiesiai plokštumai.

Fig. 3.6 lėktuvas bendrą poziciją duota trikampis ABC. Taškai A, B, C priklauso šiai plokštumai, nes jie yra trikampio viršūnės iš šios plokštumos. Tiesės (AB), (BC), (AC) priklauso plokštumai, nes plokštumai priklauso du jų taškai. Taškas N priklauso (AC), D priklauso (AB), E priklauso (CD), todėl taškai N ir E priklauso plokštumai (DABC), tada tiesė (NE) priklauso plokštumai (DABC). ).

Jei duota viena taško L projekcija, pavyzdžiui, L 2, ir žinoma, kad taškas L priklauso plokštumai (DABC), tai norėdami rasti antrąją projekciją L 1, iš eilės randame (A 2 L 2), K. 2, (A 1 K 1), L 1.

Jei taško priklausymo plokštumai sąlyga pažeidžiama, tai taškas plokštumai nepriklauso. Fig. 3.6, taškas R nepriklauso plokštumai (DABC), nes R 2 priklauso (F 2 K 2), o R 1 nepriklauso (A 1 K 1).

Fig. 3.7 duota sudėtingas piešinys horizontaliosios projekcijos plokštuma (DCDE). Taškai K ir P priklauso šiai plokštumai, nes P 1 ir K 1 priklauso tiesei (D 1 C 1), kuri yra horizontali plokštumos projekcija (DCDE). Taškas N nepriklauso plokštumai, nes N 1 nepriklauso (D 1 C 1).

Visi plokštumos taškai (DCDE) projektuojami į P 1 tiese (D 1 C 1). Tai išplaukia iš to, kad lėktuvas (DCDE) ^ П 1. Taip pat galite tai patikrinti, jei taškui P (ar bet kuriam kitam taškui) padarysite tokias pačias konstrukcijas, kaip ir taškui L (3.6 pav.). Taškas P 1 kris ant tiesės (D 1 C 1). Taigi, norint nustatyti, ar taškas priklauso horizontaliai projektuojančiai plokštumai, priekinės projekcijos (DC 2 D 2 E 2) nereikia. Todėl ateityje projektavimo plokštumos bus nurodytos tik viena projekcija (tiesia linija). Fig. 3.7 paveiksle pavaizduota frontaliai išsikišusi plokštuma S, apibrėžta frontaline projekcija S 2, taip pat taškai A Î S ir B Ï S.

Santykinė taško ir plokštumos padėtis priklauso nuo to, ar taškas priklauso plokštumai, ar ne.

Sprendžiant daugelį uždavinių, būtina nutiesti lygių linijas, priklausančias bendroms ir konkrečioms plokštumoms. Fig. 3.8 paveiksle pavaizduota horizontalioji h ir priekinė f, priklausančios bendrosios padėties plokštumai (DABC). Priekinė projekcija h 2 lygiagreti x ašiai, todėl tiesė h yra horizontali. Tiesės h taškai 1 ir 2 priklauso plokštumai, todėl tiesė h priklauso plokštumai. Taigi tiesi linija h yra plokštumos horizontalė (DABC). Paprastai statybos tvarka yra tokia: h 2; 1 2, 2 2; 1 1, 2 1; (1 1 2 1) = h 1 . Priekinis f brėžiamas per tašką A. Konstravimo tvarka: f 1 // x, A 1 О f 1 ; 3 1, 3 2; (A 2 3 2) = f 2 .



Fig. 3.9 paveiksle pavaizduotos priekinės plokštumos S ir horizontaliai projektuojančios plokštumos G horizontalios ir priekinės projekcijos. S plokštumoje horizontalė yra priekyje išsikišusi linija ir eina per tašką A (pabandykite įsivaizduoti horizontalią kaip plokštumos susikirtimo liniją). S ir plokštuma, einanti per tašką A lygiagrečiai P 1). Frontalas eina per tašką C. G plokštumoje horizontalioji ir frontalioji brėžiama per vieną tašką D. Frontalas yra horizontaliai išsikišusi linija.

Iš aukščiau aptartų konstrukcijų matyti, kad plokštumos lygio linija gali būti nubrėžta per bet kurį šios plokštumos tašką.

Plokštumų sutapimas gali būti interpretuojamas kaip vienos plokštumos priklausymas kitai. Jei trys vienos plokštumos taškai priklauso kitai plokštumai, tai šios plokštumos sutampa. Trys paminėti taškai neturėtų būti toje pačioje tiesioje linijoje. Fig. 3.10 plokštuma (DDNE) sutampa su plokštuma S(DABC), nes taškai D, N, E priklauso plokštumai S(DABC).

Atkreipkite dėmesį, kad DABC apibrėžtą plokštumą S dabar galima apibrėžti DDNE. Bet kurią plokštumą galima apibrėžti lygio linijomis. Tam reikia plokštumoje per tašką plokštumoje S(DABC) nubrėžti horizontalią ir frontalinę liniją (pavyzdžiui, per tašką A), kuri apibrėš plokštumą S (konstrukcijos nerodomos 3.10 pav.). Horizontalios linijos konstravimo seka yra tokia: h 2 // x (A 2 Î h 2); K 2 = h 2 Ç B 2 C 2 ; K 1 О B 1 C 1 (K 2 K 1 ^ x); A 1 K 1 = h 1 . Frontalo konstravimo seka: f 1 // x (A 1 О f 1); L 1 = f 1 Ç B 1 C 1 ; L 2 О B 2 C 2 (L 1 L 2 ^ x); A 2 L 2 = f 2 . Galime parašyti S(DABC) = S(h, f).

KOMPLEKTINIO BRĖŽINIO KONVERTAVIMAS

Žinodami aprašomoji geometrija sudėtingo figūros brėžinio transformacija dažniausiai suprantama kaip jos pokytis, kurį sukelia figūros judėjimas erdvėje, arba naujų projekcijų plokštumų įvedimas, ar kitų projekcijos tipų panaudojimas. Taikymas įvairių metodų(metodai) sudėtingo brėžinio transformavimo supaprastina daugelio problemų sprendimą.

4.1. Projekcinės plokštumos pakeitimo metodas

Projekcinių plokštumų pakeitimo būdas yra toks, kad vietoj vienos iš projekcinių plokštumų įvedama nauja plokštuma, statmena kitai projekcijos plokštumai. Fig. 4.1 paveiksle parodyta erdvinė schema, kaip gauti išsamų sistemos taško A brėžinį (P 1 P 2). Taškai A 1 ir A 2 – horizontalūs ir priekinė projekcija taškai A, AA 1 A x A 2 – stačiakampis, kurio plokštuma statmena x ašiai (2.3 pav.).

Naujas lėktuvas P 4 yra statmenas P 1. Projektuodami tašką A į P 4, gauname naują projekciją A 4, figūra AA 1 A 14 A 4 yra stačiakampis, kurio plokštuma statmena naujajai ašiai x 14 = P 4 Ç P 1. Norėdami gauti išsamų brėžinį, apsvarstysime figūras, esančias projekcinėse plokštumose. Sukant aplink x 14 ašį P 4 suderinamas su P 1, tada sukant aplink x ašį P 1 (ir P 4) suderinamas su P 2 (4.1 pav. plokštumų judėjimo kryptys P 4 ir P 1 rodomi punktyrinėmis linijomis su rodyklėmis). Gautas brėžinys parodytas fig. 4.2. Statūs kampai pav. 4.1, 4.2 pažymėti lanku su tašku, vienodi segmentai pažymėtas dviem brūkšniais ( priešingos pusės stačiakampiai pav. 4.1). Iš sistemos taško A kompleksinio brėžinio (P 1 P 2) perėjome prie sistemos taško A kompleksinio brėžinio (P 1 P 4), plokštumą P 2 pakeitėme plokštuma P 4, A 2 pakeitėme A 4.

Remdamiesi šiomis konstrukcijomis, suformuluojame projekcinių plokštumų pakeitimo taisyklę (naujos projekcijos gavimo taisyklę). Per nepakeičiamą projekciją atliekame nauja linija projekcijos jungtis statmenai naujajai ašiai, tada nuo naujos ašies išilgai projekcijos jungties linijos atskiriame atkarpą, kurios ilgis lygus atstumui nuo pakeistos projekcijos iki senosios ašies, gautas taškas yra nauja projekcija. Naujos ašies kryptį pasirinksime savavališkai. Naujos koordinačių pradžios nenurodysime.

Fig. 4.3 paveiksle parodytas perėjimas nuo kompleksinio brėžinio sistemoje (P 1 P 2) prie sudėtingo brėžinio sistemoje (P 2 P 4), o po to kitas perėjimas prie kompleksinio brėžinio sistemoje (P 4 P 5). Vietoj plokštumos P 1 įvesta plokštuma P 4, statmena P 2, tada vietoj P 2 įvesta plokštuma P 5, statmena P 4. Naudodami projekcinių plokštumų keitimo taisyklę, galite atlikti bet kokį projekcinių plokštumų keitimų skaičių.

Užduotis. Duoti trys taškai A, B ir C, kurie nesutampa poromis ir yra ne vienoje tiesėje, nurodyti jų koordinatėmis. Nustatykite, ar taškas D(x_d,y_d) priklauso trikampiui ABC.
Iš karto atkreipkime dėmesį, kad problemą galima lengvai apibendrinti bet kuriai išgaubtas daugiakampis.

Testai

Bandymai turi atspindėti šiuos atvejus:

  1. Nukreipkite tašką griežtai už trikampio ribų
  2. Taškas yra griežtai trikampio viduje
  3. Taškas sutampa su viena iš trikampio viršūnių
  4. Taškas yra vienoje iš trikampio kraštinių
  5. Taškas yra vienos iš trikampio kraštinių tęsinyje
  6. Viena iš trikampio kraštinių yra lygiagreti vienai iš koordinačių ašių
  7. Dvi trikampio kraštinės yra lygiagrečios koordinačių ašims
xa taip xb yb xc yc xd yd Priklauso?
-1 -1 1 -1 0 1 2 2 Nr
-2 -2 1 -1 0 1 0 0 Taip
-1 -1 1 -1 0 1 0 1 Taip
-1 -1 1 -1 0 1 0.5 0 Taip
-1 -1 1 -1 0 1 1 3 Nr
-1 -1 1 -1 0 1 0 0 Taip
0 0 2 0 0 2 1 1 Taip
0 0 2 0 0 2 5 5 Nr

Blogas sprendimas

IN mokykliniai vadovėliai Dažnai tokias problemas rekomenduojama spręsti patikrinus sąlygas S_(ABC)=S_(ABD)+S_(BCD)+S_(CAD). Kompiuterinio diegimo metu tai lemia poreikį palyginti du realūs skaičiai už lygybę. Šią itin nemalonią operaciją galima atlikti tik su tam tikru mastu patikimumas. Tie. turėsite patikrinti, ar absoliutus \left| S_(ABD)+S_(BCD)+S_(CAD)-S_(ABC) \dešinė|< \varepsilon или относительное \left| 1-\frac{S_{ABD}+S_{BCD}+S_{CAD}}{S_{ABC}} \right| < \varepsilon отклонение. Оставим эти вопросы для курса skaitmeniniai metodai ir apytikslių skaičiavimų metodus ir šiuo keliu neisime.

Neblogas sprendimas

Pradėkime nuo paprasto pastebėjimo:

Visi trikampio (ir bet kurio išgaubto daugiakampio) taškai turi būti toje pačioje linijos, einančios per kiekvieną kraštinę, pusėje.

Užrašykime tiesės, einančios, pavyzdžiui, per taškus A ir B, lygtį. Gauname \left(x-x_A \right) \left(y_B-y_A \right)-\left(y-y_A \right) \left(x_B-x_A \ right) = 0. Lygtį parašiau tokia forma, kad man nereikėjo dalyti ir jaudintis dėl nulio vardiklyje.

Dabar galime apskaičiuoti bet kurį tašką \left(x;y \right). kairėje pusėje suteikta lygybė. Taškams, esantiems tiesioje linijoje, turėtume gauti nulį. Tuo pačiu metu tiesi linija padalins plokštumą į dvi pusiau plokštumas. Taškai, esantys toje pačioje pusiau plokštumoje, duos teigiamas vertes. O taškai iš kitos pusės plokštumos yra neigiami.
Esame pasirengę patikrinti pirmąją sąlygą: ar taškas D \left(x_d,y_d \right) priklauso tai pačiai pusplokštumai kaip taškas C \left(x_c,y_c \right) tiesės \left(AB \) atžvilgiu tiesa)? Norėdami tai padaryti, abu taškus pakeičiame aukščiau pateiktos tiesios lygties kairėje pusėje ir įsitikiname, kad gautos reikšmės yra to paties ženklo. Ką daryti, jei vienas iš taškų duoda tiksliai nulį? Tai reiškia, kad taškas yra tiesėje. Pagal uždavinio sąlygas tai gali būti tik taškas D. Tada jis priklauso trikampiui nepriklausomai nuo taškui C apskaičiuotos išraiškos ženklo.

Atkreipkite dėmesį, kad mes neteigiame, kad bet kuriame linijos taške mūsų apytiksliai skaičiavimai turi pateikti tikslų nulį. Tai būtų neteisinga. Mes tik tvirtiname, kad jei mūsų turimu tikslumu atlikti skaičiavimai vis tiek davė tikslų nulį, tada mes priverstinis skaičiuoti šį tašką guli ant šios linijos.

Natūralu, kad panašias sąlygas turėsime užrašyti dviem likusioms trikampio kraštinėms (arba visoms likusioms išgaubto daugiakampio kraštinėms).

Blogas kodas

Pradėkime nuo kintamųjų deklaravimo ir jų reikšmių skaitymo. Po to mes užrašysime vieną labai sudėtingą sąlygą, kuri tikrina narystę.

Ar taškas priklauso trikampiui?

#įtraukti

int main ()

// perskaitykite taško A koordinates

// perskaitykite taško D koordinates

// perskaitykite taško C koordinates

// perskaitykite taško D koordinates

printf(

(((xd - xa) * (yb - ya) - (yd - ya) * (xb - xa)) * ((xc - xa) * (yb - ya) - (yc - ya) * (xb - xa ) ) >= 0 ) &&

(((xd - xb ) * (yc - yb ) - (yd - yb ) * (xc - xb ) ) * ((xa - xb ) * (yc - yb ) - (ya - yb ) * (xc - xb ) ) >= 0 ) &&

(((xd - xc) * (ya - yc) - (yd - yc) * (xa - xc)) * ((xb - xc) * (ya - yc) - (yb - yc) * (xa - xc) ) ) >= 0) ?

"taip" : "ne" );

grąžinti 0;

Aukščiau pateiktas kodas turi reikšmingų trūkumų. Turėjome tris kartus užrašyti tiesės, einančios per du taškus, lygtį ir du kartus į kiekvieną iš jų pakeisti koordinates, kad patikrintume ženklą. Tai reiškia, kad mes turėjome parašyti kokią nors formulę šešis kartus su skirtingais pakeitimais. Taikydami metodą turime dvi problemas. Pirma, būklė tapo pernelyg sudėtinga, kad ją būtų lengva suprasti. Antra, ir tai yra daug blogiau, toks kodas padidina klaidos tikimybę \frac ( 1-( \left(1-p \right) )^( 6 ) )( p ) kartų. Juokinga, bet tai reiškia, kad naujoko programuotojo tikimybė suklysti padvigubėja, o patyrusio – šešis kartus. Gerai, kad patyrę programuotojai taip nerašo kodo.

Neblogas kodas

Naudokime tai, ką jau mokame kurti gimtosios funkcijos siekdami šiek tiek sumažinti kodo kiekį ir palengvinti jo skaitymą.
Parašykime sąlygą C++ programavimo kalba:

Sprendimas naudojant funkcijas

#įtraukti

// Apskaičiuoja taško D(xd,yd) padėtį tiesės AB atžvilgiu

double g (double xa, double ya, double xb, double yb, double xd, double yd)

grįžti (xd - xa ) * (yb - ya ) - (yd - ya ) * (xb - xa ) ;

// Ar taškai C ir D yra toje pačioje tiesės (AB) pusėje?

bool f (double xa , double ya , double xb , double yb , double xc , double yc , double xd , double yd )

grįžti g (xa , ya , xb , yb , xc , yc ) * g (xa , ya , xb , yb , xd , yd ) >= 0 ;

int main ()

dvigubas xa, ya, xb, yb, xc, yc, xd, yd;

scanf ("%lf%lf" , &xa , &ya ) ; // perskaitykite taško A koordinates

scanf ("%lf%lf" , &xb , &yb ) ; // perskaitykite taško B koordinates

scanf ("%lf%lf" , &xc , &yc ) ; // perskaitykite taško C koordinates

scanf ("%lf%lf" , &xd , &yd ) ; // perskaitykite taško D koordinates

printf (f (xa , ya , xb , yb , xc , yc , xd , yd ) && f (xb , yb , xc , yc , xa , ya , xd , yd ) &&

f (xc, yc, xa, ya, xb, yb, xd, yd)? "taip" : "ne" );

grąžinti 0;

Spustelėkite, kad paleistumėte šį kodą.
Sunku pasakyti, ar kodas tapo aiškesnis, ar glaustesnis. Tačiau galime tvirtai pasakyti, kad jame nėra pasikartojančių algoritminių blokų. Visos kodo dalys parašytos tiksliai vieną kartą. Tai sumažina klaidos tikimybę.

Češyro kodas

Šiame kode yra konstrukcijų, kurių dar nestudijavote. Dėl to jis gali atrodyti šiek tiek paslaptingas. Bet jei ir toliau graužsi mokslo granitą, nesunkiai viską įvaldysi. Arba gali palaukti...


Gali būti per drąsu tai vadinti geras kodas, bet žengsime dar vieną žingsnį teisinga kryptimi. Ankstesniame kode mes atsikratėme algoritmo kodavimo pasikartojimų. Tačiau koduojant duomenis buvo pasikartojimų. Ar pastebėjote, kad turime keturias kintamųjų poras? Tie. matoma struktūra, susidedanti iš koordinačių poros x Ir y, kuris turėtų būti sujungtas ir vadinamas „tašku“. Tokios C programavimo struktūros aprašomos naudojant raktažodį struktūra. Tai naudinga tarpinė struktūra prieš pereinant prie objektinio programavimo su klasėmis.

Kodavimo taškų struktūra

#įtraukti

struct point(double x, y;);

struct point get()



Ar jums patiko straipsnis? Pasidalinkite su draugais!