Készíts egy 6 négyzetet iránytű segítségével. Hogyan építsünk szabályos hatszöget. Behatárolt kör és építhetőség

A sokszögek témája az iskolai tananyagban szerepel, de nem fordítanak rá kellő figyelmet. Eközben érdekes, és ez különösen igaz egy szabályos hatszögre vagy hatszögre - elvégre sok természeti objektumnak van ilyen alakja. Ide tartoznak a méhsejt és még sok más. Ez a forma nagyon jól működik a gyakorlatban.

Definíció és felépítés

A szabályos hatszög egy sík alakzat, amelynek hat egyenlő hosszú oldala és ugyanannyi szöge van.

Ha felidézzük a sokszög szögeinek összegének képletét

kiderül, hogy ezen az ábrán 720°-kal egyenlő. Nos, mivel az ábra minden szöge egyenlő, nem nehéz kiszámítani, hogy mindegyik egyenlő 120°-kal.

A hatszög rajzolása nagyon egyszerű, csak egy iránytűre és egy vonalzóra van szüksége.

A lépésről lépésre szóló utasítások így fognak kinézni:

Ha szeretné, megteheti vonal nélkül is, ha öt azonos sugarú kört rajzol.

Az így kapott szám szabályos hatszög lesz, és ezt alább bizonyíthatjuk.

A tulajdonságok egyszerűek és érdekesek

A szabályos hatszög tulajdonságainak megértéséhez célszerű hat háromszögre osztani:

Ez segít a jövőben tisztábban megjeleníteni tulajdonságait, amelyek közül a legfontosabbak:

  1. körülírt kör átmérő;
  2. a beírt kör átmérője;
  3. négyzet;
  4. kerülete.

Behatárolt kör és építhetőség

A hatszög körül kör írható le, és csak egy. Mivel ez az ábra szabályos, ezt egészen egyszerűen megteheti: belül két szomszédos sarokból rajzoljon felezőt. Az O pontban metszik egymást, és a köztük lévő oldallal együtt háromszöget alkotnak.

A hatszög oldala és a felezők közötti szögek 60°-osak lesznek, tehát határozottan kijelenthetjük, hogy például egy AOB háromszög egyenlő szárú. És mivel a harmadik szög is egyenlő lesz 60°-kal, ez is egyenlő oldalú. Ebből következik, hogy az OA és OB szakaszok egyenlőek, ami azt jelenti, hogy egy kör sugaraként szolgálhatnak.

Ezt követően léphet a következő oldalra, és rajzolhat egy felezőt a C pont szögéből. Az eredmény egy másik egyenlő oldalú háromszög lesz, és az AB oldal mindkettőben közös lesz, és az OS lesz a következő sugár, amelyen ugyanaz a kör áthalad. Összesen hat ilyen háromszög lesz, és közös csúcsuk lesz az O pontban. Kiderült, hogy le lehet írni egy kört, és csak egy van belőle, és a sugara megegyezik a kör oldalával. a hatszög:

Ezért lehet ezt a figurát megszerkeszteni egy iránytű és vonalzó segítségével.

Nos, ennek a körnek a területe szabványos lesz:

Beírt kör

A körülírt kör középpontja egybeesik a beírt kör középpontjával. Ennek ellenőrzésére merőlegeseket rajzolhat az O pontból a hatszög oldalaira. Ezek lesznek a hatszöget alkotó háromszögek magasságai. Egy egyenlő szárú háromszögben pedig a magasság a középső azon oldalhoz képest, amelyen nyugszik. Így ez a magasság nem más, mint a merőleges felező, ami a beírt kör sugara.

Az egyenlő oldalú háromszög magasságát egyszerűen kiszámítjuk:

h²=а²-(а/2)²= а²3/4, h=а(√3)/2

És mivel R=a és r=h, kiderül, hogy

r=R(√3)/2.

Így a körív áthalad egy szabályos hatszög oldalainak középpontjain.

Területe a következő lesz:

S=3πa²/4,

vagyis a leírtak háromnegyede.

Kerület és terület

A kerülettel minden világos, ez az oldalak hosszának összege:

P=6a, vagy P=6R

De a terület egyenlő lesz mind a hat háromszög összegével, amelyekre a hatszög felosztható. Mivel a háromszög területét az alap és a magasság szorzatának feleként számítjuk ki, akkor:

S=6(а/2)(а(√3)/2)= 6а²(√3)/4=3а²(√3)/2 vagy

S=3R2(√3)/2

Azok, akik ezt a területet a beírt kör sugarán keresztül szeretnék kiszámítani, ezt tehetik:

S=3(2r/√3)²(√3)/2=r²(2√3)

Szórakoztató építkezések

Egy hatszögbe illeszthet háromszöget, amelynek oldalai egyen keresztül kötik össze a csúcsokat:

Összesen kettő lesz belőlük, és átfedésük adja a Dávid-csillagot. Ezen háromszögek mindegyike egyenlő oldalú. Ezt nem nehéz ellenőrizni. Ha az AC oldalt nézzük, akkor két háromszöghez tartozik egyszerre - BAC és AEC. Ha ezek közül az elsőben AB = BC, és a köztük lévő szög 120°, akkor a többiek mindegyike 30° lesz. Ebből logikus következtetéseket vonhatunk le:

  1. Az ABC magasság a B csúcstól egyenlő lesz a hatszög oldalának felével, mivel sin30°=1/2. Azoknak, akik ezt ellenőrizni akarják, azt tanácsolhatjuk, hogy számoljanak újra a Pitagorasz-tétel segítségével, ez tökéletesen illik ide.
  2. Az AC oldal egyenlő lesz a beírt kör két sugarával, amelyet ismét ugyanazzal a tétellel számítunk ki. Vagyis AC=2(a(√3)/2)=a(√3).
  3. Az ABC, CDE és AEF háromszögek két oldala és a köztük lévő szög egyenlő, ebből következik, hogy az AC, CE és EA oldalak egyenlőek.

A háromszögek egymást metszve egy új hatszöget alkotnak, és az is szabályos. Ez egyszerűen bebizonyosodik:

Így az ábra megfelel a szabályos hatszög jellemzőinek - hat egyenlő oldala és szöge van. A csúcsokban lévő háromszögek egyenlőségéből könnyen következtethetünk az új hatszög oldalának hosszára:

d=a(√3)/3

Ez lesz a körülötte leírt kör sugara is. A beírt sugár fele akkora lesz, mint egy nagy hatszög oldala, ami az ABC háromszög vizsgálatakor bebizonyosodott. Magassága pontosan az oldal fele, ezért a második fele a kis hatszögbe írt kör sugara:

r₂=a/2

S=(3(√3)/2)(а(√3)/3)²=а(√3)/2

Kiderült, hogy a Dávid-csillag belsejében lévő hatszög területe háromszor kisebb, mint a nagyé, amelybe a csillag van írva.

Elmélettől gyakorlatig

A hatszög tulajdonságait nagyon aktívan használják mind a természetben, mind az emberi tevékenység különböző területein. Először is, ez a csavarokra és anyákra vonatkozik - az első és a második feje nem más, mint egy szabályos hatszög, ha nem veszi figyelembe a letöréseket. A csavarkulcsok mérete megfelel a beírt kör átmérőjének - vagyis az ellentétes élek közötti távolságnak.

A hatszögletű csempe is megtalálta a használatát. Sokkal kevésbé elterjedt, mint a négyszögletű, de kényelmesebb lerakni: három lapka találkozik egy ponton, nem pedig négy. A kompozíciók nagyon érdekesek lehetnek:

A járólaphoz betonlapokat is gyártanak.

A hatszögek elterjedtsége a természetben egyszerűen megmagyarázható. Így a köröket és golyókat a legegyszerűbb szorosan síkra illeszteni, ha azonos átmérőjűek. Emiatt a lépek ilyen alakúak.

Körbe írt szabályos hatszög felépítése. Szabályos ötszög szerkesztése adott oldal mentén. Mozgassa az iránytűt az éppen megrajzolt ív és a kör metszéspontjához. Ezt a konstrukciót négyzet és iránytű segítségével lehet megtenni. Szabályos hatszög egyenes él és 30X60°-os négyzet felhasználásával építhető. Szerkessze meg egy szabályos hatszög sarkainak csúcspontjait!


Körbe írt egyenlő oldalú háromszög szerkesztése. Egy ilyen háromszög csúcsai megszerkeszthetők egy iránytű és egy 30 és 60°-os szögű négyzet vagy csak egy iránytű segítségével. A 2-3 oldal megszerkesztéséhez állítsa a keresztlécet a szaggatott vonallal jelölt helyzetbe, és húzzon egy egyenest a 2. ponton keresztül, amely meghatározza a háromszög harmadik csúcsát.

3/1. módszer: Rajzolj egy tökéletes hatszöget iránytűvel

Jelöljük a körön az 1-es pontot, és vesszük az ötszög egyik csúcsának. Legyen adott egy D átmérőjű kör; szabályos hétszöget kell bele illeszteni (65. ábra). Osszuk a kör függőleges átmérőjét hét egyenlő részre. A D kör átmérőjével megegyező sugarú 7. pontból addig írunk le egy ívet, amíg az F pontban nem metszi a vízszintes átmérő folytatását. Az F pontot a sokszög pólusának nevezzük.

A szabályos sokszögek felépítésének technikája a szakaszok szögfelezőinek és merőleges felezőinek megalkotásának képességén alapul.

A táblázat első oszlopa egy szabályos beírt sokszög oldalainak számát mutatja, a második oszlopban pedig az együtthatók. Egy adott sokszög oldalhosszát úgy kapjuk meg, hogy egy adott kör sugarát megszorozzuk a sokszög oldalainak számának megfelelő együtthatóval.

Ennek a videoleckének a témája a „Szabályos sokszögek építése”. Még egyszer meghatározunk egy szabályos sokszöget, grafikusan ábrázoljuk, majd még egyszer megbizonyosodunk arról, hogy egy ilyen alakzat körüli beírt és körülírt körök középpontja egybeesik. Egy kör mindig írható ebbe a sokszögbe, és egy kör mindig írható le körülötte. Az előző leckék során rájöttünk, hogy szögfelezői és az oldalaira merőlegesek felezői alapvető szerepet játszanak a sokszögek tulajdonságainak leírásában.

4. Megkaptuk a szükséges ABC szabályos háromszöget. A probléma megoldódott. 3. Miután az iránytű egyik lábát elhelyeztük a kör tetszőleges A1 pontjában, a második láb segítségével ugyanazon a körön jelöljük meg az A2 pontot és kapcsoljuk össze az A1 ponttal. Megkapjuk a hatszög első oldalát. 3. Az O pontból kiesett sokszög oldalaira merőleges felezőmetszőket használva felosztjuk az összes oldalát és a kör szomszédos csúcsai közé zárt összes ívét.

A geometriai konstrukciók a tanulás egyik fontos részét képezik. A tűnek át kell szúrnia a húzott vonalat. Minél pontosabban van felszerelve az iránytű, annál pontosabb lesz a konstrukció. Rajzolj egy másik ívet, amely metszi a kört. Kösd össze következetesen az ívek mind a hat metszéspontját az eredetileg rajzolt körrel. Ebben az esetben előfordulhat, hogy a hatszög nem megfelelő.

A IV., V. és VI. pont / - // - /// csúcsainak meghatározásához húzzon vízszintes vonalakat, amíg nem metszik egymást a körrel

A talált csúcsokat szekvenciálisan összekapcsoljuk egymással. Hétszöget az F pólusból és a függőleges átmérő páratlan felosztásával lehet építeni. Mindkét kör középpontja egybeesik (O pont az 1. ábrán). Az ábrán a körülírt (R) és a beírt (r) kör sugarai is láthatók.

A hatszög felépítése azon alapul, hogy oldala megegyezik a körülírt kör sugarával. Ebben a leckében megvizsgáljuk, hogyan lehet szabályos sokszögeket készíteni iránytű és vonalzó segítségével. A második módszer azon a tényen alapszik, hogy ha egy körbe írt szabályos hatszöget építünk, majd egyen keresztül összekötjük a csúcsait, akkor egyenlő oldalú háromszöget kapunk. A fenti módszer tetszőleges számú oldalú szabályos sokszögek készítésére alkalmas.

Körbe írt szabályos hatszög felépítése. A hatszög felépítése azon alapul, hogy oldala megegyezik a körülírt kör sugarával. Ezért a megszerkesztéséhez elegendő a kört hat egyenlő részre osztani, és a talált pontokat összekapcsolni egymással (60. ábra, a).

Szabályos hatszög egyenes él és 30X60°-os négyzet felhasználásával építhető. Ennek a konstrukciónak a végrehajtásához a kör vízszintes átmérőjét vesszük az 1. és 4. szög felezőjének (60. ábra, b), megszerkesztjük az 1 -6, 4-3, 4-5 és 7-2 oldalakat, amelyek után behúzzuk az 5-6 és a 3-2 oldalt.

Körbe írt egyenlő oldalú háromszög megalkotása. Egy ilyen háromszög csúcsai megszerkeszthetők egy iránytű és egy 30 és 60°-os szögű négyzet vagy csak egy iránytű segítségével.

Tekintsünk két módszert egy körbe írt egyenlő oldalú háromszög megszerkesztésére.

Első út(61,a ábra) azon alapul, hogy a 7, 2, 3 háromszög mindhárom szöge 60°-ot tartalmaz, és a 7 ponton keresztül húzott függőleges egyenes az 1 szög magassága és felezője is. 0-1-2 egyenlő 30°-kal, akkor az oldal megkereséséhez

1-2, elegendő 30°-os szöget beépíteni az 1. pontból és a 0-1 oldalból. Ehhez szerelje fel a keresztlécet és a négyzetet az ábrán látható módon, húzza meg az 1-2 vonalat, amely a kívánt háromszög egyik oldala lesz. A 2-3 oldal megszerkesztéséhez állítsa a keresztlécet a szaggatott vonallal jelölt helyzetbe, és húzzon egy egyenest a 2. ponton keresztül, amely meghatározza a háromszög harmadik csúcsát.

Második út azon alapul, hogy ha egy szabályos hatszöget építünk egy körbe, majd összekötjük a csúcsait egyen keresztül, akkor egyenlő oldalú háromszöget kapunk.

Háromszög megszerkesztéséhez (61. ábra, b) jelölje meg az átmérőn az 1. csúcspontot, és húzzon egy átmérős vonalat 1-4. Ezután a 4. pontból, amelynek sugara D/2, írunk le egy ívet, amíg az a 3. és 2. pontban nem metszi a kört. A kapott pontok a kívánt háromszög másik két csúcsa lesz.

Körbe írt négyzet megalkotása. Ezt a konstrukciót négyzet és iránytű segítségével lehet megtenni.

Az első módszer azon a tényen alapul, hogy a négyzet átlói a körülírt kör középpontjában metszik egymást, és 45°-os szöget zárnak be a tengelyeihez. Ez alapján szereljük fel a keresztlécet és a négyzetet 45°-os szöggel az ábra szerint. 62, a, és jelölje be az 1. és 3. pontot. Ezután ezeken a pontokon keresztül egy keresztrúd segítségével rajzoljuk meg a négyzet 4-1 és 3-2 vízszintes oldalait. Ezután egy egyenes él segítségével megrajzoljuk a négyzet függőleges oldalait 1-2 és 4-3 a négyzet szára mentén.

A második módszer azon alapul, hogy a négyzet csúcsai felezik az átmérő végei közé zárt kör íveit (62. ábra, b). Két egymásra merőleges átmérő végein kijelöljük az A, B és C pontokat, és ezekből y sugarú íveket írunk le, amíg azok nem metszik egymást.

Ezután az ívek metszéspontjain keresztül segédegyeneseket rajzolunk, amelyeket az ábrán folytonos vonalakkal jelölünk. A körrel való metszéspontjuk határozza meg az 1. és 3. csúcsot; 4 és 2. Az így kapott kívánt négyzet csúcsait sorba kapcsoljuk egymással.

Körbe írt szabályos ötszög építése.

Egy szabályos ötszög körbe illesztéséhez (63. ábra) a következő konstrukciókat készítjük.

Jelöljük a körön az 1-es pontot, és vesszük az ötszög egyik csúcsának. Az AO szakaszt kettéosztjuk. Ehhez leírunk egy ívet az A pontból AO sugarú körrel, amíg az M és B pontokban nem metszi a kört. Ezeket a pontokat összekötve egy egyenessel kapjuk a K pontot, amit aztán az 1. ponthoz kapcsolunk. Az A7 szakasz sugárral egyenlő ívet írunk le a K ponttól egészen addig, amíg a H pontban nem metszi az AO átmérős egyenest. Az 1. pontot a H ponttal összekötve megkapjuk az ötszög oldalát. Ezután az 1H szakasznak megfelelő iránytű megoldást használva, amely az 1. csúcstól a kör metszéspontjáig ívelt ívet ír le, megtaláljuk a 2. és 5. csúcsot. A 2. és 5. csúcsból ugyanazzal az iránytű megoldással bemetszünk, így megkapjuk a maradékot. 3. és 4. csúcsok. A talált pontokat szekvenciálisan összekötjük egymással.

Szabályos ötszög szerkesztése adott oldal mentén.

Egy adott oldal mentén szabályos ötszög megszerkesztéséhez (64. ábra) az AB szakaszt hat egyenlő részre osztjuk. Az AB sugarú A és B pontokból íveket írunk le, amelyek metszéspontja a K pontot adja. Ezen a ponton és az AB egyenes 3. osztásán keresztül függőleges vonalat húzunk.

Megkapjuk az ötszög 1-es csúcspontját. Ezután AB-vel egyenlő sugárral az 1-es pontból írunk le egy ívet, amíg az nem metszi az előzőleg A és B pontokból rajzolt íveket. Az ívek metszéspontjai határozzák meg a 2 és 5 ötszög csúcsokat. A talált csúcsokat összekötjük sorozatok egymással.

Körbe írt szabályos hétszög felépítése.

Legyen adott egy D átmérőjű kör; szabályos hétszöget kell bele illeszteni (65. ábra). Osszuk a kör függőleges átmérőjét hét egyenlő részre. A D kör átmérőjével megegyező sugarú 7. pontból addig írunk le egy ívet, amíg az F pontban nem metszi a vízszintes átmérő folytatását. Az F pontot a sokszög pólusának nevezzük. A VII. pontot a hétszög egyik csúcsának véve az F pólusból a függőleges átmérő egyenletes osztásain keresztül sugarakat vonunk le, amelyeknek a körrel való metszéspontja határozza meg a hétszög VI, V és IV csúcsát. Ahhoz, hogy a IV, V és VI pontból / - // - /// csúcsokat kapjunk, húzzunk vízszintes vonalakat, amíg nem metszik egymást a körrel. A talált csúcsokat szekvenciálisan összekapcsoljuk egymással. Hétszöget az F pólusból és a függőleges átmérő páratlan felosztásával lehet építeni.

A fenti módszer tetszőleges számú oldalú szabályos sokszögek készítésére alkalmas.

A kör tetszőleges számú egyenlő részre osztása a táblázat adatainak felhasználásával is elvégezhető. 2, amely olyan együtthatókat ad, amelyek lehetővé teszik a szabályos beírt sokszögek oldalainak méretének meghatározását.

A geometriai konstrukciók a képzés egyik fő részét képezik. Térbeli és logikai gondolkodást alakítanak ki, és lehetővé teszik a primitív és természetes geometriai érvényesség megértését is. Az építményeket síkon készítik iránytű és vonalzó segítségével. Ezekkel az eszközökkel nagyszámú geometriai alakzatot lehet megszerkeszteni. Ugyanakkor sok, meglehetősen nehéznek tűnő figura a legegyszerűbb szabályok alapján készül. Például egy szabályos hatszög felépítése néhány szóban leírható.

Szükséged lesz

  • Iránytű, vonalzó, ceruza, papírlap.

Utasítás

1. Rajzolj egy kört. Állítson be bizonyos távolságot az iránytű lábai között. Ez a távolság a kör sugara lesz. Válassza ki a sugarat úgy, hogy a kör rajzolása meglehetősen kényelmes legyen. A körnek teljesen rá kell férnie a papírlapra. A túl nagy vagy túl kicsi távolság az iránytű lábai között a rajzolás közbeni változásához vezethet. Az optimális távolság az lesz, ahol az iránytű lábai közötti szög 15-30 fok.

2. Szerkessze meg egy szabályos hatszög sarkainak csúcspontjait! Helyezze az iránytű lábát, amelyben a tű rögzítve van, a kör bármely pontjára. A tűnek át kell szúrnia a húzott vonalat. Minél pontosabban van felszerelve az iránytű, annál pontosabb lesz a konstrukció. Rajzolj körívet úgy, hogy az metszi az előzőleg megrajzolt kört. Mozgassa az iránytűt az éppen megrajzolt ív és a kör metszéspontjához. Rajzolj egy másik ívet, amely metszi a kört. Mozgassa ismét az iránytűt az ív és a kör metszéspontjához, és rajzolja meg újra az ívet. Ismételje meg ezt a műveletet még háromszor, egy irányba haladva a kör körül. Mindegyiknek hat ívnek és hat metszéspontnak kell lennie.

3. Szerkesszünk pozitív hatszöget. Lépésenként egyesítse az ívek mind a hat metszéspontját az eredetileg rajzolt körrel. Kösd össze a pontokat vonalzóval és ceruzával rajzolt egyenesekkel. Ezen műveletek után egy megfelelő hatszöget kapunk, amely egy körbe van írva.

Hatszög Egy sokszögnek hat szöge és hat oldala van. A sokszögek lehetnek konvexek vagy konkávak. A konvex hatszög minden belső szöge tompa, míg a konkáv hatszögnek egy vagy több hegyesszöge van. A hatszög megépítése meglehetősen egyszerű. Ez néhány lépésben történik.

Szükséged lesz

  • Ceruza, papírlap, vonalzó

Utasítás

1. Vegyünk egy papírlapot, és jelöljünk meg rajta körülbelül 6 pontot, ahogy az ábra mutatja. 1.

2. A pontok kijelölése után vegyünk egy vonalzót és egy ceruzát, és ezek segítségével, lépésről lépésre, egymás után kössük össze a pontokat, ahogy az az ábrán látható. 2.

Videó a témáról

Jegyzet!
A hatszög összes belső szögének összege 720 fok.

Hatszög egy sokszög, amelynek hat szöge van. Egy tetszőleges hatszög rajzolásához 2 lépést kell tennie.

Szükséged lesz

  • Ceruza, vonalzó, papírlap.

Utasítás

1. Vegyünk egy ceruzát a kezünkbe, és jelöljünk meg 6 véletlenszerű pontot a lapon. A jövőben ezek a pontok a sarkok szerepét töltik be a hatszögben. (1. ábra)

2. Vegyünk egy vonalzót, és ezek alapján rajzoljunk 6 olyan szakaszt, amelyek a korábban megrajzolt pontok mentén kapcsolódnának egymáshoz (2. ábra)

Videó a témáról

Jegyzet!
A hatszög speciális típusa a pozitív hatszög. Azért hívják ilyennek, mert minden oldala és szöge egyenlő egymással. Leírhat vagy beírhat egy kört egy ilyen hatszög köré. Érdemes megjegyezni, hogy azoknál a pontoknál, amelyeket a beírt kör és a hatszög oldalainak megérintésével kaptunk, a pozitív hatszög oldalai ketté vannak osztva.

Hasznos tanács
A természetben a pozitív hatszögek nagyon népszerűek. Például az egész méhsejt pozitív hatszög alakú. Vagy a grafén kristályrácsa (szénmódosítás) is pozitív hatszög alakú.

Hogyan építsük az egyiket vagy a másikat sarok- nagy kérdés. De bizonyos szempontból a feladat láthatatlanul leegyszerűsödik. Ezen szögek egyike az sarok 30 fokon. Ez egyenlő?/6-tal, vagyis a 30 osztója 180-nak. Ráadásul a szinusza ismert. Ez segít a felépítésében.

Szükséged lesz

  • szögmérő, négyzet, iránytű, vonalzó

Utasítás

1. Először is nézzünk meg egy különösen primitív helyzetet, amikor szögmérő van a kezében. Ezután egy ehhez képest 30 fokos szöget bezáró egyenes vonal könnyen félretehető rátámasztással.

2. A szögmérő mellett vannak még sarokívek, amelyek egyik szöge 30 fokkal egyenlő. Aztán egy másik sarok sarok a szög 60 fokkal lesz egyenlő, vagyis vizuálisan kisebbre van szüksége sarok a szükséges egyenes megszerkesztéséhez.

3. Térjünk át a 30 fokos szög felépítésének nem triviális módjaira. Mint tudják, a 30 fokos szög szinusza 1/2. A megalkotásához közvetlenül kell konstruálnunk sarok cionárius sarok nik. Lehetséges, hogy két egymásra merőleges egyenest szerkeszthetünk. De a 30 fok érintője irracionális szám, ezért csak közelítőleg tudjuk kiszámítani a lábak közötti arányt (kizárólag, ha nincs számológép), és ezért konstruálni sarok körülbelül 30 fok.

4. Ebben az esetben pontos konstrukció készíthető. Építsünk ismét két merőleges egyenest, amelyeken a lábak egyenesek lesznek sarok nogo sarok nik. Fektessünk le egy bizonyos hosszúságú egyenes BC lábat egy iránytű segítségével (B – egyenes sarok). Ezt követően 2-szeresére növeljük az iránytű lábai közötti hosszt, ami elemi. Ilyen hosszúságú sugarú kört rajzolva a C pont középpontjával, megtaláljuk a kör metszéspontját egy másik egyenessel. Ez a pont közvetlenül az A pont lesz sarok nogo sarok ABC, és sarok A 30 fokkal lesz egyenlő.

5. Egyenesen sarok 30 fokos szögben megengedett és a kör alátámasztásával, azzal, hogy mi egyenlő?/6. Szerkesszünk egy OB sugarú kört. Nézzük az elméletet sarok nik, ahol OA = OB = R – a kör sugara, ahol sarok OAB = 30 fok. Legyen OE ennek az egyenlő szárú háromszögnek a magassága sarok nik, és ebből következően a felező és a medián. Akkor sarok AOE = 15 fok, és a félszög képlet szerint sin(15o) = (sqrt(3)-1)/(2*sqrt(2)). Következésképpen AE = R*sin(15o). Ebből következik, hogy AB = 2AE = 2R*sin(15o). Ha megszerkesztünk egy BA sugarú kört, amelynek középpontja a B pontban van, megtaláljuk ennek a körnek az A metszéspontját a kezdeti körrel. Az AOB szög 30 fok lesz.

6. Ha valamilyen módon meg tudjuk határozni az ívek hosszát, akkor egy?*R/6 hosszúságú ívet félretéve azt is megkapjuk sarok 30 fokon.

Jegyzet!
Emlékeznünk kell arra, hogy az 5. bekezdésben a szöget csak közelítőleg tudjuk megszerkeszteni, mert irracionális számok jelennek meg a számításokban.

Hatszög a sokszög speciális esetének nevezik - a sík legtöbb pontjából alkotott alakzatot, amelyet zárt vonallánc határol. A pozitív hatszög (hatszög) viszont szintén speciális eset - ez egy sokszög hat egyenlő oldallal és egyenlő szögekkel. Ez az ábra annyiban jelentős, hogy minden oldalának hossza megegyezik az ábra körül leírt kör sugarával.

Szükséged lesz

  • – iránytű;
  • - vonalzó;
  • - ceruza;
  • - papír.

Utasítás

1. Válassza ki a hatszög oldalhosszát. Vegyünk egy iránytűt, és állítsuk be a távolságot a tű egyik lábán található vége és a másik lábon lévő vezeték vége között, és egyenlő legyen a rajzolt ábra oldalának hosszával. Ehhez használhat vonalzót, vagy választhat egy véletlenszerű távolságot, ha ez a pillanat nem jelentős. Rögzítse az iránytű lábait csavarral, ha lehetséges.

2. Rajzolj kört egy iránytű segítségével. A lábak közötti távolság a kör sugara lesz.

3. Osszuk a kört hat egyenlő részre pontokkal. Ezek a pontok lesznek a hatszög sarkainak csúcsai, és ennek megfelelően az oldalait képviselő szakaszok végei.

4. Helyezze az iránytű lábát a tűvel egy tetszőleges pontra a körvonalazott kör vonalán. A tűnek megfelelően át kell szúrnia a vonalat. A konstrukció pontossága közvetlenül függ az iránytű felszerelésének pontosságától. Rajzolj körzővel egy ívet úgy, hogy az 2 pontban metszi az elsőként megrajzolt kört.

5. Mozgassa az iránytű lábát a tűvel a megrajzolt ív és az eredeti kör metszéspontjainak egyikébe. Rajzoljon egy másik ívet, amely szintén 2 pontban metszi a kört (az egyik egybeesik az iránytű előző helyének pontjával).

6. Ugyanígy rendezze át az iránytűt, és rajzoljon íveket még négyszer. Mozgassa az iránytű lábát a tűvel egy irányba a kör körül (mindig az óramutató járásával megegyező vagy ellentétes irányba). Ennek eredményeképpen az íveknek hat metszéspontját kell azonosítani az eredetileg megszerkesztett körrel.

7. Rajzolj egy pozitív hatszöget. Lépésenként, páronként egyesítse az előző lépésben kapott hat pontot szegmensekkel. Rajzolja meg a szegmenseket ceruzával és vonalzóval. Az eredmény egy megfelelő hatszög lesz. Az építés befejezése után törölheti a segédelemeket (ívek és körök).

Jegyzet!
Az iránytű lábai közötti távolságot érdemes úgy megválasztani, hogy a köztük lévő szög 15-30 fok legyen, éppen ellenkezőleg, konstrukciók készítésekor ez a távolság könnyen elveszhet.

Lakástervezési tervek építése vagy kidolgozása során gyakran építeni kell sarok, megegyezik a meglévővel. A minták és az iskolai geometriai ismeretek támogatják.

Utasítás

1. Szöget alkot két egyenes, amely egy pontból indul ki. Ezt a pontot a szög csúcsának nevezzük, a vonalak pedig a szög oldalai.

2. Használjon három betűt a sarkok jelölésére: egyet felül, kettőt az oldalakon. Hívott sarok, kezdve az egyik oldalon álló betűvel, majd a felül álló betűt hívják, majd ezt követően a másik oldalon lévő betűt. Használjon más módszereket a sarkok jelölésére, ha kényelmesebben érzi magát szemben. Alkalmanként csak egy betűt neveznek meg, amely a tetején található. És megengedett a szögek jelölése görög betűkkel, mondjuk α, β, γ.

3. Vannak helyzetek, amikor rajzolni kell sarok, hogy egyenlő legyen az adott szöggel. Ha a rajz elkészítésekor nincs lehetőség szögmérő használatára, akkor csak vonalzóval és körzővel lehet boldogulni. Lehetséges, hogy a rajzon MN betűkkel jelzett egyenesen kell építeni sarok a K pontban úgy, hogy egyenlő legyen a B szöggel. Vagyis a K pontból egy egyenest kell húzni, amely az MN egyenessel alkot sarok, amelyik egyenlő lesz a B szöggel.

4. Először egy adott szög teljes oldalán jelöljünk ki egy pontot, mondjuk az A és C pontot, majd kössük össze a C és A pontot egy egyenessel. Get tre sarok nik ABC.

5. Most készítse el ugyanazt a tre-t az MN egyenesen sarok hogy a B csúcsa a K pontban lévő egyenesen legyen. Használja a szabályt a háromszög megalkotására sarok három oldalon. Tegye le a KL szakaszt a K pontból. Egyenlőnek kell lennie a BC szegmenssel. Szerezd meg az L pontot.

6. A K pontból rajzoljunk egy kört, amelynek sugara megegyezik a BA szakasszal. L-ből rajzoljunk CA sugarú kört. A kapott 2 kör metszéspontját (P) kombináld K-val. Kapj hármat sarok nik KPL, amelyik egyenlő lesz hárommal sarokÁbécéskönyv. Így kapod meg sarok K. Egyenlő lesz a B szöggel. Annak érdekében, hogy kényelmesebbé és gyorsabbá tegyük ezt a konstrukciót, válasszunk ki egyenlő szakaszokat a B csúcsból, egyetlen iránytű megoldással, a lábak mozgatása nélkül írjunk le egy azonos sugarú kört a K pontból.

Videó a témáról

Jegyzet!
Kerülje el az iránytű lábai közötti távolság véletlen megváltoztatását. Ebben az esetben előfordulhat, hogy a hatszög nem megfelelő.

Hasznos tanács
Tökéletesen kihegyezett vezetékkel ellátott iránytűvel tud konstrukciókat készíteni. Így a konstrukciók különösen pontosak lesznek.

Egyes játékokban hatszögrácsokat (hatszögletű rácsokat) használnak, de ezek nem olyan egyszerűek vagy gyakoriak, mint a téglalap alakú rácsok. Közel 20 éve gyűjtöm a hatszögletű hálókkal kapcsolatos forrásokat, és ezt az útmutatót a legelegánsabb megközelítésekhez írtam, a legegyszerűbb kóddal megvalósítva. Ez a cikk széles körben felhasználja Charles Fu és Clark Verbrugge útmutatóit. Leírom a hatszög hálók létrehozásának különböző módjait, azok kapcsolatait és a leggyakoribb algoritmusokat. A cikk számos része interaktív: a rácstípus kiválasztása megváltoztatja a megfelelő diagramokat, kódokat és szövegeket. (Megjegyzés: ez csak az eredetire vonatkozik, azt tanácsolom tanulmányozni. A fordításban az eredeti minden információja megmarad, de interaktivitás nélkül.).

A cikkben található kódpéldák pszeudokóddal vannak megírva, így könnyebben olvashatóak és érthetőbbek a saját implementáció megírásához.

Geometria

A hatszögek hatoldalú sokszögek. A szabályos hatszögek minden oldala (éle) azonos hosszúságú. Csak szabályos hatszögekkel fogunk dolgozni. A hatszögletű hálók általában vízszintes (hegyes felső) és függőleges (sima tetejű) tájolást használnak.


Hatszög lapos (bal) és éles (jobb) tetejű

A hatszögeknek 6 lapja van. Mindegyik lap két hatszögben közös. A hatszögeknek 6 sarokpontja van. Minden sarokpont három hatszögben közös. A középpontokról, élekről és sarokpontokról a hálós részekről (négyzetek, hatszögek és háromszögek) szóló cikkemben olvashat bővebben.

Szögek

Egy szabályos hatszögben a belső szögek 120°-osak. Hat "ék" van, amelyek mindegyike egyenlő oldalú háromszög 60°-os belső szöggel. Sarokpont én(60° * i) + 30°, méretegységnyi távolságra helyezkedik el a középponttól. A kódban:

Függvény hex_corner(center, size, i): var szög_deg = 60 * i + 30 var szög_rad = PI / 180 * szög_fok return Point(center.x + size * cos(angle_rad), center.y + méret * sin(angle_rad) )
Hatszög kitöltéséhez meg kell kapnia a sokszög csúcsait hex_corner(…, 0) és hex_corner(…, 5) között. A hatszög körvonalának megrajzolásához ezeket a csúcsokat kell használni, majd újra meg kell húzni a vonalat a hex_corner(..., 0) -ban.

A különbség a két tájolás között az, hogy x és y felcserélődnek, ami a szögek változását eredményezi: a lapos felső hatszögek szögei 0°, 60°, 120°, 180°, 240°, 300° és hegyes felső A hatszögek szögei 30°, 90°, 150°, 210°, 270°, 330°.


Hatszögek sarkai lapos és éles csúcsokkal

Méret és hely

Most több hatszöget szeretnénk egymás mellé helyezni. Vízszintes helyzetben a hatszög magassága magasság = méret * 2 . A szomszédos hatszögek közötti függőleges távolság vert = magasság * 3/4.

Hatszög szélesség szélesség = sqrt(3)/2 * magasság . A szomszédos hatszögek közötti vízszintes távolság horiz = szélesség.

Egyes játékok pixel art-ot használnak a hatszögekhez, amelyek nem egyeznek pontosan a hagyományos hatszögekkel. Az ebben a részben leírt szög- és elhelyezési képletek nem egyeznek meg az ilyen hatszögek méreteivel. A cikk további része, amely a hatszögletű háló algoritmusait írja le, akkor is érvényes, ha a hatszögek kissé meg vannak húzva vagy összenyomva.



Koordináta rendszerek

Kezdjük összeállítani a hatszögeket egy rácsba. A négyzetrácsok esetében csak egy kézenfekvő módja van az összeállításnak. A hatszögek esetében számos megközelítés létezik. Javaslom a köbös koordináták használatát elsődleges ábrázolásként. A tengelyirányú koordinátákat vagy az eltolási koordinátákat kell használni a térképek tárolásához és a koordináták felhasználó számára történő megjelenítéséhez.

Eltolási koordináták

A legáltalánosabb módszer minden következő oszlop vagy sor eltolása. Az oszlopokat oszlopnak vagy q-nak jelöljük. A sorokat sor vagy r jelöli. A páratlan vagy páros oszlopokat/sorokat eltolja, így a vízszintes és függőleges hatszögeknek két-két lehetősége van.


Vízszintes elrendezés "páratlan-r"


Vízszintes elrendezés „páros-r”


Függőleges "páratlan-q" elrendezés


Függőleges elrendezés „egyenletes-q”

Köbös koordináták

Egy másik módja annak, hogy a hatszögletű rácsokat úgy nézzük, mint három főtengelyek, nem kettő, mint a négyzetrácsoknál. Elegáns szimmetriát mutatnak.

Vegyünk egy kockák rácsát és vágjuk kiátlós sík, ahol x + y + z = 0. Ez egy furcsa ötlet, de segít leegyszerűsíteni a hatszöghálós algoritmusokat. Különösen a derékszögű koordinátákból tudunk majd szabványos műveleteket használni: koordináták összegzése és kivonása, skaláris mennyiséggel való szorzás és osztás, valamint távolságok.

Figyeljük meg a három főtengelyt a kockák rácsán, és ezek kapcsolatát a hattal átlós a hatszögrács irányai. A rács átlós tengelyei megfelelnek a hatszögrács fő irányának.


Hatszögek


kockákra

Mivel már vannak algoritmusaink négyzet- és kockahálókhoz, a kockakoordináták használatával ezeket az algoritmusokat hatszöghálókhoz igazíthatjuk. Ezt a rendszert fogom használni a cikk legtöbb algoritmusához. Az algoritmusok eltérő koordinátarendszerű használatához konvertálom a köbös koordinátákat, lefuttatom az algoritmust, majd visszakonvertálom.

Ismerje meg, hogyan működnek a hatszögletű háló köbös koordinátái. Ha hatszögeket választ ki, a három tengelynek megfelelő köbös koordináták kiemelve jelennek meg.

  1. A kockarács minden iránya megfelel vonalak hatszögekből álló rácson. Próbáljon meg egy hatszöget kiválasztani, amelynek z értéke 0, 1, 2, 3 a kapcsolat megtekintéséhez. A vonal kék színnel van jelölve. Próbáld meg ugyanezt x (zöld) és y (lila) esetén is.
  2. A hatszögrács minden iránya a kockarács két irányának kombinációja. Például egy hatszögrács "északi" része +y és -z között van, tehát minden egyes lépés "északra" növeli y-t 1-gyel, és csökkenti z-t 1-gyel.
A köbös koordináták ésszerű választás hatszögű rács koordinátarendszerhez. A feltétel x + y + z = 0, ezért meg kell őrizni az algoritmusokban. A feltétel azt is biztosítja, hogy minden hatszöghez mindig legyen kanonikus koordináta.

A kockákhoz és a hatszögekhez sok különböző koordinátarendszer létezik. Néhányukban a feltétel eltér x + y + z = 0-tól. A sok rendszer közül csak egyet mutattam meg. Az x-y , y-z , z-x -vel is létrehozhatunk köbös koordinátákat, amelyeknek megvannak a maguk érdekes tulajdonságai, de ezekre itt nem térek ki.

De lehet vitatkozni, hogy nem akarsz 3 számot tárolni a koordinátákhoz, mert nem tudod, hogyan kell így tárolni a térképet.

Axiális koordináták

Egy tengelyirányú koordinátarendszert, amelyet néha "trapéz alakú" koordinátarendszernek is neveznek, egy köbös koordináta-rendszer két vagy három koordinátájából állítanak fel. Mivel az x + y + z = 0 feltételünk van, a harmadik koordinátára nincs szükség. Az axiális koordináták hasznosak a térképek tárolására és a koordináták felhasználó számára történő megjelenítésére. A köbös koordinátákhoz hasonlóan itt is használhatja a derékszögű koordináták összeadása, kivonása, szorzása és osztása szokásos műveleteit.

Sok köbös koordinátarendszer és sok tengelyirányú koordinátarendszer létezik. Ebben az útmutatóban nem térek ki minden kombinációra. Két változót választok ki: q (oszlop) és r (sor). A cikk diagramjain a q az x-nek, az r pedig a z-nek felel meg, de ez a megfeleltetés tetszőleges, mert elforgathatja és elforgathatja a diagramokat, hogy különböző megfeleléseket kapjon.

Ennek a rendszernek az az előnye az eltolóhálókkal szemben, hogy az algoritmusok érthetőbbek. A rendszer hátránya, hogy egy téglalap alakú kártya tárolása kissé furcsa; lásd a térképek mentéséről szóló részt. Egyes algoritmusok köbkoordinátákban még világosabbak, de mivel az x + y + z = 0 feltételünk van, a harmadik implikált koordinátát ki tudjuk számítani és felhasználni ezekben az algoritmusokban. A projektjeimben a q, r, s tengelyeket hívom, így a feltétel így néz ki: q + r + s = 0, és szükség esetén ki tudom számítani az s = -q - r értéket.

Tengelyek

Az eltolási koordináták az első dolog, ami a legtöbb embernek eszébe jut, mivel ezek megegyeznek a négyzetrácsoknál használt szabványos derékszögű koordinátákkal. Sajnos a két tengely közül az egyiknek szembe kell futnia, és ez bonyolítja a dolgokat. A kocka- és tengelyrendszerek messzebbre mennek, és egyszerűbb algoritmusokkal rendelkeznek, de a kártya tárolása egy kicsit bonyolultabb. Létezik egy másik rendszer, amelyet „váltakozónak” vagy „kettősnek” hívnak, de itt nem fogjuk figyelembe venni; egyesek könnyebben dolgoznak vele, mint köbös vagy axiális.


Eltolási koordináták, köbös és axiális

Tengely az az irány, amelyben a megfelelő koordináta növekszik. Egy tengelyre merőleges az az egyenes, amelyen a koordináta állandó marad. A fenti rácsdiagramok merőleges vonalakat mutatnak.

Koordináta transzformáció

Valószínűleg tengelyirányú vagy eltolási koordinátákat fog használni a tervezés során, de sok algoritmus könnyebben kifejezhető köbös koordinátákkal. Ezért tudnunk kell a rendszerek közötti koordinátákat konvertálni.

Az axiális koordináták szorosan összefüggenek a köbös koordinátákkal, így az átalakítás egyszerű:

# köbös koordináták átalakítása axiális koordinátákká q = x r = z # tengelyirányú átalakítás köbös koordinátákká x = q z = r y = -x-z
A kódban ez a két függvény a következőképpen írható fel:

Kocka_hex(h) függvény: # axiális var q = h.x var r = h.z return Hex(q, r) függvény hex_kocka(h): # cubic var x = h.q var z = h.r var y = -x-z return Cube(x, y) , z)
Az eltolási koordináták egy kicsit bonyolultabbak:

Szomszédos hatszögek

Adott egy hatszög, melyik hat hatszög mellett van? Ahogy az várható volt, a válasz a köbkoordinátákban a legkönnyebb, az axiális koordinátákban meglehetősen egyszerű, és az eltolási koordinátákban egy kicsit nehezebb. Előfordulhat, hogy hat "átlós" hatszöget is ki kell számítania.

Köbös koordináták

Ha az egyik mezőt hexadecimális koordinátákkal mozgatja, a három köbös koordináta egyike +1-re, a másik pedig -1-re változik (az összegnek 0-nak kell maradnia). +1-nél három lehetséges koordináta változhat, -1-nél pedig a maradék kettő. Ez hat lehetséges változtatást ad nekünk. Mindegyik megfelel a hatszög valamelyik irányának. A legegyszerűbb és leggyorsabb módja a változtatások előre kiszámítása, és a Kocka(dx, dy, dz) kockakoordináta-táblázatba helyezése fordításkor:

Változó irányok = [ Kocka(+1, -1, 0), Kocka(+1, 0, -1), Kocka(0, +1, -1), Kocka(-1, +1, 0), Kocka( -1, 0, +1), Cube(0, -1, +1) ] függvény kocka_irány(irány): visszatérési irányok függvény kocka_szomszéd(hex, irány): return cube_add(hex, kocka_irány(irány))

Axiális koordináták

A korábbiakhoz hasonlóan most is a köbös rendszert használjuk. Vegyük a Cube(dx, dy, dz) táblát és alakítsuk át Hex(dq, dr) táblává:

Változó irányok = [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex(0, +1) ] függvény hex_irány(irány): visszatérési irányok függvény hex_szomszéd(hex, irány): var dir = hex_direction(direction) return Hex(hex.q + dir.q, hex.r + dir.r)

Eltolási koordináták

Az axiális koordinátákban változtatásokat hajtunk végre attól függően, hogy hol vagyunk a rácson. Ha eltolt oszlopban/sorban vagyunk, akkor a szabály eltér az eltolás nélküli oszlop/sor esetén.

Mint korábban, létrehozunk egy táblázatot azokból a számokból, amelyeket hozzá kell adni a oszlophoz és a sorhoz. Ezúttal azonban két tömbünk lesz, az egyik a páratlan oszlopokhoz/sorokhoz, a másik pedig a páros oszlopokhoz. Nézze meg az (1,1) pontot a fenti rácstérképen, és figyelje meg, hogyan változik a oszlop és a sor, ahogy mozog mind a hat irányban. Most ismételjük meg a folyamatot (2,2) esetén. A táblázatok és a kódok mind a négy típusú eltolási rács esetében eltérőek lesznek; itt található az egyes rácstípusok megfelelő kódja.

Odd-r
var irányok = [ [ 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) ] ] függvény offset_neighbor(hex, direction): var parity = hex.sor & 1 var dir = irányok return Hex(hex.col + dir.col, hex.row + dir.sor)


Even-r
var irányok = [ [ 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) ] ] függvény offset_neighbor(hex, direction): var parity = hex.sor & 1 var dir = irányok return Hex(hex.col + dir.col, hex.row + dir.sor)


Rács páros (PÁROS) és páratlan (páratlan) sorokhoz

Páratlan-q
var irányok = [ [ 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) ] ] függvény offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = irányok return Hex(hex.col + dir.col, hex.row + dir.sor)


Páros-q
var irányok = [ [ 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) ] ] függvény offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = irányok return Hex(hex.col + dir.col, hex.row + dir.sor)


Rács páros (PÁROS) és páratlan (páratlan) oszlopokhoz

Diagonal vonalok

Az "átlós" térben hex koordinátákkal való mozgás a három köbkoordináta egyikét ±2-vel, a másik kettőt ∓1-gyel megváltoztatja (az összegnek 0-nak kell maradnia).

Változó átlói = [ kocka(+2, -1, -1), kocka(+1, +1, -2), kocka(-1, +2, -1), kocka(-2, +1, +1 ), Cube(-1, -1, +2), Cube(+1, -2, +1) ] függvény cube_diagonal_neighbor(hex, direction): return cube_add(hex, diagonals)
Mint korábban, ezeket a koordinátákat a három koordináta valamelyikének eldobásával axiális koordinátákká alakíthatjuk, vagy az eredmények kiszámításával eltolási koordinátákká alakíthatjuk át.


Távolságok

Köbös koordináták

A köbös koordinátarendszerben minden hatszög egy kocka a háromdimenziós térben. A szomszédos hatszögek 1 távolságra vannak egymástól a hatszögletű rácsban, de 2 távolságra a kockarácsban. Ez megkönnyíti a távolságok kiszámítását. Egy négyzetrácsban a Manhattan távolságok abs(dx) + abs(dy) . A kockákból álló rácsban a Manhattan távolságok abs(dx) + abs(dy) + abs(dz) . A hatszögrácsban lévő távolság ezek felével egyenlő:

Függvény kocka_távolság(a, b): visszatérés (abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z)) / 2
Ennek a jelölésnek az lenne a megfelelője, ha azt mondanánk, hogy a három koordináta egyikének a másik kettő összegének kell lennie, majd ezt veszi távolságnak. Az alábbiakban választhatja a felező formát vagy a maximális értékű formát, de ezek ugyanazt az eredményt adják:

Függvény kocka_távolság(a, b): return max(abs(a.x - b.x), abs(a.y - b.y), abs(a.z - b.z))
Az ábrán a maximális értékek színnel vannak kiemelve. Vegye figyelembe azt is, hogy minden szín a hat „átlós” irány egyikét képviseli.

GIF


Axiális koordináták

Az axiális rendszerben a harmadik koordináta implicit módon van kifejezve. A távolság kiszámításához konvertáljuk át axiálisról köbösre:

Függvény hex_távolság(a, b): var ac = hex_kocka(a) var bc = hex_kocka(b) return kocka_távolság(ac, bc)
Ha a fordító inline (inline) hex_to_cube és cube_distance az Ön esetében, akkor a következő kódot generálja:

Függvény hex_távolság(a, b): visszatérés (abs(a.q - b.q) + abs(a.q + a.r - b.q - b.r) + abs(a.r - b.r)) / 2
A hatszögek közötti távolságok axiális koordinátákban történő felírására sokféleképpen van lehetőség, de az írási módtól függetlenül az axiális rendszerben a hatszögek közötti távolságot a köbös rendszerben a Manhattan távolságból vonjuk ki. Például a leírt "különbségek különbségét" úgy kapjuk meg, hogy az a.q + a.r - b.q - b.r mint a.q - b.q + a.r - b.r, és a kocka_távolság felezési forma helyett a maximális érték alakot használjuk. Mindegyik hasonló, ha látja a kapcsolatot a köbös koordinátákkal.

Eltolási koordináták

Az axiális koordinátákhoz hasonlóan az eltolási koordinátákat köbkoordinátákká alakítjuk, majd a köbös távolságot használjuk.

Függvény offset_distance(a, b): var ac = offset_to_cube(a) var bc = offset_to_cube(b) return cube_distance(ac, bc)
Sok algoritmushoz ugyanazt a mintát fogjuk használni: hatszögekből kockákká alakítjuk, futtassuk az algoritmus köbös változatát, és konvertáljuk a köbös eredményeket hatszög koordinátákká (tengely- vagy eltolási koordinátákká).

Vonalak rajzolása

Hogyan húzzunk vonalat az egyik hatszögből a másikba? Lineáris interpolációt használok vonalak rajzolásához. A vonal egységes mintavételezése N+1 pontban történik, és kiszámítják, hogy ezek a minták mely hatszögekben vannak.

GIF


  1. Először kiszámítjuk az N értéket, amely a végpontok közötti távolság hatszögben.
  2. Ezután egyenletesen mintát veszünk N+1 pontból az A és B pontok között. Lineáris interpoláció segítségével meghatározzuk, hogy i 0-tól N-ig terjedő értékei esetén, beleértve ezeket is, minden pont A + (B - A) * 1,0/N * én . Az ábrán ezek a vezérlőpontok kék színnel láthatók. Az eredmény a lebegőpontos koordináták.
  3. Alakítsunk vissza minden vezérlőpontot (lebegőpontot) hatszögekké (int). Az algoritmus neve cube_round (lásd alább).
Mindent összerakva húzz egy vonalat A-tól B-ig:

lerp(a, b, t) függvény: // float return a + (b - a) * t függvény cube_lerp(a, b, t): // hatszögeknél return Cube(lerp(a.x, b.x, t), lerp(a.y, b.y, t), lerp(a.z, b.z, t)) függvény cube_linedraw(a, b): var N = kocka_távolság(a, b) var results = minden 0 ≤ i ≤ N esetén: results.append( cube_round(cube_lerp(a, b, 1.0/N * i))) eredményeket ad vissza
Megjegyzések:

  • Vannak esetek, amikor a cube_lerp olyan pontot ad vissza, amely pontosan két hatszög közötti élen van. Ezután a cube_round egyik vagy másik irányba mozgatja. A vonalak jobban néznek ki, ha egy irányba mozgatják őket. Ezt úgy teheti meg, hogy a hurok elindítása előtt hozzáad egy "epsilon"-hatszögletű kockát (1e-6, 1e-6, -2e-6) az egyik vagy mindkét végponthoz. Ez egy irányba "löki" a vonalat, így nem ütközik a szélekhez.
  • A DDA vonalalgoritmus négyzetrácsokban egyenlővé teszi N-t az egyes tengelyek mentén mért maximális távolsággal. Ugyanezt tesszük a köbös térben, ami hasonló a távolsághoz egy hatszögrácsban.
  • A cube_lerp függvénynek egy lebegési koordinátákkal rendelkező kockát kell visszaadnia. Ha statikusan gépelt nyelven programoz, nem fogja tudni használni a kocka típust. Ehelyett meghatározhat egy FloatCube típust, vagy beilleszthet egy függvényt a vonalrajzi kódba, ha nem szeretne másik típust megadni.
  • Optimalizálhatja a kódot az inline cube_lerp segítségével, majd kiszámíthatja a B.x-A.x , B.x-A.y és 1.0/N értékeket a cikluson kívül. A szorzás átváltható ismételt összegzéssé. Az eredmény valami olyan lesz, mint egy DDA vonalalgoritmus.
  • Axiális vagy köbös koordinátákat használok vonalak rajzolásához, de ha eltolási koordinátákkal szeretne dolgozni, nézze meg a .
  • Számos lehetőség van a vonalak rajzolására. Néha „átfestésre” van szükség. Küldtek kódot hatszögletű szuperfedett vonalak rajzolására, de még nem néztem bele.

Mozgó tartomány

Koordináta tartomány

Ha adott egy hatszög középpontja és egy N tartomány, mely hatszögek vannak N lépésen belül?

Az inverzt megtehetjük a hatszögek közötti távolság képletből távolság = max(abs(dx), abs(dy), abs(dz)) . Az N-en belüli összes hatszög megkereséséhez max(abs(dx), abs(dy), abs(dz)) ≤ N . Ez azt jelenti, hogy mindhárom értékre szükség van: abs(dx) ≤ N és abs(dy) ≤ N és abs(dz) ≤ N . Az abszolút értéket eltávolítva -N ≤ dx ≤ N és -N ≤ dy ≤ N és -N ≤ dz ≤ N kapjuk. A kódban ez egy beágyazott ciklus lesz:

Var eredmények = mindegyik -N ≤ dx ≤ N: minden -N ≤ dy ≤ N: mindegyik -N ≤ dz ≤ N: if dx + dy + dz = 0: results.append(cube_add(center, Cube(dx) , dy, dz)))
Ez a ciklus működni fog, de elég hatástalan lesz. Az összes dz érték közül, amelyen áthurkolunk, csak egy felel meg a dx + dy + dz = 0 kockafeltételnek. Ehelyett közvetlenül kiszámoljuk a dz értékét, amely megfelel a feltételnek:

Var eredmények = minden -N ≤ dx ≤ N: minden max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy results.append(cube_add( középpont, kocka(dx, dy, dz)))
Ez a ciklus csak a szükséges koordináták mentén halad. Az ábrán minden tartomány egy vonalpár. Minden sor egy egyenlőtlenség. Vegyünk minden hatszöget, amely kielégíti a hat egyenlőtlenséget.

GIF


Átfedő tartományok

Ha több tartományban lévő hatszögeket kell találnia, akkor a hatszögek listájának létrehozása előtt metszi a tartományokat.

Ezt a problémát az algebra vagy a geometria felől közelítheti meg. Algebrailag minden régiót -N ≤ dx ≤ N alakú egyenlőtlenségi feltételekkel fejezünk ki, és meg kell találnunk e feltételek metszéspontját. Geometriailag minden régió egy kocka a 3D térben, és két kockát metszünk a 3D térben, hogy egy téglatestet kapjunk a 3D térben. Ezután visszavetítjük az x + y + z = 0 síkra, hogy hatszögeket kapjunk. Ezt a feladatot algebrai úton fogom megoldani.

Először átírjuk a -N ≤ dx ≤ N feltételt általánosabb formában x min ≤ x ≤ x max , és vegyük x min = középpont.x - N és x max = középpont.x + N . Tegyük meg ugyanezt y és z esetében is, így az előző rész kódjának általános formáját kapjuk:

Var eredmények = minden xmin ≤ x ≤ xmax: minden max(ymin, -x-zmax) ≤ y ≤ min(ymax, -x-zmin): var z = -x-y eredmények.append(Cube(x, y, z))
Két a ≤ x ≤ b és c ≤ x ≤ d tartomány metszéspontja max(a, c) ≤ x ≤ min(b, d) . Mivel a hatszögek területét x, y, z feletti tartományokként fejezzük ki, az x, y, z tartományok mindegyikét külön-külön metszhetjük, majd egy beágyazott hurok segítségével létrehozhatjuk a metszéspontban lévő hatszögek listáját. A hatszögek egy területére x min = H.x - N és x max = H.x + N , hasonlóan y és z . Két hatszög tartomány metszéspontjához vegyük x min = max(H1.x - N, H2.x - N) és x max = min(H1.x + N, H2.x + N), hasonlóan y ill. z . Ugyanez a minta működik három vagy több terület metszéspontja esetén is.

GIF


Akadályok

Ha vannak akadályok, akkor a legegyszerűbb a távolságkorlátozás kitöltése (szélesség-első keresés). Az alábbi ábrán négy lépésre korlátozzuk magunkat. A kódban a fringes[k] az összes hatszögből álló tömb, amely k lépésben elérhető. Minden alkalommal, amikor áthaladunk a főhurkon, a k-1 szintet k szinttel bővítjük.

Függvény cube_reachable(start, mozgás): var visited = set() add start a látogatotthoz var fringes = fringes.append() minden 1-hez< 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

Fordul

Adott egy hatszögvektor (két hatszög különbsége), előfordulhat, hogy el kell forgatnunk, hogy egy másik hatszögre mutasson. Ezt köbös koordinátákkal könnyű megtenni, ha ragaszkodunk az 1/6-os körforgáshoz.

A 60°-os jobbra forgatás minden koordinátát egy pozícióval jobbra mozgat:

[x, y, z] - [-z, -x, -y]
60°-os balra forgatással minden koordináta egy pozícióval balra kerül:

[x, y, z] - [-y, -z, -x]



„Játszott” [az eredeti cikkben] a diagrammal, láthatja, hogy minden elforgatás 60°-os változtatások jelzi és fizikailag „forgatja” a koordinátákat. 120°-os elforgatás után a jelek ismét ugyanazok lesznek. A 180°-os elforgatás előjeleket vált, de a koordináták visszatérnek eredeti helyzetükbe.

Íme a P pozíció teljes forgatókönyve a C központi pozíció körül, ami egy új R pozíciót eredményez:

  1. Konvertálja a P és C pozíciókat köbös koordinátákká.
  2. Vektor kiszámítása a középpont kivonásával: P_-ból_C = P - C = Kocka(P.x - C.x, P.y - C.y, P.z - C.z) .
  3. Forgassa el a P_from_C vektort a fent leírtak szerint, és rendelje hozzá a végső vektorhoz az R_from_C jelölést.
  4. A vektor visszakonvertálása pozícióba a középpont hozzáadásával: R = R_C-ből + C = Kocka(R_C.x + C.x, R_C.y_ból + C.y, R_C.z_ból + C.z) .
  5. Az R köbös pozíciót visszaalakítja a kívánt koordináta-rendszerbe.
Az átalakulásnak több szakasza van, de mindegyik meglehetősen egyszerű. Lehetőség van ezen lépések némelyikének lerövidítésére, ha az elforgatást közvetlenül axiális koordinátákban határozzuk meg, de a hexavektorok nem működnek eltolási koordinátákkal, és nem tudom, hogyan lehetne lerövidíteni az eltolási koordináták lépéseit. Tekintse meg a stackexchange-ról szóló vitát is a forgatás kiszámításának egyéb módjaiért.

Gyűrűk

Egyszerű gyűrű

Annak megállapításához, hogy egy adott hatszög egy adott sugarú sugarú gyűrűhöz tartozik-e, ki kell számítania a távolságot ettől a hatszögtől a középpontig, és meg kell találnia, hogy egyenlő-e a sugárral. Az összes ilyen hatszög listájának megtekintéséhez sugárnyi lépéseket kell tennie a középponttól, majd követnie kell az elforgatott vektorokat a gyűrű mentén.

Függvény cube_ring(center, sugar): var results = # ez a kód nem működik sugár == 0 esetén; érted miért? var kocka = kocka_add(közép, kocka_skálája(kocka_irány(4), sugár)) minden 0 ≤ i< 6: for each 0 ≤ j < radius: results.append(cube) cube = cube_neighbor(cube, i) return results
Ebben a kódban a kocka egy gyűrűn kezdődik, amelyet egy nagy nyíl jelzi a diagram közepétől a sarkáig. A 4-es szöget választottam kezdésnek, mert ez megfelel az irányszámaim mozgásának útvonalának. Eltérő kezdőszögre lehet szüksége. A belső hurok minden szakaszában a kocka egy hatszöget mozgat a gyűrű körül. 6 * sugarú lépés után oda ér, ahonnan indult.


Spirális gyűrűk

A gyűrűkön spirálisan haladva kitölthetjük a gyűrűk belső részeit:

Függvény cube_spiral(közép, sugár): var eredmények = minden 1 ≤ k ≤ sugár esetén: eredmények = eredmények + kocka_gyűrű(közép, k) eredményt ad



Egy nagy hatszög területe az összes kör összege plusz 1 a középponthoz. Használja ezt a képletet a terület kiszámításához.

A hatszögek ilyen módon történő bejárása a mozgási tartomány kiszámításához is használható (lásd fent).

Láthatósági terület

Mi látható egy adott pozícióból adott távolságból, és nem akadályozzák meg? Ezt a legegyszerűbben úgy határozhatjuk meg, hogy egy adott tartományon belül minden hatszögre vonalat húzunk. Ha a vonal nem találkozik a falakkal, akkor egy hatszöget lát. Mozgassa az egeret a hatszögek fölé [az eredeti cikk diagramján], hogy megtudja, hogyan húzódnak a vonalak ezekhez a hatszögekhez és a falakhoz, amelyekkel a vonalak találkoznak.

Ez az algoritmus nagy területeken lassú lehet, de könnyen megvalósítható, ezért javaslom, hogy kezdje vele.

GIF



A láthatóságnak sokféle meghatározása létezik. Szeretné látni egy másik hatszög közepét az eredeti középpontjától? Szeretné látni egy másik hatszög bármely részét az eredeti közepétől? Esetleg egy másik hatszög bármely része a kezdeti oldal bármely pontjáról? A kilátást akadályozó akadályok kisebbek egy teljes hatszögnél? A hatókör trükkösebb és változatosabb fogalom, mint amilyennek első pillantásra tűnik. Kezdjük a legegyszerűbb algoritmussal, de számítsunk arra, hogy biztosan helyesen számítja ki a választ a projektben. Vannak olyan esetek is, amikor egy egyszerű algoritmus logikátlan eredményt ad.

Ezt az útmutatót a jövőben szeretném bővíteni. Nekem van



Véletlenszerű cikkek

Fel