Beze "qabıqları" ilə qısa çörək peçenyeləri
Ah, beze!.. Yumşaq, xırtıldayan, xırtıldayan və ya əksinə yumşaq, içi pambıq konfet kimi və xırtıldayan qızılı qəhvəyi qabıqlı...
Çoxbucaqlılar mövzusu məktəb proqramında nəzərdə tutulur, lakin buna kifayət qədər diqqət yetirilmir. Bu arada, maraqlıdır və bu, xüsusilə adi altıbucaqlı və ya altıbucaqlı üçün doğrudur - axırda bir çox təbii obyektlər bu forma malikdir. Bunlara bal pətəkləri və daha çox şey daxildir. Bu forma praktikada çox yaxşı işləyir.
Düzgün altıbucaqlı, altı tərəfi bərabər uzunluğa və eyni sayda bərabər bucaqlara malik olan müstəvi fiqurdur.
Çoxbucaqlının bucaqlarının cəminin düsturunu xatırlasaq
məlum olur ki, bu rəqəmdə 720°-yə bərabərdir. Yaxşı, fiqurun bütün bucaqları bərabər olduğundan, onların hər birinin 120 ° -ə bərabər olduğunu hesablamaq çətin deyil.
Altıbucaqlı çəkmək çox sadədir, sizə lazım olan tək şey kompas və hökmdardır.
Addım-addım təlimat bu kimi görünəcək:
İstəyirsinizsə, bərabər radiuslu beş dairə çəkərək xəttsiz edə bilərsiniz.
Beləliklə alınan rəqəm müntəzəm altıbucaqlı olacaq və bunu aşağıda sübut etmək olar.
Müntəzəm altıbucağın xüsusiyyətlərini başa düşmək üçün onu altı üçbucağa bölmək məntiqlidir:
Bu, gələcəkdə xüsusiyyətlərini daha aydın göstərməyə kömək edəcək, bunlardan başlıcaları:
Bir altıbucaqlı ətrafında bir dairə təsvir edilə bilər və yalnız bir. Bu rəqəm müntəzəm olduğundan, bunu olduqca sadə edə bilərsiniz: içəridə iki bitişik küncdən bir bisektor çəkin. O nöqtəsində kəsişirlər və aralarındakı tərəflə birlikdə üçbucaq əmələ gətirirlər.
Altıbucaqlı tərəfi ilə bissektrisalar arasındakı bucaqlar 60° olacaq, buna görə də biz qəti şəkildə deyə bilərik ki, üçbucaq, məsələn, AOB ikitərəflidir. Üçüncü bucaq da 60°-yə bərabər olacağı üçün o da bərabərtərəflidir. Buradan belə çıxır ki, OA və OB seqmentləri bərabərdir, yəni onlar dairənin radiusu kimi xidmət edə bilər.
Bundan sonra, növbəti tərəfə keçə bilərsiniz, həmçinin C nöqtəsində bucaqdan bir bisektor çəkə bilərsiniz. Nəticə başqa bərabərtərəfli üçbucaq olacaq və AB tərəfi hər ikisi üçün ümumi olacaq və OS eyni dairənin keçdiyi növbəti radius olacaq. Ümumilikdə altı belə üçbucaq olacaq və onların O nöqtəsində ümumi təpəsi olacaq. Belə çıxır ki, çevrəni təsvir etmək mümkün olacaq və ondan yalnız biri var və onun radiusu tərəfinə bərabərdir. altıbucaqlı:
Məhz buna görə də kompas və hökmdardan istifadə edərək bu rəqəmi qurmaq mümkündür.
Yaxşı, bu dairənin sahəsi standart olacaq:
Dairənin mərkəzi yazılmış dairənin mərkəzi ilə üst-üstə düşəcək. Bunu yoxlamaq üçün O nöqtəsindən altıbucaqlının yanlarına perpendikulyar çəkə bilərsiniz. Onlar altıbucaqlını təşkil edən üçbucaqların hündürlükləri olacaq. Və ikitərəfli üçbucaqda hündürlük dayandığı tərəfə görə ortadır. Beləliklə, bu hündürlük içə çəkilmiş dairənin radiusu olan perpendikulyar bisektordan başqa bir şey deyil.
Bərabər üçbucağın hündürlüyü sadə hesablanır:
h²=а²-(а/2)²= а²3/4, h=а(√3)/2
Və R=a və r=h olduğundan belə çıxır ki
r=R(√3)/2.
Beləliklə, dairəvi düz altıbucaqlının tərəflərinin mərkəzlərindən keçir.
Onun sahəsi olacaq:
S=3πa²/4,
yəni təsvir edilənin dörddə üçü.
Perimetrlə hər şey aydındır, bu, tərəflərin uzunluqlarının cəmidir:
P=6a, və ya P=6R
Lakin sahə altıbucaqlının bölünə biləcəyi bütün altı üçbucağın cəminə bərabər olacaq. Üçbucağın sahəsi təməlin və hündürlüyün məhsulunun yarısı kimi hesablandığı üçün:
S=6(а/2)(а(√3)/2)= 6а²(√3)/4=3а²(√3)/2 və ya
S=3R²(√3)/2
Bu sahəni yazılmış dairənin radiusu ilə hesablamaq istəyənlər bunu edə bilərlər:
S=3(2r/√3)²(√3)/2=r²(2√3)
Üçbucağı altıbucaqlıya yerləşdirə bilərsiniz, bunun tərəfləri təpələri birindən birləşdirəcək:
Onlardan cəmi ikisi olacaq və onların üst-üstə düşməsi Davud Ulduzunu verəcək. Bu üçbucaqların hər biri bərabərtərəflidir. Bunu yoxlamaq çətin deyil. AC tərəfinə baxsanız, o, eyni anda iki üçbucağa aiddir - BAC və AEC. Əgər onlardan birincisində AB = BC və aralarındakı bucaq 120° olarsa, qalanların hər biri 30° olacaqdır. Buradan məntiqi nəticələr çıxara bilərik:
Bir-birini kəsən üçbucaqlar yeni altıbucaqlı əmələ gətirir və o da nizamlıdır. Bu, sadəcə olaraq sübut olunur:
Beləliklə, rəqəm müntəzəm altıbucaqlının xüsusiyyətlərinə cavab verir - onun altı bərabər tərəfi və bucağı var. Təpələrdəki üçbucaqların bərabərliyindən yeni altıbucaqlının yan uzunluğunu asanlıqla çıxarmaq olar:
d=a(√3)/3
O, həmçinin onun ətrafında təsvir edilən dairənin radiusu olacaq. Yazılı radius ABC üçbucağını nəzərdən keçirərkən sübut edilmiş böyük altıbucaqlının tərəfinin yarısı qədər olacaq. Onun hündürlüyü tərəfin tam yarısıdır, buna görə də ikinci yarısı kiçik altıbucaqlıda yazılmış dairənin radiusudur:
r₂=a/2
S=(3(√3)/2)(а(√3)/3)²=а(√3)/2
Məlum olub ki, Davud Ulduzunun içindəki altıbucaqlının sahəsi ulduzun yazıldığı böyükdən üç dəfə kiçikdir.
Altıbucaqlının xüsusiyyətləri həm təbiətdə, həm də insan fəaliyyətinin müxtəlif sahələrində çox fəal şəkildə istifadə olunur. Əvvəla, bu, boltlar və qoz-fındıqlara aiddir - birinci və ikincinin başları adi altıbucaqlıdan başqa bir şey deyil, əgər paxları nəzərə almasanız. Açarların ölçüsü yazılmış dairənin diametrinə, yəni əks kənarlar arasındakı məsafəyə uyğundur.
Altıbucaqlı plitələr də öz tətbiqini tapdı. Dördbucaqlıdan daha az yayılmışdır, lakin onu qoymaq daha rahatdır: üç plitə dörd deyil, bir nöqtədə görüşür. Kompozisiyalar çox maraqlı ola bilər:
Səki üçün beton plitələr də istehsal olunur.
Təbiətdə altıbucaqlıların yayılması sadəcə olaraq izah olunur. Beləliklə, dairələr və toplar eyni diametrə malikdirsə, onları bir müstəvidə sıx şəkildə yerləşdirmək ən asandır. Buna görə də pətəklər bu formaya malikdir.
Dairəyə yazılmış müntəzəm altıbucaqlının qurulması. Verilmiş tərəf boyunca düzgün beşbucaqlının qurulması. Kompas iynəsini dairə ilə yenicə çəkilmiş qövsün kəsişmə nöqtəsinə aparın. Bu tikinti kvadrat və kompasdan istifadə etməklə edilə bilər. Düz bir kənar və 30X60 ° kvadrat istifadə edərək müntəzəm altıbucaqlı tikilə bilər. Düzgün altıbucaqlının künclərinin təpə nöqtələrini qurun.
Bir dairəyə yazılmış bərabərtərəfli üçbucağın qurulması. Belə bir üçbucağın təpələri bir kompas və 30 və 60 ° bucaqları olan bir kvadrat və ya yalnız bir kompas istifadə edərək tikilə bilər. 2-3-cü tərəfi qurmaq üçün çarpaz çubuğu kəsilmiş xətlərlə göstərilən yerə qoyun və üçbucağın üçüncü təpəsini təyin edəcək 2-ci nöqtədən düz xətt çəkin.
Dairə üzərində 1-ci nöqtəni qeyd edirik və onu beşbucaqlının təpələrindən biri kimi qəbul edirik. D diametrli dairə verilsin; ona adi bir yedibucaq sığdırmaq lazımdır (şək. 65). Dairənin şaquli diametrini yeddi bərabər hissəyə bölün. D dairəsinin diametrinə bərabər radiusu olan 7-ci nöqtədən F nöqtəsində üfüqi diametrin davamı ilə kəsişənə qədər qövsü təsvir edirik. F nöqtəsini çoxbucaqlının qütbü adlandırırıq.
Bu cədvəlin birinci sütununda müntəzəm yazılmış çoxbucaqlının tərəflərinin sayı, ikinci sütununda isə əmsallar göstərilir. Verilmiş çoxbucaqlının yan uzunluğu verilmiş çevrənin radiusunu bu çoxbucaqlının tərəflərinin sayına uyğun əmsala vurmaqla əldə edilir.
Bu video dərsin mövzusu “Düzgün çoxbucaqlıların qurulması”dır. Biz də bir daha müntəzəm çoxbucaqlı müəyyənləşdirəcəyik, onu qrafik şəkildə təsvir edəcəyik və sonra belə bir fiqurun ətrafındakı yazılı və məhdud dairələrin mərkəzlərinin üst-üstə düşəcəyinə bir daha əmin olacağıq. Bu çoxbucaqlıda hər zaman bir dairə yazıla bilər və onun ətrafında həmişə bir dairə təsvir edilə bilər. Əvvəlki dərslər zamanı öyrəndik ki, çoxbucaqlıların xassələrinin təsvirində onun bucaqlarının bissektrisaları və tərəflərinə perpendikulyarların bissektrisaları əsas rol oynayır.
4. Tələb olunan müntəzəm ABC üçbucağını əldə etdik. Problem həll olunur. 3. Kompasın bir ayağını çevrənin ixtiyari A1 nöqtəsinə qoyub, ikinci ayağından istifadə edərək, eyni çevrədə A2 nöqtəsini qeyd edirik və onu A1 nöqtəsinə birləşdiririk. Altıbucaqlının birinci tərəfini alırıq. 3. O nöqtəsindən düşmüş çoxbucaqlının tərəflərinə perpendikulyar bissektrisalardan istifadə edərək onun bütün tərəflərini və ona bitişik təpələri arasında bağlanmış çevrənin bütün qövslərini yarıya bölürük.
Həndəsi konstruksiyalar öyrənmənin vacib hissələrindən biridir. İğnə çəkilmiş xətti deşməlidir. Kompas nə qədər dəqiq quraşdırılsa, tikinti daha dəqiq olacaqdır. Dairə ilə kəsişən başqa bir qövs çəkin. Ardıcıl olaraq qövslərin bütün altı kəsişmə nöqtəsini əvvəlcə çəkilmiş dairə ilə birləşdirin. Bu vəziyyətdə, altıbucaqlı səhv çıxa bilər.
Tapılmış təpələri ardıcıl olaraq bir-birinə bağlayırıq. F qütbündən şüalar çəkməklə və şaquli diametrin tək bölmələri vasitəsilə yeddibucaqlı qurmaq olar. Hər iki dairənin mərkəzləri üst-üstə düşür (şəkil 1-də O nöqtəsi). Şəkildə həm də əhatə olunmuş (R) və daxilə yazılmış (r) dairələrin radiusları göstərilir.
Altıbucaqlının qurulması onun tərəfinin əhatə olunmuş dairənin radiusuna bərabər olmasına əsaslanır. Bu dərsdə biz kompas və hökmdardan istifadə edərək müntəzəm çoxbucaqlıların qurulması yollarına baxacağıq. İkinci üsul, bir dairədə yazılmış müntəzəm altıbucaqlı qursanız və sonra onun təpələrini biri ilə birləşdirsəniz, bərabərtərəfli üçbucaq alacağınıza əsaslanır. Yuxarıdakı üsul istənilən sayda tərəfi olan müntəzəm çoxbucaqlıların qurulması üçün uyğundur.
Dairəyə yazılmış müntəzəm altıbucaqlının qurulması. Altıbucaqlının qurulması onun tərəfinin əhatə olunmuş dairənin radiusuna bərabər olmasına əsaslanır. Buna görə də, onu qurmaq üçün dairəni altı bərabər hissəyə bölmək və tapılan nöqtələri bir-birinə bağlamaq kifayətdir (şəkil 60, a).
Düz bir kənar və 30X60 ° kvadrat istifadə edərək müntəzəm altıbucaqlı tikilə bilər. Bu konstruksiyanı həyata keçirmək üçün dairənin üfüqi diametrini 1 və 4-cü bucaqların bisektoru kimi götürürük (Şəkil 60, b), tərəfləri 1 -6, 4-3, 4-5 və 7-2 qururuq, bundan sonra 5-6 və 3-2 tərəflərini çəkirik.
Bir dairəyə yazılmış bərabərtərəfli üçbucağın qurulması. Belə bir üçbucağın təpələri bir kompas və 30 və 60 ° bucaqları olan bir kvadrat və ya yalnız bir kompas istifadə edərək tikilə bilər.
Dairəyə yazılmış bərabərtərəfli üçbucağın qurulmasının iki yolunu nəzərdən keçirək.
Birinci yol(Şəkil 61,a) 7, 2, 3 üçbucağının hər üç bucağında 60° olması və 7 nöqtəsindən çəkilmiş şaquli xəttin 1-ci bucağın həm hündürlüyü, həm də bissektrisa olması faktına əsaslanır. 0-1- 2 isə 30°-yə bərabərdir, onda tərəfi tapmaq lazımdır
1-2, 1-ci nöqtədən və 0-1 tərəfdən 30 ° bir açı qurmaq kifayətdir. Bunu etmək üçün, şəkildə göstərildiyi kimi çarpaz çubuğu və kvadratı quraşdırın, istədiyiniz üçbucağın tərəflərindən biri olacaq 1-2 xəttini çəkin. 2-3-cü tərəfi qurmaq üçün çarpaz çubuğu kəsilmiş xətlərlə göstərilən yerə qoyun və üçbucağın üçüncü təpəsini təyin edəcək 2-ci nöqtədən düz xətt çəkin.
İkinci yol bir dairənin içinə yazılmış müntəzəm altıbucaqlı qursanız və sonra onun təpələrini biri vasitəsilə birləşdirsəniz, bərabərtərəfli üçbucaq alacağınıza əsaslanır.
Üçbucaq qurmaq üçün (şək. 61, b) diametrində təpə nöqtəsini 1 qeyd edin və 1-4 diametrli xətt çəkin. Sonra, radiusu D/2-yə bərabər olan 4-cü nöqtədən 3 və 2-ci nöqtələrdə dairə ilə kəsişənə qədər bir qövsü təsvir edirik. Nəticədə nöqtələr istənilən üçbucağın digər iki təpəsi olacaqdır.
Bir dairədə yazılmış kvadratın qurulması. Bu tikinti kvadrat və kompasdan istifadə etməklə edilə bilər.
Birinci üsul kvadratın diaqonallarının dairəvi dairənin mərkəzində kəsişməsinə və onun oxlarına 45° bucaq altında meyl etməsinə əsaslanır. Buna əsaslanaraq, Şəkil 1-də göstərildiyi kimi 45 ° açı ilə çarpaz çubuğu və kvadrat quraşdırırıq. 62, a və 1 və 3 nöqtələrini qeyd edin. Sonra, bu nöqtələr vasitəsilə çarpaz çubuğu istifadə edərək 4-1 və 3-2 kvadratının üfüqi tərəflərini çəkirik. Sonra düz bir kənardan istifadə edərək, kvadratın ayağı boyunca 1-2 və 4-3 kvadratın şaquli tərəflərini çəkirik.
İkinci üsul kvadratın təpələrinin diametrinin ucları arasında qapalı dairənin qövslərini ikiyə bölməsinə əsaslanır (şəkil 62, b). Qarşılıqlı perpendikulyar iki diametrin ucunda A, B və C nöqtələrini qeyd edirik və onlardan y radiuslu qövsləri bir-biri ilə kəsişənə qədər təsvir edirik.
Sonra, qövslərin kəsişmə nöqtələri vasitəsilə şəkildə bərk xətlərlə işarələnmiş köməkçi düz xətlər çəkirik. Onların dairə ilə kəsişmə nöqtələri 1 və 3 təpələrini təyin edəcək; 4 və 2. Bu şəkildə alınan istənilən kvadratın təpələrini bir-biri ilə ardıcıl olaraq birləşdiririk.
Dairəyə yazılmış müntəzəm beşbucağın qurulması.
Daimi beşbucaqlı bir dairəyə yerləşdirmək üçün (şək. 63) aşağıdakı konstruksiyaları yerinə yetiririk.
Dairə üzərində 1-ci nöqtəni qeyd edirik və onu beşbucaqlının təpələrindən biri kimi qəbul edirik. AO seqmentini yarıya bölürük. Bunun üçün A nöqtəsindən M və B nöqtələrində dairə ilə kəsişənə qədər radiusu AO olan bir qövsü təsvir edirik. Bu nöqtələri düz xəttlə birləşdirərək K nöqtəsini alırıq, sonra onu 1 nöqtəsinə birləşdiririk. A7 seqmentinə bərabər radius, K nöqtəsindən H nöqtəsində diametrik AO xətti ilə kəsişənə qədər bir qövs təsvir edirik. 1 nöqtəsini H nöqtəsi ilə birləşdirərək, beşbucağın tərəfini alırıq. Sonra, 1H seqmentinə bərabər olan kompas həllindən istifadə edərək, 1-ci təpədən dairə ilə kəsişməyə qədər bir qövsü təsvir edərək, 2 və 5-ci təpələri tapırıq. Eyni kompas həlli ilə 2 və 5 təpələrindən çentiklər düzəldərək, qalan hissəsini alırıq. təpələri 3 və 4. Tapılan nöqtələri ardıcıl olaraq bir-biri ilə əlaqələndiririk.
Verilmiş tərəf boyunca düzgün beşbucaqlının qurulması.
Verilmiş tərəfi boyunca düzgün beşbucaqlı qurmaq üçün (şək. 64) AB seqmentini altı bərabər hissəyə bölürük. Radiusu AB olan A və B nöqtələrindən kəsişməsi K nöqtəsini verəcək qövsləri təsvir edirik. Bu nöqtə və AB xəttinin 3-cü bölməsi vasitəsilə şaquli xətt çəkirik.
Beşbucaqlının 1-təpə nöqtəsini alırıq. Sonra radiusu AB-ə bərabər olan 1-ci nöqtədən əvvəl A və B nöqtələrindən çəkilmiş qövslərlə kəsişənə qədər qövsü təsvir edirik. Qövslərin kəsişmə nöqtələri 2 və 5-ci beşbucaqlı təpələri müəyyən edir. bir-biri ilə seriallar.
Dairəyə yazılmış müntəzəm yeddibucağın qurulması.
D diametrli dairə verilsin; ona adi bir yedibucaq sığdırmaq lazımdır (şək. 65). Dairənin şaquli diametrini yeddi bərabər hissəyə bölün. D dairəsinin diametrinə bərabər radiusu olan 7-ci nöqtədən F nöqtəsində üfüqi diametrin davamı ilə kəsişənə qədər qövsü təsvir edirik. F nöqtəsini çoxbucaqlının qütbü adlandırırıq. VII nöqtəni yeddibucağın təpələrindən biri kimi götürərək, F qütbündən şaquli diametrin bərabər bölmələri vasitəsilə şüalar çəkirik, onların dairə ilə kəsişməsi yeddibucağın VI, V və IV təpələrini təyin edəcəkdir. IV, V və VI nöqtələrdən / - // - /// təpələrini əldə etmək üçün dairə ilə kəsişənə qədər üfüqi xətlər çəkin. Tapılmış təpələri ardıcıl olaraq bir-birinə bağlayırıq. F qütbündən şüalar çəkməklə və şaquli diametrin tək bölmələri vasitəsilə yeddibucaqlı qurmaq olar.
Yuxarıdakı üsul istənilən sayda tərəfi olan müntəzəm çoxbucaqlıların qurulması üçün uyğundur.
Dairənin istənilən sayda bərabər hissələrə bölünməsi də Cədvəldəki məlumatlardan istifadə etməklə həyata keçirilə bilər. 2, müntəzəm yazılmış çoxbucaqlıların tərəflərinin ölçülərini təyin etməyə imkan verən əmsalları təmin edir.
Həndəsi konstruksiyalar təlimin əsas hissələrindən biridir. Onlar məkan və məntiqi təfəkkür formalaşdırır, həmçinin primitiv və təbii həndəsi etibarlılığı anlamağa imkan verir. Konstruksiyalar bir kompas və hökmdardan istifadə edərək bir təyyarədə aparılır. Bu alətlər çoxlu sayda həndəsi fiqurların qurulması üçün istifadə edilə bilər. Eyni zamanda, olduqca çətin görünən bir çox fiqurlar ən sadə qaydalardan istifadə etməklə qurulur. Məsələn, adi altıbucaqlının necə qurulacağını bir neçə sözlə təsvir etmək olar.
Sizə lazım olacaq
1. Bir dairə çəkin. Kompasın ayaqları arasında bir az məsafə qoyun. Bu məsafə dairənin radiusu olacaq. Radiusu elə seçin ki, dairə çəkmək kifayət qədər rahat olsun. Dairə tamamilə kağız vərəqinə uyğun olmalıdır. Kompasın ayaqları arasında çox böyük və ya çox kiçik məsafə rəsm zamanı onun dəyişməsinə səbəb ola bilər. Optimal məsafə, kompasın ayaqları arasındakı bucağın 15-30 dərəcə olduğu yerdə olacaqdır.
2. Düzgün altıbucaqlının künclərinin təpə nöqtələrini qurun. İğnənin sabitləndiyi kompasın ayağını dairənin istənilən nöqtəsinə qoyun. İğnə çəkilmiş xətti deşməlidir. Kompas nə qədər dəqiq quraşdırılsa, tikinti daha dəqiq olacaqdır. Əvvəllər çəkilmiş dairə ilə kəsişməsi üçün dairəvi bir qövs çəkin. Kompas iynəsini dairə ilə yenicə çəkilmiş qövsün kəsişmə nöqtəsinə aparın. Dairə ilə kəsişən başqa bir qövs çəkin. Kompas iynəsini yenidən qövslə dairənin kəsişmə nöqtəsinə aparın və qövsü yenidən çəkin. Bu hərəkəti daha üç dəfə təkrarlayın, dairənin ətrafında bir istiqamətdə hərəkət edin. Hər birində altı qövs və altı kəsişmə nöqtəsi olmalıdır.
3. Müsbət altıbucaqlı qurun. Qövslərin bütün altı kəsişmə nöqtəsini əvvəlcə çəkilmiş dairə ilə addım-addım birləşdirin. Nöqtələri bir hökmdar və qələm istifadə edərək çəkilmiş düz xətlərlə birləşdirin. Bu hərəkətlərdən sonra bir dairəyə yazılmış düzgün altıbucaqlı alınacaq.
AltıbucaqlıÇoxbucaqlının altı bucağı və altı tərəfi olduğu hesab edilir. Çoxbucaqlılar qabarıq və ya konkav ola bilər. Qabarıq altıbucaqlının bütün daxili bucaqları küt, konkav altıbucaqlının isə bir və ya daha çox iti bucaqları var. Altıbucaqlı qurmaq olduqca asandır. Bu bir neçə addımda edilir.
Sizə lazım olacaq
1. Bir vərəq götürün və Şəkildə göstərildiyi kimi təxminən 6 nöqtəni qeyd edin. 1.
2. Nöqtələr qeyd edildikdən sonra bir hökmdar və qələm götürün və onların köməyi ilə addım-addım, bir-birinin ardınca nöqtələri şəkildəki kimi birləşdirin. 2.
Mövzu ilə bağlı video
Qeyd!
Altıbucaqlının bütün daxili bucaqlarının cəmi 720 dərəcədir.
Altıbucaqlı altı bucağı olan çoxbucaqlıdır. İxtiyari altıbucaqlı çəkmək üçün hər biri 2 addım yerinə yetirmək lazımdır.
Sizə lazım olacaq
1. Əlinizə bir qələm götürməlisiniz və vərəqdə 6 təsadüfi nöqtəni qeyd etməlisiniz. Gələcəkdə bu nöqtələr altıbucaqlı künclərin rolunu oynayacaqdır. (Şəkil 1)
2. Bir hökmdar götürün və əvvəllər çəkilmiş nöqtələr boyunca bir-birinə bağlanacaq bu nöqtələr əsasında 6 seqment çəkin (şəkil 2).
Mövzu ilə bağlı video
Qeyd!
Altıbucaqlının xüsusi növü müsbət altıbucaqlıdır. Bütün tərəfləri və bucaqları bir-birinə bərabər olduğu üçün belə adlanır. Belə bir altıbucaqlı ətrafında bir dairəni təsvir edə və ya yaza bilərsiniz. Qeyd etmək lazımdır ki, həkk olunmuş dairəyə və altıbucaqlının tərəflərinə toxunmaqla əldə edilən nöqtələrdə müsbət altıbucaqlının tərəfləri yarıya bölünür.
Faydalı məsləhət
Təbiətdə müsbət altıbucaqlılar çox məşhurdur. Məsələn, bütün pətək müsbət altıbucaqlı formaya malikdir. Və ya qrafenin (karbon modifikasiyası) kristal qəfəsi də müsbət altıbucaqlı formaya malikdir.
Bir və ya digərini necə qurmaq olar künc- böyük sual. Ancaq bəzi bucaqlar üçün tapşırıq görünməz şəkildə sadələşdirilmişdir. Bu açılardan biri künc 30 dərəcədə. ?/6-ya bərabərdir, yəni 30 rəqəmi 180-in bölənidir. Üstəlik, onun sinusu məlumdur. Bu onun qurulmasına kömək edir.
Sizə lazım olacaq
1. Birincisi, əlinizdə bir iletki olduqda, xüsusilə primitiv bir vəziyyətə baxaq. Sonra 30 dərəcə bucaq altında bir düz xətt onun dəstəyi ilə asanlıqla kənara qoyula bilər.
2. iletki ilə yanaşı, həmçinin var künc bucaqlarından biri 30 dərəcəyə bərabər olan tağlar. Sonra başqa künc künc bucaq 60 dərəcəyə bərabər olacaq, yəni vizual olaraq daha kiçik lazımdır künc tələb olunan düz xətti qurmaq.
3. İndi 30 dərəcə bucaq qurmaq üçün qeyri-trivial üsullara keçək. Bildiyiniz kimi, 30 dərəcə bucağın sinusu 1/2-ə bərabərdir. Onu qurmaq üçün biz birbaşa qurmalıyıq künc tionary künc nik. Mümkündür ki, iki perpendikulyar xətt qura bilərik. Ancaq 30 dərəcə tangensi irrasional bir ədəddir, buna görə də ayaqlar arasındakı nisbəti yalnız təxminən hesablaya bilərik (yalnız kalkulyator olmadıqda) və buna görə də qura bilərik. künc təxminən 30 dərəcə.
4. Bu vəziyyətdə dəqiq bir tikinti etmək mümkündür. Yenidən ayaqların düz yerləşəcəyi iki perpendikulyar düz xətt çəkək künc getmə künc nik. Bir kompasın dəstəyi ilə müəyyən uzunluqda BC düz bir ayağını qoyaq (B - düz künc). Bundan sonra, kompasın ayaqları arasındakı uzunluğu 2 dəfə artıracağıq, bu da elementardır. Bu uzunluqda radiuslu C nöqtəsində mərkəzi olan bir dairə çəkərək, dairənin başqa bir düz xətt ilə kəsişmə nöqtəsini tapırıq. Bu nöqtə birbaşa A nöqtəsi olacaqdır künc getmə künc ABC və künc A 30 dərəcəyə bərabər olacaq.
5. Dik künc 30 dərəcədə icazə verilir və dairənin dəstəyi ilə nəyə bərabərdir?/6. Radiusu OB olan bir dairə quraq. Gəlin nəzəriyyəyə baxaq künc nik, burada OA = OB = R – çevrənin radiusu, burada künc OAB = 30 dərəcə. OE bu ikitərəfli üçbucağın hündürlüyü olsun künc nik və deməli, onun bissektrisa və medianı. Sonra künc AOE = 15 dərəcə və yarımbucaq düsturuna görə sin(15o) = (sqrt(3)-1)/(2*sqrt(2)). Nəticədə, AE = R*sin(15o). Deməli, AB = 2AE = 2R*sin(15o). Mərkəzi B nöqtəsində olan radiuslu BA çevrəsini qurmaqla bu çevrənin başlanğıcı ilə A kəsişmə nöqtəsini tapırıq. AOB bucağı 30 dərəcə olacaq.
6. Əgər qövslərin uzunluğunu müəyyən bir şəkildə müəyyən edə bilsək, uzunluqlu bir qövsü kənara qoyaraq, biz də əldə edirik?*R/6 künc 30 dərəcədə.
Qeyd!
Yadda saxlamalıyıq ki, 5-ci bənddə yalnız təqribən bucağı qura bilərik, çünki hesablamalarda irrasional ədədlər görünəcək.
Altıbucaqlıçoxbucaqlının xüsusi halı adlanır - qapalı çoxbucaqlı ilə məhdudlaşan təyyarənin əksər nöqtələrinin yaratdığı fiqur. Müsbət altıbucaqlı (altıbucaqlı) da öz növbəsində xüsusi haldır - bu, altı bərabər tərəfi və bərabər açıları olan çoxbucaqlıdır. Bu rəqəm əhəmiyyətlidir ki, onun bütün tərəflərinin uzunluğu rəqəmin ətrafında təsvir olunan dairənin radiusuna bərabərdir.
Sizə lazım olacaq
1. Altıbucaqlının yan uzunluğunu seçin. Bir kompas götürün və ayaqlarından birində yerləşən iynənin ucu ilə digər ayağında yerləşən qurğuşun ucu arasında çəkilən fiqurun tərəfinin uzunluğuna bərabər olan məsafəni təyin edin. Bunu etmək üçün, bir hökmdardan istifadə edə bilərsiniz və ya bu an əhəmiyyətli deyilsə, təsadüfi bir məsafə seçə bilərsiniz. Mümkünsə, kompasın ayaqlarını bir vida ilə bərkidin.
2. Kompasdan istifadə edərək bir dairə çəkin. Ayaqlar arasında seçilmiş məsafə dairənin radiusu olacaqdır.
3. Dairəni nöqtələrlə altı bərabər hissəyə bölün. Bu nöqtələr altıbucaqlının künclərinin təpələri və müvafiq olaraq onun tərəflərini təmsil edən seqmentlərin ucları olacaqdır.
4. Kompasın ayağını iynə ilə göstərilən dairənin xəttində yerləşən ixtiyari bir nöqtəyə qoyun. İğnə xətti düzgün deşməlidir. Tikintinin düzgünlüyü birbaşa kompasın quraşdırılmasının düzgünlüyündən asılıdır. Kompasla elə bir qövs çəkin ki, birinci çəkilmiş dairəni 2 nöqtədə kəssin.
5. Kompasın ayağını iynə ilə çəkilmiş qövsün orijinal dairə ilə kəsişmə nöqtələrindən birinə köçürün. Dairəni 2 nöqtədə kəsərək başqa bir qövs çəkin (onlardan biri kompas iynəsinin əvvəlki yerinin nöqtəsi ilə üst-üstə düşəcəkdir).
6. Eyni şəkildə, kompas iynəsini yenidən düzəldin və daha dörd dəfə qövslər çəkin. Kompasın ayağını iynə ilə dairənin ətrafında bir istiqamətə (saat yönünün əksinə və ya əksinə) hərəkət etdirin. Nəticədə, ilkin qurulmuş dairə ilə qövslərin kəsişməsinin altı nöqtəsi müəyyən edilməlidir.
7. Müsbət altıbucaqlı çəkin. Addım-addım, cüt-cüt, əvvəlki addımda əldə edilən altı nöqtəni seqmentlərlə birləşdirin. Qələm və hökmdardan istifadə edərək seqmentləri çəkin. Nəticə düzgün altıbucaqlı olacaq. Tikinti başa çatdıqdan sonra köməkçi elementləri (qövslər və dairələr) silə bilərsiniz.
Qeyd!
Kompasın ayaqları arasında elə bir məsafə seçmək məntiqlidir ki, aralarındakı bucaq 15-30 dərəcə olsun, əksinə, konstruksiyalar edərkən bu məsafə asanlıqla itirə bilər.
Ev dizayn planlarını qurarkən və ya inkişaf etdirərkən, tez-tez qurmaq lazımdır künc, mövcud olana bərabərdir. Nümunələr və məktəb həndəsə bacarıqları dəstək üçün gəlir.
1. Bucaq bir nöqtədən çıxan iki düz xəttdən əmələ gəlir. Bu nöqtə bucağın təpəsi adlanacaq, xətlər isə bucağın tərəfləri olacaqdır.
2. Küncləri təmsil etmək üçün üç hərfdən istifadə edin: biri yuxarıda, ikisi yanlarda. Zəng etdi künc, bir tərəfdə duran hərfdən başlayaraq, yuxarıda duran hərf, ondan sonra isə digər tərəfdəki hərf deyilir. Qarşınızda daha rahatsınızsa, küncləri işarələmək üçün digər üsullardan istifadə edin. Bəzən yuxarıda yerləşən yalnız bir hərf adlanır. Və bucaqları yunan hərfləri ilə qeyd etməyə icazə verilir, məsələn, α, β, γ.
3. Çəkmək lazım olan vəziyyətlər var künc, belə ki, verilmiş bucağa bərabər olsun. Rəsm qurarkən iletkidən istifadə etmək şansınız yoxdursa, yalnız bir hökmdar və kompasla keçə bilərsiniz. Mümkündür ki, rəsmdə MN hərfləri ilə göstərilən düz xətt üzərində qurmaq lazımdır künc K nöqtəsində B bucağına bərabər olsun. Yəni K nöqtəsindən MN xətti ilə əmələ gələn düz xətt çəkmək lazımdır. künc, B bucağına bərabər olacaq biri.
4. Əvvəlcə verilmiş bucağın bütün tərəfində bir nöqtəni qeyd edin, məsələn, A və C nöqtələrini, sonra C və A nöqtələrini düz xətt ilə birləşdirin. Tre alın künc nik ABC.
5. İndi eyni tre-ni MN düz xəttində qurun künc belə ki, onun B təpəsi K nöqtəsindəki xətt üzərində olsun. Üçbucaq qurmaq üçün qaydadan istifadə edin küncüç tərəfdən. K nöqtəsindən KL seqmentini kəsin. BC seqmentinə bərabər olmalıdır. L nöqtəsini alın.
6. K nöqtəsindən BA seqmentinə bərabər radiuslu bir dairə çəkin. L-dən CA radiusu olan bir dairə çəkin. 2 dairənin kəsişməsinin nəticə nöqtəsini (P) K ilə birləşdirin. Üç alın künc nik KPL, üçə bərabər olacaq bir künc ABC kitab. Bu şəkildə əldə edirsiniz künc K. B bucağına bərabər olacaq. Bu konstruksiyanı daha rahat və daha sürətli etmək üçün B təpəsindən bərabər seqmentləri ayırın, bir kompas həllindən istifadə edərək, ayaqları hərəkət etdirmədən K nöqtəsindən eyni radiuslu dairəni təsvir edin.
Mövzu ilə bağlı video
Qeyd!
Kompasın ayaqları arasındakı məsafəni təsadüfən dəyişdirməkdən çəkinin. Bu vəziyyətdə, altıbucaqlı səhv çıxa bilər.
Faydalı məsləhət
Mükəmməl itilənmiş qurğuşunla kompasdan istifadə edərək konstruksiyalar hazırlamaq bacarığına malikdir. Bu şəkildə konstruksiyalar xüsusilə dəqiq olacaqdır.
Altıbucaqlı torlar (altıbucaqlı ızgaralar) bəzi oyunlarda istifadə olunur, lakin onlar düzbucaqlı torlar qədər sadə və ya ümumi deyil. Mən demək olar ki, 20 ildir ki, altıbucaqlı şəbəkələrdə resurslar toplayıram və bu təlimatı ən sadə kodda həyata keçirilən ən zərif yanaşmalara yazdım. Bu məqalə Çarlz Fu və Klark Verbruggenin bələdçilərindən geniş istifadə edir. Mən altıbucaqlı meshlərin yaradılmasının müxtəlif yollarını, onların əlaqələrini və ən ümumi alqoritmləri təsvir edəcəyəm. Bu məqalənin bir çox hissəsi interaktivdir: şəbəkə növünün seçilməsi müvafiq diaqramları, kodu və mətnləri dəyişir. (Qeyd üçün.: bu yalnız orijinala aiddir, onu öyrənməyi məsləhət görürəm. Tərcümədə orijinalın bütün məlumatları qorunub saxlanılır, lakin interaktivlik yoxdur.).
Məqalədəki kod nümunələri pseudocode ilə yazılmışdır, buna görə də öz tətbiqinizi yazmaq üçün onları oxumaq və başa düşmək daha asandır.
Düz (sol) və kəskin (sağ) zirvələri olan altıbucaqlılar
Altıbucaqlıların 6 üzü var. Hər üz iki altıbucaqlı üçün ümumidir. Altıbucaqlıların 6 künc nöqtəsi var. Hər künc nöqtəsi üç altıbucaqlı üçün ümumidir. Mesh hissələri (kvadratlar, altıbucaqlılar və üçbucaqlar) haqqında məqaləmdə mərkəzlər, kənarlar və künc nöqtələri haqqında daha çox oxuya bilərsiniz.
Hex_corner funksiyası(mərkəz, ölçü, i): var açı_deq = 60 * i + 30 var açı_rad = PI / 180 * bucaq_deq qayıdış Nöqtəsi (center.x + size * cos(angle_rad), center.y + size * sin(angle_rad) )
Altıbucaqlını doldurmaq üçün çoxbucaqlının təpələrini hex_corner(…, 0)-dan hex_corner(…, 5) almalısınız. Altıbucaqlının konturunu çəkmək üçün bu təpələrdən istifadə etməli və sonra hex_corner(..., 0) xəttinə yenidən xətti çəkməlisiniz.
İki oriyentasiya arasındakı fərq ondan ibarətdir ki, x və y dəyişdirilir, nəticədə bucaqlar dəyişir: düz üstü altıbucaqlılar 0°, 60°, 120°, 180°, 240°, 300° və sivri uclu bucaqlara malikdir. altıbucaqlıların 30°, 90°, 150°, 210°, 270°, 330° bucaqları var.
Düz və iti zirvələri olan altıbucaqlıların küncləri
Altıbucaqlı eni eni = sqrt(3)/2 * hündürlük . Qonşu altıbucaqlılar arasındakı üfüqi məsafə horiz = endir.
Bəzi oyunlar altıbucaqlılar üçün piksel sənətindən istifadə edir ki, bu da adi altıbucaqlılara tam uyğun gəlmir. Bu bölmədə təsvir edilən bucaq və yerləşdirmə düsturları belə altıbucaqlıların ölçülərinə uyğun gəlməyəcək. Hex mesh alqoritmlərini təsvir edən məqalənin qalan hissəsi altıbucaqlılar bir az dartılmış və ya sıxılmış olsa belə tətbiq olunur.
Üfüqi düzülmə "tək-r"
Üfüqi düzülmə “cüt-r”
Şaquli "tək-q" düzülüşü
Şaquli düzülüşü "cüt-q"
Gəlin kublar şəbəkəsini götürək və onu kəsək x + y + z = 0-da diaqonal müstəvi. Bu qəribə fikirdir, lakin altıbucaqlı mesh alqoritmlərini sadələşdirməyə kömək edəcək. Xüsusilə, biz Dekart koordinatlarından standart əməliyyatlardan istifadə edə biləcəyik: koordinatların cəmlənməsi və çıxarılması, skalyar kəmiyyətə vurulması və bölünməsi, həmçinin məsafələr.
Kublar şəbəkəsindəki üç əsas oxa və onların altı ilə əlaqəsinə diqqət yetirin diaqonal altıbucaqlı şəbəkənin istiqamətləri. Şəbəkənin diaqonal oxları altıbucaqlı şəbəkənin əsas istiqamətinə uyğundur.
Kvadrat və kub şəbəkələri üçün artıq alqoritmlərimiz olduğundan, kub koordinatlarından istifadə bu alqoritmləri altıbucaqlı şəbəkələrə uyğunlaşdırmağa imkan verir. Mən məqalənin əksər alqoritmləri üçün bu sistemdən istifadə edəcəyəm. Alqoritmləri fərqli bir koordinat sistemi ilə istifadə etmək üçün kub koordinatlarını çevirirəm, alqoritmi işlədirəm və sonra onları geri çevirirəm.
Altıbucaqlı mesh üçün kub koordinatlarının necə işlədiyini öyrənin. Altıbucaqlıları seçdiyiniz zaman üç oxa uyğun kub koordinatları vurğulanır.
Kublar və altıbucaqlılar üçün çoxlu müxtəlif koordinat sistemləri var. Onların bəzilərində şərt x + y + z = 0-dan fərqlidir. Çox sistemlərdən yalnız birini göstərdim. Siz həmçinin x-y , y-z , z-x ilə kub koordinatları yarada bilərsiniz, onların öz maraqlı xassələri var, lakin mən burada onlara daxil olmayacağam.
Lakin siz koordinatlar üçün 3 rəqəmi saxlamaq istəmədiyinizi iddia edə bilərsiniz, çünki siz xəritəni bu şəkildə necə saxlayacağınızı bilmirsiniz.
Bir çox kub koordinat sistemi və bir çox oxlu koordinat sistemi var. Bu təlimatda hər kombinasiyanı əhatə etməyəcəyəm. Mən iki dəyişən seçəcəyəm, q (sütun) və r (sətir). Bu məqalədəki diaqramlarda q x-ə, r isə z-ə uyğundur, lakin bu uyğunluq ixtiyaridir, çünki müxtəlif uyğunluqlar əldə etmək üçün diaqramları fırladıb fırlada bilərsiniz.
Bu sistemin yerdəyişmə şəbəkələrindən üstünlüyü alqoritmlərin daha başa düşülməsidir. Sistemin mənfi tərəfi ondan ibarətdir ki, düzbucaqlı kartın saxlanması bir qədər qəribədir; xəritələrin saxlanması bölməsinə baxın. Bəzi alqoritmlər kub koordinatlarında daha aydındır, lakin bizdə x + y + z = 0 şərti olduğundan üçüncü nəzərdə tutulan koordinatı hesablaya və bu alqoritmlərdə istifadə edə bilərik. Layihələrimdə oxları q, r, s adlandırıram, buna görə də şərt q + r + s = 0 kimi görünür və lazım olduqda s = -q - r hesablaya bilirəm.
ox müvafiq koordinatın artdığı istiqamətdir. Oxa perpendikulyar koordinatın sabit qaldığı xəttdir. Yuxarıdakı grid diaqramları perpendikulyar xətləri göstərir.
Eksenel koordinatlar kub koordinatları ilə sıx bağlıdır, buna görə də çevrilmə sadədir:
# kubu ox koordinatlarına çevirmək q = x r = z # eksenli kub koordinatlarına çevirmək x = q z = r y = -x-z
Kodda bu iki funksiya aşağıdakı kimi yazıla bilər:
Funksiya kubu_to_hex(h): # axial var q = h.x var r = h.z return Hex(q, r) funksiyası hex_to_cube(h): # kubik var x = h.q var z = h.r var y = -x-z Cube(x, y) qaytarır , z)
Ofset koordinatları bir az daha mürəkkəbdir:
Var istiqamətləri = [ Cube(+1, -1, 0), Cube(+1, 0, -1), Cube(0, +1, -1), Cube(-1, +1, 0), Cube( -1, 0, +1), Cube(0, -1, +1) ] funksiyası kub_istiqaməti(istiqamət): qayıdış istiqamətləri funksiyası kub_neighbor(hex, istiqamət): qaytar kub_add(hex, kub_istiqaməti(istiqamət))
Var istiqamətləri = [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex(0, +1) ] funksiyası hex_istiqamət(istiqamət): istiqamətləri qaytarmaq funksiyası hex_neighbor(hex, direction): var dir = hex_istiqamət(istiqamət) qaytarmaq Hex(hex.q + dir.q, hex.r + dir.r)
Əvvəlki kimi, biz col və sətirə əlavə edilməli olan nömrələr cədvəlini yaradırıq. Bununla belə, bu dəfə iki massivimiz olacaq, biri tək sütunlar/sətirlər, digəri isə cütlər üçün. Yuxarıdakı tor xəritəsində (1,1) baxın və altı istiqamətdən hər birində hərəkət edərkən rəng və cərgənin necə dəyişdiyinə diqqət yetirin. İndi (2,2) üçün prosesi təkrarlayaq. Cədvəllər və kod dörd yerdəyişmə şəbəkəsinin hər biri üçün fərqli olacaq; burada hər bir şəbəkə növü üçün müvafiq kod var.
Tək-r
var istiqamətləri = [ [ Hex(+1, 0), Hex(0, -1), Hex(-1, -1), Hex(-1, 0), Hex(-1, +1), Hex(0) , +1) ], [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(0, +1), Hex( +1, +1) ] ] funksiyası ofset_neighbor(hex, direction): var parity = hex.row & 1 var dir = istiqamətləri qaytarmaq Hex(hex.col + dir.col, hex.row + dir.row)
Cüt-r
var istiqamətləri = [ [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(0, +1), Hex(+1) , +1) ], [ Hex(+1, 0), Hex(0, -1), Hex(-1, -1), Hex(-1, 0), Hex(-1, +1), Hex (0, +1) ] ] funksiyası ofset_neighbor(hex, direction): var parity = hex.row & 1 var dir = istiqamətləri qaytarmaq Hex(hex.col + dir.col, hex.row + dir.row)
Cüt (EVEN) və tək (TƏK) cərgələr üçün şəbəkə
Tək-q
var istiqamətləri = [ [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, -1), Hex(-1, 0), Hex(0) , +1) ], [ Hex(+1, +1), Hex(+1, 0), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex (0, +1) ] ] funksiyası ofset_neighbor(hex, direction): var parity = hex.col & 1 var dir = istiqamətləri qaytarmaq Hex(hex.col + dir.col, hex.row + dir.row)
Cüt-q
var istiqamətləri = [ [ Hex(+1, +1), Hex(+1, 0), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex(0) , +1) ], [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, -1), Hex(-1, 0), Hex (0, +1) ] ] funksiyası ofset_neighbor(hex, direction): var parity = hex.col & 1 var dir = istiqamətləri qaytarmaq Hex(hex.col + dir.col, hex.row + dir.row)
Cüt (EVEN) və tək (TƏK) sütunlar üçün şəbəkə
Var diaqonalları = [ Kub(+2, -1, -1), Kub(+1, +1, -2), Kub(-1, +2, -1), Kub(-2, +1, +1 ), Cube(-1, -1, +2), Cube(+1, -2, +1) ] funksiyası kub_diaqonal_neighbor(hex, istiqamət): qaytar kub_əlavə(hex, diaqonallar)
Əvvəlki kimi, biz üç koordinatdan birini atmaqla bu koordinatları ox koordinatlarına çevirə və ya əvvəlcə nəticələri hesablayaraq onları ofset koordinatlarına çevirə bilərik.
Funksiya kub_məsafə(a, b): qaytarma (abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z)) / 2
Bu qeydin ekvivalenti üç koordinatdan birinin digər ikisinin cəmi olması lazım olduğunu söyləmək və sonra bunu məsafə kimi qəbul etmək olardı. Aşağıdakı yarılanma formasını və ya maksimum dəyər formasını seçə bilərsiniz, lakin onlar eyni nəticəni verir:
Funksiya kub_məsafəsi(a, b): qayıdış max(abs(a.x - b.x), abs(a.y - b.y), abs(a.z - b.z))
Şəkildə maksimum dəyərlər rənglə vurğulanır. Onu da qeyd edək ki, hər bir rəng altı "diaqonal" istiqamətdən birini təmsil edir.
GIF
Funksiya hex_distance(a, b): var ac = hex_to_cube(a) var bc = hex_to_cube(b) return kub_distance(ac, bc)
Əgər kompilyator inline (daxili) hex_to_cube və cube_distance sizin vəziyyətinizdədirsə, o zaman belə kod yaradacaq:
Onaltılıq_məsafə(a, b) funksiyası: qayıdış (abs(a.q - b.q) + abs(a.q + a.r - b.q - b.r) + abs(a.r - b.r)) / 2
Altıbucaqlılar arasındakı məsafələri eksenel koordinatlarda yazmağın bir çox fərqli yolu var, lakin yazı üsulundan asılı olmayaraq eksenel sistemdə altıbucaqlılar arasındakı məsafə kub sistemindəki Manhetten məsafəsindən çıxarılır. Məsələn, təsvir edilən "fərqlər fərqi" a.q + a.r - b.q - b.r kimi a.q - b.q + a.r - b.r yazılaraq və kub_distance bisection forması əvəzinə maksimum dəyər formasından istifadə etməklə əldə edilir. Kub koordinatları ilə əlaqəni görsəniz, hamısı oxşardır.
Funksiya ofset_distance(a, b): var ac = offset_to_cube(a) var bc = offset_to_cube(b) return kub_distance(ac, bc)
Bir çox alqoritmlər üçün eyni nümunədən istifadə edəcəyik: altıbucaqlılardan kublara çevirin, alqoritmin kub versiyasını işlədin və kub nəticələrini altıbucaqlı koordinatlara çevirin (oxlu və ya ofset koordinatları).
GIF
lerp(a, b, t) funksiyası: // float üçün a + (b - a) * t funksiyası cube_lerp(a, b, t): // altıbucaqlılar üçün Cube(lerp(a.x, b.x, t) qaytarılır), lerp(a.y, b.y, t), lerp(a.z, b.z, t)) funksiyası cube_linedraw(a, b): var N = kub_məsafə(a, b) var nəticələr = hər 0 ≤ i ≤ N üçün: results.append( cube_round(cube_lerp(a, b, 1.0/N * i))) nəticələri qaytar
Qeydlər:
Altıbucaqlılar arasındakı məsafə düsturundan tərsini edə bilərik məsafə = max(abs(dx), abs(dy), abs(dz)) . N daxilində bütün altıbucaqlıları tapmaq üçün bizə max(abs(dx), abs(dy), abs(dz)) ≤ N lazımdır. Bu o deməkdir ki, hər üç dəyər lazımdır: abs(dx) ≤ N və abs(dy) ≤ N və abs(dz) ≤ N . Mütləq qiyməti çıxararaq -N ≤ dx ≤ N və -N ≤ dy ≤ N və -N ≤ dz ≤ N alırıq. Kodda bu iç-içə döngə olacaq:
Var nəticələri = hər biri üçün -N ≤ dx ≤ N: hər biri üçün -N ≤ dy ≤ N: hər biri üçün -N ≤ dz ≤ N: əgər dx + dy + dz = 0: results.append(cube_add(center, Cube(dx) , dy, dz)))
Bu dövr işləyəcək, lakin kifayət qədər təsirsiz olacaq. Döngə etdiyimiz bütün dz dəyərlərindən yalnız biri dx + dy + dz = 0 kub şərtini təmin edir. Bunun əvəzinə şərti təmin edən dz dəyərini birbaşa hesablayacağıq:
Var nəticələri = hər biri üçün -N ≤ dx ≤ N: hər max(-N, -dx-N) üçün ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy results.append(cube_add() mərkəz, Kub(dx, dy, dz)))
Bu dövr yalnız tələb olunan koordinatlar boyunca keçir. Şəkildə hər diapazon bir cüt xəttdir. Hər bir xətt bərabərsizlikdir. Altı bərabərsizliyi təmin edən bütün altıbucaqlıları götürürük.
GIF
Bu problemə cəbr və ya həndəsə baxımından yanaşa bilərsiniz. Cəbri olaraq hər bir bölgə -N ≤ dx ≤ N formasının bərabərsizlik şərtləri ilə ifadə edilir və bu şərtlərin kəsişməsini tapmaq lazımdır. Həndəsi olaraq, hər bölgə 3D məkanında bir kubdur və biz 3D məkanında kuboid almaq üçün iki kubu 3D məkanda kəsəcəyik. Sonra altıbucaqlıları əldə etmək üçün onu yenidən x + y + z = 0 müstəvisinə proyeksiya edirik. Mən bu problemi cəbri yolla həll edəcəyəm.
Əvvəlcə -N ≤ dx ≤ N şərtini x min ≤ x ≤ x max daha ümumi formada yenidən yazırıq və x min = center.x - N və x max = center.x + N götürürük. Eyni şeyi y və z üçün də edək, nəticədə əvvəlki bölmədən kodun ümumi forması yaranır:
Var nəticələri = hər xmin ≤ x ≤ xmax üçün: hər max(ymin, -x-zmax) üçün ≤ y ≤ min(ymax, -x-zmin): var z = -x-y results.append(Cube(x, y,) z))
İki a ≤ x ≤ b və c ≤ x ≤ d diapazonunun kəsişməsi max(a, c) ≤ x ≤ min(b, d) dir. Altıbucaqlıların sahəsi x, y, z üzərində diapazonlar kimi ifadə edildiyindən, biz x, y, z diapazonlarının hər birini ayrıca kəsə bilərik və sonra kəsişmədə altıbucaqlıların siyahısını yaratmaq üçün iç içə döngədən istifadə edə bilərik. Altıbucaqlıların bir sahəsi üçün x min = H.x - N və x max = H.x + N götürürük, eynilə y və z üçün. İki altıbucaqlı bölgənin kəsişməsi üçün x min = max(H1.x - N, H2.x - N) və x max = min(H1.x + N, H2.x + N) götürürük, eynilə y və z . Eyni nümunə üç və ya daha çox sahənin kəsişməsi üçün işləyir.
GIF
cube_reachable(start, hərəkət) funksiyası: var visited = set() hər 1 üçün ziyarət edilənlərə başlanğıc əlavə et var fringes = fringes.append()< 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
Sağa 60° fırlanma hər koordinatı bir mövqedən sağa aparır:
[ x, y, z] ilə [-z, -x, -y] arasında
Sola 60° fırlanma hər koordinatı bir mövqe sola aparır:
[ x, y, z] ilə [-y, -z, -x] arasında
Budur, P mövqeyinin mərkəzi C mövqeyi ətrafında tam fırlanma ardıcıllığı, nəticədə yeni R mövqeyi:
cube_ring(mərkəz, radius) funksiyası: var nəticələr = # bu kod radius üçün işləmir == 0; niyə başa düşürsən? var kub = kub_add(mərkəz, kub_miqyas(kub_istiqaməti(4), radius)) hər 0 ≤ i üçün< 6:
for each 0 ≤ j < radius:
results.append(cube)
cube = cube_neighbor(cube, i)
return results
Bu kodda kub diaqramın mərkəzindən küncünə qədər böyük bir ox ilə göstərilən bir üzükdən başlayır. Başlamaq üçün 4 bucağı seçdim, çünki o, istiqamət nömrələrimin hərəkət etdiyi yola uyğun gəlir. Fərqli bir başlanğıc bucağına ehtiyacınız ola bilər. Daxili döngənin hər mərhələsində kub bir altıbucaqlı halqanın ətrafında hərəkət edir. 6 * radiuslu addımlardan sonra başladığı yerə çatır.
cube_spiral(mərkəz, radius) funksiyası: var nəticələr = hər 1 ≤ k ≤ radius üçün: nəticələr = nəticələr + kub_ring(mərkəz, k) nəticələri qaytarır
Altıbucaqlıların bu şəkildə keçməsi hərəkət diapazonunu hesablamaq üçün də istifadə edilə bilər (yuxarıya bax).
Bu alqoritm böyük ərazilərdə yavaş ola bilər, lakin onu həyata keçirmək asandır, ona görə də ondan başlamağı məsləhət görürəm.
GIF
Gələcəkdə bu təlimatı genişləndirmək istəyirəm. mənim varımdır