Ispaniškas priekinis taikiklis dviems – kaip tai veikia moterų ir vyrų libido
Turinys Maisto papildas, pagamintas iš ispaninio vabalo (arba ispaninio vabalo...
Daugiakampių tema yra gvildenama mokyklos programoje, tačiau jai neskiriama pakankamai dėmesio. Tuo tarpu tai įdomu, o tai ypač pasakytina apie taisyklingą šešiakampį ar šešiakampį – juk daugelis gamtos objektų turi tokią formą. Tai apima korius ir daug daugiau. Ši forma labai gerai veikia praktikoje.
Taisyklingas šešiakampis yra plokštuma, turinti šešias vienodo ilgio kraštines ir vienodų kampų skaičių.
Jei prisimintume daugiakampio kampų sumos formulę
pasirodo, kad šiame paveiksle jis lygus 720°. Na, o kadangi visi figūros kampai yra lygūs, nesunku suskaičiuoti, kad kiekvienas iš jų lygus 120°.
Šešiakampį nupiešti labai paprasta, tereikia kompaso ir liniuotės.
Žingsnis po žingsnio instrukcijos atrodys taip:
Jei norite, galite apsieiti be linijos nubrėžę penkis vienodo spindulio apskritimus.
Taip gauta figūra bus taisyklingas šešiakampis, ir tai galima įrodyti žemiau.
Norint suprasti įprasto šešiakampio savybes, prasminga jį padalyti į šešis trikampius:
Tai padės ateityje aiškiau parodyti jo savybes, iš kurių pagrindinės yra:
Aplink šešiakampį galima apibūdinti apskritimą ir tik vieną. Kadangi ši figūra yra taisyklinga, tai galite padaryti gana paprastai: iš dviejų gretimų kampų viduje nubrėžkite bisektorių. Jie susikerta taške O ir kartu su kraštine tarp jų sudaro trikampį.
Kampai tarp šešiakampio kraštinės ir bisektorių bus 60°, todėl tikrai galime teigti, kad trikampis, pavyzdžiui, AOB, yra lygiašonis. Ir kadangi trečiasis kampas taip pat bus lygus 60°, jis taip pat yra lygiakraštis. Iš to išplaukia, kad atkarpos OA ir OB yra lygios, o tai reiškia, kad jos gali tarnauti kaip apskritimo spindulys.
Po to galite pereiti į kitą pusę, taip pat nubrėžti pusiausvyrą iš kampo taške C. Rezultatas bus dar vienas lygiakraštis trikampis, o kraštinė AB bus bendra abiem, o OS bus kitas spindulys, per kurį eina tas pats apskritimas. Tokių trikampių iš viso bus šeši, ir jie turės bendrą viršūnę taške O. Pasirodo, bus galima apibūdinti apskritimą, o jo yra tik vienas, o jo spindulys lygus kraštinei šešiakampis:
Štai kodėl šią figūrą galima sukonstruoti naudojant kompasą ir liniuotę.
Na, šio apskritimo plotas bus standartinis:
Apskritimo apskritimo centras sutaps su įbrėžto apskritimo centru. Norėdami tai patikrinti, galite nubrėžti statmenus nuo taško O iki šešiakampio kraštų. Tai bus trikampių, sudarančių šešiakampį, aukščiai. O lygiašonio trikampio aukštis yra mediana tos pusės, į kurią jis remiasi, atžvilgiu. Taigi šis aukštis yra ne kas kita, kaip statmenas bisektorius, kuris yra įbrėžto apskritimo spindulys.
Lygiakraščio trikampio aukštis apskaičiuojamas paprastai:
h²=а²-(а/2)²= а²3/4, h=а(√3)/2
O kadangi R=a ir r=h, išeina taip
r=R(√3)/2.
Taigi apskritimas eina per taisyklingo šešiakampio kraštinių centrus.
Jo plotas bus:
S=3πa²/4,
tai yra trys ketvirtadaliai to, kas aprašyta.
Su perimetru viskas aišku, tai kraštinių ilgių suma:
P=6a, arba P=6R
Bet plotas bus lygus visų šešių trikampių, į kuriuos galima padalyti šešiakampį, sumai. Kadangi trikampio plotas apskaičiuojamas kaip pusė pagrindo ir aukščio sandaugos, tada:
S=6(а/2)(а(√3)/2)= 6а²(√3)/4=3а²(√3)/2 arba
S=3R²(√3)/2
Norintys apskaičiuoti šį plotą per įbrėžto apskritimo spindulį, gali tai padaryti:
S=3(2r/√3)²(√3)/2=r²(2√3)
Trikampį galite sutalpinti į šešiakampį, kurio kraštinės sujungs viršūnes per vieną:
Iš viso jų bus du, o jų sutapimas suteiks Dovydo žvaigždę. Kiekvienas iš šių trikampių yra lygiakraštis. Tai nėra sunku patikrinti. Jei pažvelgsite į AC pusę, ji priklauso dviem trikampiams vienu metu - BAC ir AEC. Jei pirmajame iš jų AB = BC, o kampas tarp jų yra 120°, tai kiekvienas iš likusių bus 30°. Iš to galime padaryti logiškas išvadas:
Susikryžiavę vienas kitą, trikampiai sudaro naują šešiakampį, kuris taip pat yra taisyklingas. Tai įrodoma paprasčiausiai:
Taigi figūra atitinka taisyklingo šešiakampio charakteristikas – turi šešias vienodas puses ir kampus. Iš trikampių lygybės viršūnėse nesunku nustatyti naujojo šešiakampio kraštinės ilgį:
d=a(√3)/3
Tai taip pat bus aplink jį aprašyto apskritimo spindulys. Įrašytas spindulys bus pusė didelio šešiakampio kraštinės dydžio, o tai buvo įrodyta svarstant trikampį ABC. Jo aukštis yra lygiai pusė kraštinės, todėl antroji pusė yra apskritimo spindulys, įrašytas į mažą šešiakampį:
r₂=a/2
S=(3(√3)/2)(а(√3)/3)²=а(√3)/2
Pasirodo, šešiakampio plotas Dovydo žvaigždės viduje yra tris kartus mažesnis nei didžiojo, kuriame yra įrašyta žvaigždė.
Šešiakampio savybės labai aktyviai naudojamos tiek gamtoje, tiek įvairiose žmogaus veiklos srityse. Visų pirma, tai taikoma varžtams ir veržlėms - pirmojo ir antrojo galvutės yra ne kas kita, kaip įprastas šešiakampis, jei neatsižvelgsite į nuožulnius. Veržliarakčių dydis atitinka įrašyto apskritimo skersmenį – tai yra atstumą tarp priešingų kraštų.
Šešiakampės plytelės taip pat rado savo pritaikymą. Jis yra daug rečiau nei keturkampis, tačiau jį kloti patogiau: viename taške susitinka trys plytelės, o ne keturios. Kompozicijos gali pasirodyti labai įdomios:
Taip pat gaminamos betoninės plytelės grindiniui.
Šešiakampių paplitimas gamtoje yra tiesiog paaiškinamas. Taigi, apskritimus ir rutulius lengviausia tvirtai pritvirtinti plokštumoje, jei jų skersmuo yra vienodas. Dėl šios priežasties koriai turi tokią formą.
Taisyklingo šešiakampio, įbrėžto į apskritimą, konstrukcija. Taisyklingo penkiakampio konstravimas išilgai nurodytos pusės. Perkelkite kompaso adatą į ką tik nubrėžto lanko ir apskritimo susikirtimo tašką. Ši konstrukcija gali būti padaryta naudojant kvadratą ir kompasą. Įprastą šešiakampį galima pastatyti naudojant tiesią briauną ir 30x60° kvadratą. Sukurkite taisyklingo šešiakampio kampų viršūnių taškus.
Į apskritimą įbrėžto lygiašonio trikampio konstrukcija. Tokio trikampio viršūnes galima sukonstruoti naudojant kompasą ir kvadratą su 30 ir 60° kampais arba tik vieną kompasą. Norėdami sukurti 2-3 kraštinę, nustatykite skersinį strypą į punktyrinėmis linijomis parodytą padėtį ir per tašką 2 nubrėžkite tiesią liniją, kuri nustatys trečiąją trikampio viršūnę.
Apskritime pažymime tašką 1 ir laikome jį viena iš penkiakampio viršūnių. Tegu pateiktas D skersmens apskritimas; į jį reikia sutalpinti įprastą septyniakampį (65 pav.). Padalinkite vertikalų apskritimo skersmenį į septynias lygias dalis. Iš taško 7, kurio spindulys lygus apskritimo D skersmeniui, aprašome lanką, kol jis susikerta su horizontalaus skersmens tęsiniu taške F. Tašką F vadiname daugiakampio ašigaliu.
Pirmajame šios lentelės stulpelyje rodomas taisyklingo įbrėžto daugiakampio kraštinių skaičius, o antrame stulpelyje – koeficientai. Tam tikro daugiakampio kraštinės ilgis gaunamas duoto apskritimo spindulį padauginus iš koeficiento, atitinkančio šio daugiakampio kraštinių skaičių.
Šios vaizdo pamokos tema yra „Taisyklingų daugiakampių kūrimas“. Taip pat dar kartą apibrėžsime taisyklingąjį daugiakampį, pavaizduosime jį grafiškai, o tada dar kartą įsitikinsime, kad įbrėžto ir apibrėžiamo apskritimų centrai aplink tokią figūrą sutaps. Į šį daugiakampį visada galima įrašyti apskritimą, o aplink jį visada galima aprašyti apskritimą. Ankstesnių pamokų metu išsiaiškinome, kad jo kampų pusiausvyros ir statmenų į jo kraštines pusiausvyros vaidina pagrindinį vaidmenį aprašant daugiakampių savybes.
4. Gavome reikiamą taisyklingąjį trikampį ABC. Problema išspręsta. 3. Vieną kompaso koją padėję į savavališką apskritimo tašką A1, antrąja kojele pažymime tašką A2 tame pačiame apskritime ir sujungiame su tašku A1. Gauname pirmąją šešiakampio pusę. 3. Iš taško O nuleisto daugiakampio kraštinių statmenas pusiau padaliname visas jo kraštines ir visus tarp gretimų jo viršūnių aptverto apskritimo lankus.
Geometrinės konstrukcijos yra viena iš svarbių mokymosi dalių. Adata turi perdurti nubrėžtą liniją. Kuo tiksliau bus sumontuotas kompasas, tuo tikslesnė bus konstrukcija. Nubrėžkite kitą lanką, kertantį apskritimą. Visus šešis lankų susikirtimo taškus nuosekliai sujunkite su iš pradžių nubrėžtu apskritimu. Tokiu atveju šešiakampis gali pasirodyti neteisingas.
Rastas viršūnes jungiame nuosekliai viena su kita. Septynikampis gali būti sukonstruotas traukiant spindulius iš F ašigalio ir per nelyginius vertikalaus skersmens padalijimus. Abiejų apskritimų centrai sutampa (taškas O 1 pav.). Paveikslėlyje taip pat pavaizduoti apibrėžtojo (R) ir įbrėžto (r) apskritimų spinduliai.
Šešiakampio konstrukcija pagrįsta tuo, kad jo kraštinė yra lygi apibrėžto apskritimo spinduliui. Šioje pamokoje apžvelgsime būdus, kaip kompasu ir liniuote sudaryti taisyklingus daugiakampius. Antrasis metodas pagrįstas tuo, kad jei pastatysite taisyklingą šešiakampį, įrašytą į apskritimą, o tada sujungsite jo viršūnes per vieną, gausite lygiakraštį trikampį. Aukščiau pateiktas metodas tinka taisyklingiems daugiakampiams su bet kokiu kraštinių skaičiumi sudaryti.
Taisyklingo šešiakampio, įbrėžto į apskritimą, konstrukcija.Šešiakampio konstrukcija pagrįsta tuo, kad jo kraštinė yra lygi apibrėžto apskritimo spinduliui. Todėl jam sukonstruoti pakanka apskritimą padalinti į šešias lygias dalis ir rastus taškus sujungti vienas su kitu (60 pav., a).
Įprastą šešiakampį galima pastatyti naudojant tiesią briauną ir 30x60° kvadratą. Šiai konstrukcijai atlikti imame horizontalų apskritimo skersmenį kaip 1 ir 4 kampų pusiausvyrą (60 pav., b), sukonstruojame kraštines 1 -6, 4-3, 4-5 ir 7-2, po kurių nubrėžiame 5-6 ir 3-2 puses.
Į apskritimą įbrėžto lygiašonio trikampio konstravimas. Tokio trikampio viršūnes galima sukonstruoti naudojant kompasą ir kvadratą su 30 ir 60° kampais arba tik vieną kompasą.
Panagrinėkime du būdus, kaip sukurti lygiakraštį trikampį, įbrėžtą apskritime.
Pirmas būdas(61 pav.,a) pagrįsta tuo, kad visi trys trikampio 7, 2, 3 kampai turi 60°, o vertikali linija, nubrėžta per tašką 7, yra ir kampo 1 aukštis, ir pusiausvyra. yra 0-1- 2 yra lygus 30°, tada rasti kraštinę
1-2, pakanka sukonstruoti 30° kampą nuo 1 taško ir kraštinės 0-1. Norėdami tai padaryti, sumontuokite skersinį ir kvadratą, kaip parodyta paveikslėlyje, nubrėžkite 1-2 liniją, kuri bus viena iš norimo trikampio kraštinių. Norėdami sukurti 2-3 kraštinę, nustatykite skersinį strypą į punktyrinėmis linijomis parodytą padėtį ir per tašką 2 nubrėžkite tiesią liniją, kuri nustatys trečiąją trikampio viršūnę.
Antras būdas yra pagrįsta tuo, kad jei pastatysite taisyklingą šešiakampį, įrašytą į apskritimą, o tada sujungsite jo viršūnes per vieną, gausite lygiakraštį trikampį.
Norėdami sukurti trikampį (61 pav., b), pažymėkite skersmens viršūnę-tašką 1 ir nubrėžkite diametrinę liniją 1-4. Toliau nuo 4 taško, kurio spindulys lygus D/2, aprašome lanką, kol jis susikerta su apskritimu taškuose 3 ir 2. Gauti taškai bus kitos dvi norimo trikampio viršūnės.
Į apskritimą įbrėžto kvadrato konstravimas. Ši konstrukcija gali būti padaryta naudojant kvadratą ir kompasą.
Pirmasis metodas pagrįstas tuo, kad kvadrato įstrižainės susikerta apibrėžto apskritimo centre ir yra pasvirusios į jo ašis 45° kampu. Remdamiesi tuo, sumontuojame skersinį ir kvadratą su 45° kampais, kaip parodyta pav. 62, a ir pažymėkite taškus 1 ir 3. Toliau per šiuos taškus skersiniu brėžiame horizontalias kvadrato 4-1 ir 3-2 kraštines. Tada tiesiu kraštu nubrėžiame vertikalias kvadrato kraštines 1-2 ir 4-3 išilgai kvadrato kojos.
Antrasis metodas pagrįstas tuo, kad kvadrato viršūnės dalija apskritimo lankus, esančius tarp skersmens galų (62 pav., b). Dviejų tarpusavyje statmenų skersmenų galuose pažymime taškus A, B ir C ir nuo jų spinduliu y aprašome lankus, kol jie susikerta.
Toliau per lankų susikirtimo taškus nubrėžiame pagalbines tiesias linijas, pažymėtas paveiksle ištisinėmis linijomis. Jų susikirtimo su apskritimu taškai nulems 1 ir 3 viršūnes; 4 ir 2. Taip gauto norimo kvadrato viršūnes nuosekliai sujungiame viena su kita.
Taisyklingo penkiakampio, įbrėžto apskritime, konstrukcija.
Kad į apskritimą tilptų taisyklingas penkiakampis (63 pav.), darome tokias konstrukcijas.
Apskritime pažymime tašką 1 ir laikome jį viena iš penkiakampio viršūnių. Atkarpą AO padalijame per pusę. Norėdami tai padaryti, aprašome lanką nuo taško A spinduliu AO, kol jis susikerta su apskritimu taškuose M ir B. Sujungę šiuos taškus tiesia linija, gauname tašką K, kurį tada sujungiame su tašku 1. spindulys lygus atkarpai A7, aprašome lanką nuo taško K, kol jis susikerta su diametrine linija AO taške H. Sujungę tašką 1 su tašku H, gauname penkiakampio kraštinę. Tada, naudojant kompaso sprendinį, lygų atkarpai 1H, aprašant lanką nuo 1 viršūnės iki sankirtos su apskritimu, randame viršūnes 2 ir 5. Iš viršūnių 2 ir 5 tuo pačiu kompaso sprendimu padarę įpjovas, gauname likusią dalį. viršūnės 3 ir 4. Rastus taškus sujungiame nuosekliai vienas su kitu.
Taisyklingo penkiakampio konstravimas išilgai nurodytos pusės.
Norėdami sukonstruoti taisyklingą penkiakampį išilgai duotosios kraštinės (64 pav.), atkarpą AB padalijame į šešias lygias dalis. Iš taškų A ir B, kurių spindulys AB, aprašome lankus, kurių sankirta duos tašką K. Per šį tašką ir 3 padalą tiesėje AB nubrėžiame vertikalią liniją.
Gauname penkiakampio tašką-1 viršūnę. Tada spinduliu, lygiu AB, nuo taško 1 aprašome lanką, kol jis susikerta su lankais, anksčiau nubrėžtais iš taškų A ir B. Lankų susikirtimo taškai nustato penkiakampio viršūnes 2 ir 5. Rastas viršūnes sujungiame serijos tarpusavyje.
Taisyklingo septyniakampio, įbrėžto apskritime, konstrukcija.
Tegu pateiktas D skersmens apskritimas; į jį reikia sutalpinti įprastą septyniakampį (65 pav.). Padalinkite vertikalų apskritimo skersmenį į septynias lygias dalis. Iš taško 7, kurio spindulys lygus apskritimo D skersmeniui, aprašome lanką, kol jis susikerta su horizontalaus skersmens tęsiniu taške F. Tašką F vadiname daugiakampio ašigaliu. Laikydami VII tašką kaip vieną iš septynkampio viršūnių, iš poliaus F brėžiame spindulius per lygias vertikalaus skersmens padalijas, kurių susikirtimas su apskritimu nulems septynkampio VI, V ir IV viršūnes. Norėdami gauti viršūnes / - // - /// iš IV, V ir VI taškų, brėžkite horizontalias linijas, kol jos susikirs su apskritimu. Rastas viršūnes jungiame nuosekliai viena su kita. Septynikampis gali būti sukonstruotas traukiant spindulius iš F ašigalio ir per nelyginius vertikalaus skersmens padalijimus.
Aukščiau pateiktas metodas tinka taisyklingiems daugiakampiams su bet kokiu kraštinių skaičiumi sudaryti.
Apskritimą padalyti į bet kokį lygių dalių skaičių taip pat galima naudojant lentelės duomenis. 2, kuriame pateikiami koeficientai, leidžiantys nustatyti taisyklingų įrašytų daugiakampių kraštinių matmenis.
Geometrinės konstrukcijos yra viena iš pagrindinių mokymo dalių. Jie formuoja erdvinį ir loginį mąstymą, taip pat leidžia suprasti primityvų ir natūralų geometrinį pagrįstumą. Konstrukcijos daromos plokštumoje naudojant kompasą ir liniuotę. Šiais įrankiais galima sukurti daugybę geometrinių figūrų. Tuo pačiu metu daugelis figūrų, kurios atrodo gana sudėtingos, yra sukonstruotos naudojant paprasčiausias taisykles. Pavyzdžiui, kaip sukurti įprastą šešiakampį, galima apibūdinti keliais žodžiais.
Jums reikės
1. Nubrėžkite apskritimą. Nustatykite tam tikrą atstumą tarp kompaso kojų. Šis atstumas bus apskritimo spindulys. Spindulį pasirinkite taip, kad būtų gana patogu piešti apskritimą. Apskritimas turi visiškai tilpti ant popieriaus lapo. Per didelis arba per mažas atstumas tarp kompaso kojelių gali lemti jo pasikeitimą piešimo metu. Optimalus atstumas bus toks, kai kampas tarp kompaso kojų yra 15-30 laipsnių.
2. Sukurkite taisyklingo šešiakampio kampų viršūnių taškus. Padėkite kompaso koją, kurioje pritvirtinta adata, bet kuriame apskritimo taške. Adata turi perdurti nubrėžtą liniją. Kuo tiksliau bus sumontuotas kompasas, tuo tikslesnė bus konstrukcija. Nubrėžkite apskritimo lanką taip, kad jis kirstų anksčiau nubrėžtą apskritimą. Perkelkite kompaso adatą į ką tik nubrėžto lanko ir apskritimo susikirtimo tašką. Nubrėžkite kitą lanką, kertantį apskritimą. Vėl perkelkite kompaso adatą į lanko ir apskritimo susikirtimo tašką ir vėl nubrėžkite lanką. Pakartokite šį veiksmą dar tris kartus, judėdami viena kryptimi aplink apskritimą. Kiekvienas turi turėti šešis lankus ir šešis susikirtimo taškus.
3. Sukurkite teigiamą šešiakampį. Laipsniškai sujunkite visus šešis lankų susikirtimo taškus su iš pradžių nubrėžtu apskritimu. Sujunkite taškus tiesiomis linijomis, nubrėžtomis liniuote ir pieštuku. Po šių veiksmų bus gautas teisingas šešiakampis, įrašytas į apskritimą.
Šešiakampis Laikoma, kad daugiakampis turi šešis kampus ir šešias kraštines. Daugiakampiai gali būti išgaubti arba įgaubti. Išgaubto šešiakampio visi vidiniai kampai yra bukūs, o įgaubtas šešiakampis turi vieną ar daugiau smailių kampų. Šešiakampį gana lengva sukonstruoti. Tai atliekama keliais žingsniais.
Jums reikės
1. Paimkite popieriaus lapą ir pažymėkite jame 6 taškus, kaip parodyta pav. 1.
2. Pažymėję taškus, paimkite liniuotę ir pieštuką ir jų pagalba žingsnis po žingsnio vieną po kito sujunkite taškus, kaip atrodo pav. 2.
Video tema
Pastaba!
Visų šešiakampio vidinių kampų suma yra 720 laipsnių.
Šešiakampis yra daugiakampis, turintis šešis kampus. Norėdami nupiešti savavališką šešiakampį, turite atlikti 2 veiksmus.
Jums reikės
1. Į ranką reikia paimti pieštuką ir lape pažymėti 6 atsitiktinius taškus. Ateityje šie taškai atliks šešiakampio kampų vaidmenį. (1 pav.)
2. Paimkite liniuotę ir pagal šiuos taškus nubrėžkite 6 atkarpas, kurios susijungtų viena su kita išilgai anksčiau nubrėžtų taškų (2 pav.)
Video tema
Pastaba!
Ypatingas šešiakampio tipas yra teigiamas šešiakampis. Jis vadinamas tokiu, nes visos jo kraštinės ir kampai yra lygūs vienas kitam. Galite aprašyti arba įrašyti apskritimą aplink tokį šešiakampį. Verta pažymėti, kad taškuose, kurie buvo gauti palietus įrašytą apskritimą ir šešiakampio kraštines, teigiamo šešiakampio pusės yra padalintos per pusę.
Naudingas patarimas
Gamtoje teigiami šešiakampiai yra labai populiarūs. Pavyzdžiui, visas koris turi teigiamą šešiakampę formą. Arba grafeno kristalinė gardelė (anglies modifikacija) taip pat turi teigiamo šešiakampio formą.
Kaip sukurti vieną ar kitą kampas- didelis klausimas. Tačiau kai kuriais kampais užduotis yra nepastebimai supaprastinta. Vienas iš šių kampų yra kampas esant 30 laipsnių. Jis lygus?/6, tai yra, skaičius 30 yra daliklis iš 180. Be to, žinomas jo sinusas. Tai padeda jo statybai.
Jums reikės
1. Pirma, pažvelkime į ypač primityvią situaciją, kai rankose turite transporterį. Tada tiesią liniją, kurios kampas yra 30 laipsnių, galima lengvai atidėti su atrama.
2. Be transporterio, taip pat yra kampas arkos, kurių vienas kampas lygus 30 laipsnių. Tada kitą kampas kampas kampas bus lygus 60 laipsnių, tai yra, jums reikia vizualiai mažesnio kampas reikiamai tiesei nutiesti.
3. Dabar pereikime prie nereikšmingų būdų, kaip sukurti 30 laipsnių kampą. Kaip žinote, 30 laipsnių kampo sinusas yra lygus 1/2. Norėdami jį sukurti, turime statyti tiesiogiai kampas tionarys kampas nik. Gali būti, kad galime sukurti dvi statmenas tieses. Tačiau 30 laipsnių liestinė yra neracionalus skaičius, todėl galime tik apytiksliai apskaičiuoti santykį tarp kojų (išimtinai, jei nėra skaičiuoklės), ir todėl konstruoti kampas maždaug 30 laipsnių.
4. Tokiu atveju galima padaryti tikslią konstrukciją. Dar kartą sukonstruokime dvi statmenas tiesias linijas, ant kurių kojos bus tiesios kampas nogo kampas nik. Paguldykime vieną tiesią tam tikro ilgio koją BC kompaso atrama (B – tiesi kampas). Po to mes padidinsime ilgį tarp kompaso kojų 2 kartus, o tai yra elementaru. Tokio ilgio spinduliu nubrėžę apskritimą, kurio centras taške C, randame apskritimo susikirtimo tašką su kita tiese. Šis taškas bus tiesiogiai taškas A kampas nogo kampas ABC ir kampas A bus lygus 30 laipsnių.
5. Stačias kampas 30 laipsnių kampu leidžiama ir su apskritimo atrama, taikant kam jis lygus?/6. Sukonstruokime apskritimą, kurio spindulys OB. Pažiūrėkime į teoriją kampas nik, kur OA = OB = R – apskritimo spindulys, kur kampas OAB = 30 laipsnių. Tegu OE yra šio lygiašonio trikampio aukštis kampas nik, taigi ir jo pusiausvyra bei mediana. Tada kampas AOE = 15 laipsnių, o pagal pusės kampo formulę sin(15o) = (sqrt(3)-1)/(2*sqrt(2)). Vadinasi, AE = R*sin(15o). Vadinasi, AB = 2AE = 2R*sin(15o). Statydami BA spindulio apskritimą, kurio centras yra taške B, randame šio apskritimo susikirtimo tašką A su pradiniu. Kampas AOB bus 30 laipsnių.
6. Jei galime kokiu nors būdu nustatyti lankų ilgį, tada, atidėję ilgio lanką?*R/6, taip pat gausime kampas esant 30 laipsnių.
Pastaba!
Turime atsiminti, kad 5 pastraipoje kampą galime sukonstruoti tik apytiksliai, nes skaičiavimuose atsiras neracionalūs skaičiai.
Šešiakampis vadinamas ypatingu daugiakampio atvejis – figūra, sudaryta iš daugumos plokštumos taškų, apribota uždara poliline. Teigiamas šešiakampis (šešiakampis), savo ruožtu, taip pat yra ypatingas atvejis - tai daugiakampis su šešiomis vienodomis kraštinėmis ir vienodais kampais. Ši figūra reikšminga tuo, kad visų jos kraštinių ilgis yra lygus aplink figūrą aprašyto apskritimo spinduliui.
Jums reikės
1. Pasirinkite šešiakampio kraštinės ilgį. Paimkite kompasą ir nustatykite atstumą tarp adatos galo, esančio vienoje iš jos kojelių, ir laido galo, esančio kitoje kojoje, lygų piešiamos figūros kraštinės ilgiui. Norėdami tai padaryti, galite naudoti liniuotę arba pasirinkti atsitiktinį atstumą, jei šis momentas nėra reikšmingas. Jei įmanoma, pritvirtinkite kompaso kojeles varžtu.
2. Naudodami kompasą nubrėžkite apskritimą. Pasirinktas atstumas tarp kojų bus apskritimo spindulys.
3. Padalinkite apskritimą į šešias lygias dalis su taškais. Šie taškai bus šešiakampio kampų viršūnės ir atitinkamai segmentų galai, žymintys jo puses.
4. Padėkite kompaso koją su adata į savavališką tašką, esantį kontūro apskritimo linijoje. Adata turi tinkamai perdurti liniją. Konstrukcijos tikslumas tiesiogiai priklauso nuo kompaso įrengimo tikslumo. Kompasu nubrėžkite lanką taip, kad jis 2 taškuose kirstų pirmiausia nubrėžtą apskritimą.
5. Perkelkite kompaso koją su adata į vieną iš nubrėžto lanko susikirtimo su pradiniu apskritimu taškų. Nubrėžkite kitą lanką, taip pat kertantį apskritimą 2 taškais (vienas iš jų sutaps su ankstesnės kompaso adatos vietos tašku).
6. Tuo pačiu būdu perstatykite kompaso adatą ir dar keturis kartus nubrėžkite lankus. Perkelkite kompaso koją su adata viena kryptimi aplink apskritimą (visada pagal laikrodžio rodyklę arba prieš laikrodžio rodyklę). Dėl to turi būti nustatyti šeši lankų susikirtimo taškai su iš pradžių sukonstruotu apskritimu.
7. Nubrėžkite teigiamą šešiakampį. Pakopomis poromis sujunkite šešis taškus, gautus ankstesniame žingsnyje, su segmentais. Nubrėžkite segmentus pieštuku ir liniuote. Rezultatas bus teisingas šešiakampis. Baigę statyti, galite ištrinti pagalbinius elementus (lankus ir apskritimus).
Pastaba!
Tikslinga pasirinkti atstumą tarp kompaso kojelių, kad kampas tarp jų būtų 15-30 laipsnių, priešingai, darant konstrukcijas šis atstumas gali lengvai pasiklysti.
Statant ar rengiant namo projektavimo planus dažnai tenka statyti kampas, lygus esamam. Pavyzdžiai ir mokyklos geometrijos įgūdžiai padeda.
1. Kampą sudaro dvi tiesios linijos, kylančios iš vieno taško. Šis taškas bus vadinamas kampo viršūne, o linijos bus kampo kraštinės.
2. Kampams pavaizduoti naudokite tris raides: vieną viršuje, dvi šonuose. Skambino kampas, pradedant nuo raidės, kuri stovi vienoje pusėje, tada vadinama raidė, kuri stovi viršuje, o po to raidė kitoje pusėje. Naudokite kitus kampų žymėjimo būdus, jei jums patogiau priešais. Kartais įvardijama tik viena raidė, kuri yra viršuje. O kampus leidžiama žymėti graikiškomis raidėmis, tarkim, α, β, γ.
3. Būna situacijų, kai reikia piešti kampas, kad jis būtų lygus nurodytam kampui. Jei konstruojant brėžinį nėra galimybės naudoti transporterį, galite apsieiti tik su liniuote ir kompasu. Galima, tiesioje linijoje, pažymėtoje brėžinyje raidėmis MN, reikia statyti kampas taške K, kad jis būtų lygus kampui B. Tai yra, iš taško K reikia nubrėžti tiesią liniją, sudarytą su linija MN kampas, tas, kuris bus lygus kampui B.
4. Pirmiausia pažymėkite tašką visoje nurodyto kampo pusėje, tarkime, taškus A ir C, tada sujunkite taškus C ir A tiesia linija. Gaukite tre kampas nik ABC.
5. Dabar tiesėje MN pastatykite tą patį tre kampas kad jos viršūnė B būtų tiesėje taške K. Naudokite trikampio sudarymo taisyklę kampas iš trijų pusių. Atidėkite atkarpą KL nuo taško K. Jis turi būti lygus atkarpai BC. Gaukite L tašką.
6. Iš taško K nubrėžkite apskritimą, kurio spindulys lygus atkarpai BA. Iš L nubrėžkite apskritimą, kurio spindulys CA. Sujunkite gautą 2 apskritimų susikirtimo tašką (P) su K. Gaukite tris kampas nik KPL, tas, kuris bus lygus trims kampas ABC knyga. Štai kaip jūs gaunate kampas K. Jis bus lygus kampui B. Kad ši konstrukcija būtų patogesnė ir greitesnė, iš viršūnės B nubrėžkite lygias atkarpas, naudodamiesi vienu kompaso sprendimu, nejudindami kojų, apibūdinkite apskritimą tokiu pačiu spinduliu nuo taško K.
Video tema
Pastaba!
Venkite netyčia pakeisti atstumą tarp kompaso kojelių. Tokiu atveju šešiakampis gali pasirodyti neteisingas.
Naudingas patarimas
Jis turi gabumų daryti konstrukcijas naudojant kompasą su puikiai pagaląstu švinu. Taip konstrukcijos bus ypač tikslios.
Kai kuriuose žaidimuose naudojami šešiakampiai tinkleliai (šešiakampiai tinkleliai), tačiau jie nėra tokie paprasti ar įprasti kaip stačiakampiai tinkleliai. Beveik 20 metų rinkau išteklius apie šešiakampius tinklus ir parašiau šį vadovą apie pačius elegantiškiausius metodus, įgyvendintus paprasčiausiu kodu. Šiame straipsnyje plačiai naudojami Charleso Fu ir Clarko Verbrugge'o vadovai. Aprašysiu skirtingus šešiakampių tinklelių kūrimo būdus, jų ryšius ir dažniausiai naudojamus algoritmus. Daugelis šio straipsnio dalių yra interaktyvios: pasirinkus tinklelio tipą pakeičiamos atitinkamos diagramos, kodas ir tekstai. (Pastaba per.: tai taikoma tik originalui, patariu jį išstudijuoti. Vertime išsaugoma visa originalo informacija, bet be interaktyvumo.).
Straipsnyje pateikti kodo pavyzdžiai parašyti pseudokodu, todėl juos lengviau skaityti ir suprasti, kad galėtumėte parašyti savo įgyvendinimą.
Šešiakampiai plokščiomis (kairėje) ir aštriomis (dešinėje) viršūnėmis
Šešiakampiai turi 6 veidus. Kiekvienas veidas yra bendras dviem šešiakampiams. Šešiakampiai turi 6 kampinius taškus. Kiekvienas kampinis taškas yra bendras trims šešiakampiams. Daugiau apie centrus, kraštus ir kampinius taškus galite perskaityti mano straipsnyje apie tinklelio dalis (kvadratus, šešiakampius ir trikampius).
Funkcija šešioliktakampis(centras, dydis, i): var kampas_deg = 60 * i + 30 var kampas_rad = PI / 180 * kampas_deg. return Taškas(centras.x + dydis * cos(kampo_radas), centras.y + dydis * sin(kampo_radas) )
Norėdami užpildyti šešiakampį, turite gauti daugiakampio viršūnes nuo hex_corner(…, 0) iki hex_corner(…, 5). Norėdami nubrėžti šešiakampio kontūrą, turite naudoti šias viršūnes ir vėl nubrėžti liniją hex_corner(..., 0) .
Skirtumas tarp dviejų orientacijų yra tas, kad x ir y yra sukeisti, todėl keičiasi kampai: plokščių šešiakampių kampai yra 0°, 60°, 120°, 180°, 240°, 300° ir smailaus viršaus. šešiakampiai turi 30°, 90°, 150°, 210°, 270°, 330° kampus.
Šešiakampių kampai plokščiomis ir aštriomis viršūnėmis
Šešiakampio plotis plotis = sqrt(3)/2 * aukštis . Horizontalus atstumas tarp gretimų šešiakampių yra horiz = plotis .
Kai kuriuose žaidimuose šešiakampiams naudojamas pikselių piešinys, kuris tiksliai neatitinka įprastų šešiakampių. Šiame skyriuje aprašytos kampo ir išdėstymo formulės neatitiks tokių šešiakampių matmenų. Likusi straipsnio dalis, kurioje aprašomi šešiakampio tinklo algoritmai, taikoma, net jei šešiakampiai yra šiek tiek ištempti arba suspausti.
Horizontalus išdėstymas "nelyginis-r"
Horizontalus išdėstymas „lygus-r“
Vertikalus „nelyginis-q“ išdėstymas
Vertikalus išdėstymas „lyginis-q“
Paimkime kubelių tinklelį ir iškirpkimeįstrižainė plokštuma, kai x + y + z = 0. Tai keista idėja, tačiau ji padės mums supaprastinti šešiakampio tinklo algoritmus. Visų pirma, galėsime naudoti standartines operacijas iš Dekarto koordinačių: koordinačių sumavimą ir atėmimą, dauginimą ir padalijimą iš skaliarinio dydžio, taip pat atstumus.
Atkreipkite dėmesį į tris pagrindines kubelių tinklelio ašis ir jų santykį su šešiomis įstrižainėsšešiakampio tinklelio kryptys. Tinklelio įstrižainės ašys atitinka pagrindinę šešiakampio tinklelio kryptį.
Kadangi jau turime kvadratinių ir kubinių tinklų algoritmus, kubinių koordinačių naudojimas leidžia pritaikyti šiuos algoritmus šešiakampiams tinklams. Šią sistemą naudosiu daugeliui straipsnio algoritmų. Norėdami naudoti algoritmus su kita koordinačių sistema, aš konvertuoju kubines koordinates, paleidžiu algoritmą ir konvertuoju jas atgal.
Sužinokite, kaip veikia šešiakampio tinklo kubinės koordinatės. Kai pasirenkate šešiakampius, paryškinamos tris ašis atitinkančios kubinės koordinatės.
Yra daug skirtingų kubelių ir šešiakampių koordinačių sistemų. Kai kuriose iš jų sąlyga skiriasi nuo x + y + z = 0. Parodžiau tik vieną iš daugelio sistemų. Taip pat galite sukurti kubines koordinates su x-y , y-z , z-x , kurios turi savo įdomių savybių rinkinį, bet aš į jas čia nekalbėsiu.
Bet jūs galite ginčytis, kad nenorite saugoti 3 koordinačių skaičių, nes nežinote, kaip taip išsaugoti žemėlapį.
Yra daug kubinių koordinačių sistemų ir daug ašinių. Šiame vadove neaprašysiu visų derinių. Pasirinksiu du kintamuosius: q (stulpelis) ir r (eilutė). Šio straipsnio diagramose q atitinka x, o r atitinka z, tačiau ši atitiktis yra savavališka, nes galite pasukti ir pasukti diagramas, kad gautumėte skirtingas atitikties.
Šios sistemos pranašumas prieš poslinkio tinklelius yra tai, kad algoritmai yra suprantamesni. Sistemos trūkumas yra tas, kad laikyti stačiakampę kortelę yra šiek tiek keista; žr. skyrių apie žemėlapių išsaugojimą. Kai kurie algoritmai dar aiškesni kubinėmis koordinatėmis, bet kadangi turime sąlygą x + y + z = 0, galime apskaičiuoti trečiąją numanomą koordinatę ir naudoti ją šiuose algoritmuose. Savo projektuose ašis aš vadinu q, r, s, todėl sąlyga atrodo q + r + s = 0, o prireikus galiu apskaičiuoti s = -q - r.
Ašis yra kryptis, kuria didėja atitinkama koordinatė. Ašiai statmena yra linija, kurioje koordinatė išlieka pastovi. Aukščiau pateiktos tinklelio diagramos rodo statmenas linijas.
Ašinės koordinatės yra glaudžiai susijusios su kubinėmis koordinatėmis, todėl konvertavimas yra paprastas:
# konvertuoti kubas į ašines koordinates q = x r = z # konvertuoti ašines į kubines koordinates x = q z = r y = -x-z
Kode šios dvi funkcijos gali būti parašytos taip:
Funkcija cube_to_hex(h): # ašinis var q = h.x var r = h.z return Hex(q, r) funkcija hex_to_cube(h): # kubinis var x = h.q var z = h.r var y = -x-z return Cube(x, y) , z)
Poslinkio koordinatės yra šiek tiek sudėtingesnės:
Variantų kryptys = [ Kubas (+1, -1, 0), kubas (+1, 0, -1), kubas (0, +1, -1), kubas (-1, +1, 0), kubas ( -1, 0, +1), Cube(0, -1, +1) ] funkcija kubo_kryptis(kryptis): grįžimo krypčių funkcija cube_neighbor(hex, direction): return cube_add(hex, cube_direction(direction))
Kintamosios kryptys = [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex(0, +1) ] funkcija šešiolikta_kryptis(kryptis): grįžimo krypčių funkcija šešiolik._kaimynas(šeš., kryptis): var dir = hex_direction(direction) return Hex(hex.q + dir.q, hex.r + dir.r)
Kaip ir anksčiau, sukuriame skaičių lentelę, kurią reikia pridėti prie stulpelio ir eilutės . Tačiau šį kartą turėsime du masyvus, vieną – nelyginiams stulpeliams/eilutėms, o kitą – lyginiams. Pažvelkite į (1,1) aukščiau esančiame tinklelio paveikslėlyje ir pastebėkite, kaip keičiasi stulpelis ir eilutė judant kiekviena iš šešių krypčių. Dabar pakartokime procesą (2,2). Lentelės ir kodas skirsis kiekvienam iš keturių poslinkio tinklelių tipų; čia yra atitinkamas kiekvieno tinklelio tipo kodas.
Nelyginis-r
vari kryptys = [ [ Hex (+1, 0), Hex (0, -1), Hex (-1, -1), Hex (-1, 0), Hex (-1, +1), Hex (0 , +1) ], [ šešiolik. (+1, 0), šešiolik. (+1, -1), šešiolik. (0, -1), šešiolik. (-1, 0), šešiolik. (0, +1), šešiolik. +1, +1) ] ] funkcija offset_neighbor(hex, direction): var parity = šešiolikta.eilutė & 1 var dir = kryptys, grąžinamos šešioliktainis(šeš. eilė + dir.col, šešiolik. eilė + dir.eilutė)
Even-r
vari kryptys = [ [ Hex (+1, 0), Hex (+1, -1), Hex (0, -1), Hex (-1, 0), Hex (0, +1), Hex (+1 , +1) ], [ šešiolik. (+1, 0), šešiolik. (0, -1), šešiolik. (-1, -1), šešiolik. (-1, 0), šešiolik. (-1, +1), šešiolik. (0, +1) ] ] funkcija offset_neighbor(hex, direction): var parity = šešiolikta.eilutė & 1 var dir = kryptys, grąžinamos šešioliktainis(šeš. eilė + dir.col, šešiolik. eilė + dir.eilutė)
Tinklelis lyginėms (LYGINĖS) ir nelyginėms (ODD) eilutėms
Nelyginis-q
vari kryptys = [ [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, -1), Hex(-1, 0), Hex(0 , +1) ], [ šešiolik. (+1, +1), šešiolik. (+1, 0), šešiolik. (0, -1), šešiolik. (-1, 0), šešiolik. (-1, +1), šešiolik. (0, +1) ] ] funkcija offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)
Net-q
vari kryptys = [ [ Hex (+1, +1), Hex (+1, 0), Hex (0, -1), Hex (-1, 0), Hex (-1, +1), Hex (0 , +1) ], [ šešiolik. (+1, 0), šešiolik. (+1, -1), šešiolik. (0, -1), šešiolik. (-1, -1), šešiolik. (-1, 0), šešiolik. (0, +1) ] ] funkcija offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)
Tinklelis lyginiams (LYGINIAI) ir nelyginiams (ODD) stulpeliams
Kintamosios įstrižainės = [ Kubas (+2, -1, -1), kubas (+1, +1, -2), kubas (-1, +2, -1), kubas (-2, +1, +1 ), Cube(-1, -1, +2), Cube(+1, -2, +1) ] funkcija cube_diagonal_neighbor(hex, direction): return cube_add(hex, diagonals)
Kaip ir anksčiau, šias koordinates galime konvertuoti į ašines koordinates, atmetę vieną iš trijų koordinačių, arba konvertuoti jas į poslinkio koordinates, pirmiausia apskaičiuodami rezultatus.
Funkcija kubo_atstumas(a, b): grąža (abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z)) / 2
Šio žymėjimo atitikmuo būtų sakyti, kad viena iš trijų koordinačių turi būti kitų dviejų suma, o tada laikyti tai atstumu. Žemiau galite pasirinkti perpus arba didžiausios vertės formą, tačiau jos duoda tą patį rezultatą:
Funkcija kubo_atstumas(a, b): grąža maks.(abs(a.x – b.x), abs(a.y – b.y), abs(a.z – b.z))
Paveiksle didžiausios vertės paryškintos spalva. Taip pat atkreipkite dėmesį, kad kiekviena spalva reiškia vieną iš šešių „įstrižainės“ krypčių.
GIF
Funkcija šešiolik._atstumas(a, b): var ac = šešiolik._iki_kubo(a) var bc = šešiolik._iki_kubo(b) return kubo_atstumas(ac, bc)
Jei jūsų atveju kompiliatorius inline (inline) hex_to_cube ir cube_distance, tada jis sugeneruos tokį kodą:
Funkcija šešiolik._atstumas(a, b): grąža (abs(a.q - b.q) + abs(a.q + a.r - b.q - b.r) + abs(a.r - b.r)) / 2
Yra daug skirtingų būdų, kaip įrašyti atstumus tarp šešiakampių ašinėmis koordinatėmis, bet neatsižvelgiant į rašymo būdą atstumas tarp šešiakampių ašinėje sistemoje išgaunamas iš Manheteno atstumo kubinėje sistemoje. Pavyzdžiui, aprašytas „skirtumų skirtumas“ gaunamas rašant a.q + a.r - b.q - b.r kaip a.q - b.q + a.r - b.r ir vietoj pusiausvyros formos kubo_atstumas naudojant maksimalios reikšmės formą. Jie visi yra panašūs, jei matote ryšį su kubinėmis koordinatėmis.
Funkcija offset_distance(a, b): var ac = poslinkis_kubui(a) var bc = poslinkis_kubui(b) return cube_distance(ac, bc)
Daugeliui algoritmų naudosime tą patį modelį: konvertuosime iš šešiakampių į kubus, paleiskite kubinę algoritmo versiją ir konvertuosime kubinius rezultatus į šešiakampes koordinates (ašines arba poslinkio koordinates).
GIF
Funkcija lerp(a, b, t): // plūduriuojant grąžinama a + (b - a) * t funkcija cube_lerp(a, b, t): // šešiakampiams grąžinama Cube(lerp(a.x, b.x, t), lerp(a.y, b.y, t), lerp(a.z, b.z, t)) funkcija cube_linedraw(a, b): var N = kubo_atstumas(a, b) var rezultatai = kiekvienam 0 ≤ i ≤ N: results.append( cube_round(cube_lerp(a, b, 1.0/N * i))) grąžina rezultatus
Pastabos:
Atvirkščiai galime padaryti iš atstumo tarp šešiakampių formulės atstumas = max(abs(dx), abs(dy), abs(dz)) . Norint rasti visus šešiakampius N viduje, reikia max(abs(dx), abs(dy), abs(dz)) ≤ N . Tai reiškia, kad reikalingos visos trys reikšmės: abs(dx) ≤ N ir abs(dy) ≤ N ir abs(dz) ≤ N . Pašalinus absoliučiąją reikšmę, gauname -N ≤ dx ≤ N ir -N ≤ dy ≤ N ir -N ≤ dz ≤ N . Kode tai bus įdėtas ciklas:
Variklio rezultatai = kiekvienam -N ≤ dx ≤ N: kiekvienam -N ≤ dy ≤ N: kiekvienam -N ≤ dz ≤ N: jei dx + dy + dz = 0: rezultatai.append(cube_add(centras, Kubas(dx) , dy, dz)))
Šis ciklas veiks, bet bus gana neefektyvus. Iš visų dz reikšmių, kurias perkeliame, tik viena iš tikrųjų atitinka kubo sąlygą dx + dy + dz = 0. Vietoj to, mes tiesiogiai apskaičiuosime dz reikšmę, atitinkančią sąlygą:
Rezultatų kitimas = kiekvienam -N ≤ dx ≤ N: kiekvienam max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy rezultatai.append(cube_add( centras, kubas(dx, dy, dz)))
Šis ciklas eina tik pagal reikalingas koordinates. Paveiksle kiekvienas diapazonas yra eilučių pora. Kiekviena eilutė yra nelygybė. Imame visus šešiakampius, kurie tenkina šešias nelygybes.
GIF
Galite spręsti šią problemą algebros ar geometrijos požiūriu. Algebriškai kiekviena sritis išreiškiama kaip -N ≤ dx ≤ N formos nelygybės sąlygos, ir turime rasti šių sąlygų sankirtą. Geometriškai kiekviena sritis yra kubas 3D erdvėje, o mes susikirsime du kubus 3D erdvėje, kad gautume kuboidą 3D erdvėje. Tada projektuojame jį atgal į x + y + z = 0 plokštumą, kad gautume šešiakampius. Šį uždavinį išspręsiu algebriškai.
Pirmiausia perrašome sąlygą -N ≤ dx ≤ N bendresne forma x min ≤ x ≤ x max ir imkime x min = centras.x - N ir x max = centras.x + N . Padarykime tą patį su y ir z, gaudami bendrą kodo formą iš ankstesnio skyriaus:
Rezultatų kitimas = kiekvienam xmin ≤ x ≤ xmax: kiekvienam max(ymin, -x-zmax) ≤ y ≤ min(ymax, -x-zmin): var z = -x-y rezultatai.append(Cube(x, y, z))
Dviejų diapazonų a ≤ x ≤ b ir c ≤ x ≤ d sankirta yra max(a, c) ≤ x ≤ min(b, d) . Kadangi šešiakampių plotas išreiškiamas intervalais virš x, y, z, galime susikirsti kiekvieną diapazoną x, y, z atskirai ir tada naudoti įdėtą kilpą, kad sukurtume šešiakampių sankirtoje sąrašą. Vienam šešiakampių plotui imame x min = H.x - N ir x max = H.x + N , panašiai ir y ir z . Dviejų šešiakampių sričių sankirtai imame x min = max(H1.x - N, H2.x - N) ir x max = min (H1.x + N, H2.x + N), panašiai ir y ir z . Tas pats modelis veikia trijų ar daugiau sričių sankirtoje.
GIF
Funkcija cube_reachable(pradžia, judėjimas): var visited = set() pridėti pradžią prie aplanko var fringes = fringes.append() kiekvienam 1< k ≤ movement: fringes.append() for each cube in fringes: for each 0 ≤ dir < 6: var neighbor = cube_neighbor(cube, dir) if neighbor not in visited, not blocked: add neighbor to visited fringes[k].append(neighbor) return visited
Pasukus 60° į dešinę kiekviena koordinatė perkeliama viena padėtimi į dešinę:
[x, y, z] iki [-z, -x, -y]
60° pasukimas į kairę kiekviena koordinatė perkeliama viena padėtimi į kairę:
[x, y, z] į [-y, -z, -x]
Čia yra visa P padėties sukimosi aplink centrinę padėtį C seka, todėl atsiranda nauja padėtis R:
Funkcija cube_ring(centras, spindulys): var results = # šis kodas neveikia spinduliui == 0; supranti kodel? var kubas = kubas_pridėti(centras, kubo_mastas(kubo_kryptis(4), spindulys)) kiekvienam 0 ≤ i< 6:
for each 0 ≤ j < radius:
results.append(cube)
cube = cube_neighbor(cube, i)
return results
Šiame kode kubas prasideda nuo žiedo, pavaizduoto didele rodykle nuo centro iki diagramos kampo. Pradėti pasirinkau 4 kampą, nes jis atitinka kelią, kuriuo juda mano krypties skaičiai. Jums gali prireikti kitokio pradinio kampo. Kiekviename vidinės kilpos etape kubas perkelia vieną šešiakampį aplink žiedą. Po 6 * spindulio žingsnių jis atsiduria ten, kur ir pradėjo.
Funkcija cube_spiral(centras, spindulys): var rezultatai = kiekvienam 1 ≤ k ≤ spindulys: rezultatai = rezultatai + kubo_žiedas(centras, k) grąžina rezultatus
Tokiu būdu kertant šešiakampius, galima apskaičiuoti ir judėjimo diapazoną (žr. aukščiau).
Šis algoritmas gali būti lėtas dideliuose plotuose, tačiau jį lengva įgyvendinti, todėl rekomenduoju pradėti nuo jo.
GIF
Ateityje noriu išplėsti šį vadovą. Aš turiu