Altıgen prizmanın çeşitli konumlarda nasıl tasvir edileceğini öğreneceğiz.

Normal bir altıgen inşa etmenin farklı yollarını öğrenin, altıgen çizimleri çizin, doğru olup olmadıklarını kontrol edin. Altıgenlerden altıgen prizmalar çizin.

Şekil l'deki altıgen prizmayı düşünün. 3.52 ve Şekil 2'deki ortogonal çıkıntıları. 3.53. Düzenli altıgenler altıgen prizmanın (altıgen) tabanında bulunur, yan yüzler aynı dikdörtgenlerdir. Bir altıgeni perspektifte doğru bir şekilde tasvir etmek için, önce tabanını perspektifte nasıl doğru bir şekilde tasvir edeceğinizi öğrenmelisiniz (Şekil 3.54). Şekildeki altıgende. 3.55 üst kısım birden altıya kadar sayılarla işaretlenmiştir. 1 ve 3, 4 ve 6 noktalarını dikey çizgilerle birleştirirseniz, bu çizgilerin dairenin merkez noktasıyla birlikte çapı 5 - 2'yi dört eşit parçaya böldüğünü görebilirsiniz (bu parçalar yaylarla gösterilir). Bir altıgenin karşılıklı kenarları birbirine paraleldir ve merkezinden geçen ve iki köşeyi birleştiren bir doğru (örneğin, 6 - 1 ve 4 - 3 kenarları 5 - 2'ye paraleldir). Bu gözlemler, altıgeni perspektif olarak oluşturmanıza ve bu yapının doğruluğunu doğrulamanıza yardımcı olacaktır. Bir temsilden düzgün bir altıgen oluşturmanın iki yolu vardır: çember temelinde ve kare temelinde.

Sınırlandırılmış daireye göre. Şek. 3.56. Düzgün bir altıgenin tüm köşeleri, yarıçapı altıgenin kenarına eşit olan çembere aittir.


Yatay altıgen. Yatay, serbest bir elips, yani perspektifte çevrelenmiş daire çizin. Şimdi üzerinde altıgenin köşeleri olan altı nokta bulmanız gerekiyor. Verilen dairenin herhangi bir çapını merkezinden geçirin (Şek. 3.57). Elips üzerinde uzanan çapın uç noktaları - 5 ve 2, altıgenin köşeleridir. Kalan köşeleri bulmak için bu çapı dört eşit parçaya bölmeniz gerekir. Çap zaten dairenin merkez noktası tarafından iki yarıçapa bölünmüştür, her bir yarıçapı ikiye bölmek için kalır. Bir perspektif çizimde, dört parçanın tümü, izleyiciden uzaklıkla eşit olarak azaltılır (Şekil 3.58). Şimdi yarıçapların orta noktalarından - A ve B noktaları - 5 - 2 düz çizgisine dik düz çizgiler çizin. Yönlerini 5 ve 2 noktalarındaki elipse teğetleri kullanarak bulabilirsiniz (Şekil 3.59). Bu teğetler 5 - 2 çapına dik olacaktır ve bu teğetlere paralel A ve B noktalarından geçen çizgiler de 5 - 2 doğrusuna dik olacaktır. 1, 3, 4, 6 ( (Bkz. Şekil 3.60) Altı köşeyi de düz çizgilerle bağlayın (Şekil 3.61).

Yapınızın doğruluğunu farklı şekillerde kontrol edin. Yapı doğruysa, altıgenin zıt köşelerini birleştiren çizgiler dairenin merkezinde kesişir (Şekil 3.62) ve altıgenin karşı tarafları karşılık gelen çaplara paraleldir (Şekil 3.63). Kontrol etmenin başka bir yolu Şekil 2'de gösterilmektedir. 3.64.

Dikey altıgen. Böyle bir altıgende, 7 ve 3, b ve 4 noktalarını birleştiren düz çizgiler ve ayrıca 5 ve 2 noktalarında çevrelenmiş daireye teğetler dikey bir yöne sahiptir ve bunu perspektif çizimde tutar. Böylece, elipse iki dikey teğet çizerek, 5 ve 2 noktalarını (teğet noktaları) buluruz. Bunları düz bir çizgi ile bağlayın ve ardından ortaya çıkan çapı 5 - 2, perspektif kesimlerini dikkate alarak 4 eşit parçaya bölün (Şekil 3.65). A ve B noktalarından geçen dikey çizgiler çizin ve elips ile kesişme noktalarında 1,3,6L4 noktalarını bulun. Ardından 1 - 6 arasındaki noktaları düz çizgilerle seri olarak bağlayın (Şekil 3.66). Altıgenin yapısının doğruluğunu önceki örnekte olduğu gibi kontrol edin.

Açıklanan bir altıgen oluşturma yöntemi, bu rakamı, verilen oranların bir karesinden daha perspektif olarak çizmek daha kolay olan bir daireye dayalı olarak elde etmenizi sağlar. Bu nedenle, bu altıgen oluşturma yöntemi en doğru ve çok yönlü gibi görünüyor. Kareye dayalı yapım yöntemi, çizimde zaten bir küp olduğunda, başka bir deyişle karenin oranları ve kenarlarının yönü belirlendiğinde bir altıgen tasvir etmeyi kolaylaştırır.

Bir kareye dayalı. Şek. 3.67. 5 - 2 yatay yönünde bir kareye yazılan altıgen, karenin kenarına eşittir ve dikey yönde uzunluğundan daha küçüktür.

Dikey altıgen. Perspektifte dikey bir kare çizin. Yatay kenarlarına paralel köşegenlerin kesişiminden düz bir çizgi çizin. Ortaya çıkan segment 5 - 2'yi dört eşit parçaya bölün ve A ve B noktalarından dikey çizgiler çizin (Şekil 3.68). Altıgenin üst ve alt çizgileri karenin kenarlarıyla aynı hizada değildir. Onları karenin yatay kenarlarından belirli bir mesafede (1114 a) ve onlara paralel çizin. Bu şekilde bulunan 1 ve 3 noktalarını 2. nokta ile ve 6. ve 4. noktaları 5. nokta ile birleştirerek bir altıgen elde ederiz (Şekil 3.69).

Yatay altıgen aynı sırayla inşa edilmiştir (Şekil 3.70 ve 3.71).

Bu yapım yöntemi sadece yeterli açıklığa sahip altıgenler için uygundur. Altıgenin açıklanması önemsiz ise, çevreleme yöntemini kullanmak daha iyidir. Bir kare ile oluşturulmuş bir altıgeni test etmek için zaten bildiğiniz yöntemleri kullanabilirsiniz.

Ek olarak, ortaya çıkan altıgenin etrafındaki bir daireyi tanımlamak için bir tane daha var (çiziminizde - bir elips). Altıgenin tüm köşeleri bu elipse ait olmalıdır.

Altıgen çizme becerilerine hakim olduktan sonra, özgürce altıgen prizma çizmeye devam edeceksiniz. Şekil 2'deki şemaya yakından bakın. 3.72, ayrıca sınırlandırılmış daireye (Şekil 3.73; 3.74 ve 3.75) ve bir kareye (Şekil 3.76; 3.77 ve 3.78) dayalı altıgen prizmalar oluşturma şemaları. Farklı şekillerde dikey ve yatay altıgenler çizin. Dikey altıgen çiziminde, yan yüzlerin uzun kenarları birbirine dikey düz çizgilerle paralel olacak ve taban altıgen ufuk çizgisinden ne kadar uzaksa o kadar açık olacaktır. Yatay altıgenin çiziminde, yan yüzlerin uzun kenarları ufuktaki kaybolma noktasında birleşecek ve taban altıgenin açıklığı, bakandan ne kadar uzaksa o kadar büyük olacaktır. Bir altıgen tasvir ederken, her iki tabanın paralel kenarlarının perspektifte birleştiğinden emin olun (Şekil 3.79; 3.80).

Bir daire içinde yazılı düzenli bir altıgen oluşturur. Belirli bir kenar boyunca düzgün bir beşgen oluşturur. Pusula iğnesini daire ile az önce çizdiğiniz yayın kesişim noktasına getirin. Bu yapı bir kare ve bir pusula kullanılarak yapılabilir. Bir ray ve 30X60 ° kare kullanılarak normal bir altıgen oluşturulabilir. Düzgün bir altıgenin köşelerinin köşe noktalarını çizin.


Bir daire içinde yazılı bir eşkenar üçgenin yapımı. Böyle bir üçgenin köşeleri, bir pusula ve 30 ve 60 ° açılı bir kare veya sadece bir pusula kullanılarak oluşturulabilir. 2-3 tarafını oluşturmak için, yuvarlanma yolunu kesikli çizgilerle gösterilen konuma ayarlayın ve üçgenin üçüncü köşesini tanımlayacak olan 2. nokta boyunca düz bir çizgi çizin.

Yöntem 1/3: Pusula kullanarak mükemmel bir altıgen çizin

1. noktayı daire üzerinde işaretliyoruz ve onu beşgenin köşelerinden biri olarak alıyoruz. D çapında bir daire verilsin; içine normal bir yedigen yazmanız gerekir (Şek. 65). Dairenin dikey çapını yedi eşit parçaya bölün. D çemberinin çapına eşit bir yarıçapa sahip 7 noktasından, F noktasındaki yatay çapın devamı ile kesişme noktasına kadar bir yay tanımlarız. F noktasına çokgenin kutbu denir.

Düzgün çokgenler oluşturma tekniği, açıların açıortaylarını ve bölümlerin orta dikmelerini oluşturma yeteneğine dayanır.

Bu tablonun ilk sütunu, düzenli bir yazılı çokgenin kenar sayısını ve ikinci - katsayıları gösterir. Belirli bir çokgenin kenar uzunluğu, belirli bir dairenin yarıçapının, bu çokgenin kenar sayısına karşılık gelen bir faktörle çarpılmasıyla elde edilir.

Bu video eğitiminin konusu "Düzenli Çokgenler Oluşturma"dır. Ayrıca bir kez daha düzgün bir çokgenin tanımını vereceğiz, grafiksel olarak göstereceğiz ve sonra bir kez daha böyle bir şeklin etrafındaki yazılı ve çevrelenmiş dairelerin merkezlerinin çakışacağından emin olacağız. Bu çokgenin içine her zaman bir daire çizebilir ve her zaman onun çevresine bir daire çizebilirsiniz. Önceki derslerde, köşelerinin açıortaylarının ve kenarlarına ortanca diklerinin çokgenlerin özelliklerini tanımlamada temel bir rol oynadığını öğrendik.

4. Gerekli düzenli ABC üçgenini aldı. Problem çözüldü. 3. Pusulanın bir ayağını daire üzerinde rastgele bir A1 noktasına yerleştirdikten sonra, ikinci ayağı kullanarak A2 noktasını aynı daire üzerinde işaretleyin ve A1 noktasına bağlayın. Altıgenin ilk tarafını alıyoruz. 3. O noktasından atılan çokgenin kenarlarına orta dikleri kullanarak, tüm kenarlarını ve bitişik köşeleri arasında çevrelenmiş dairenin tüm yaylarını ikiye böleriz.

Geometrik yapı eğitimin önemli kısımlarından biridir. İğne çizilen çizgiyi delmelidir. Pusula ne kadar doğru ayarlanırsa yapı o kadar doğru olur. Daireyi kesen başka bir yay çizin. Yayların altı kesişme noktasının tamamını orijinal olarak çizilmiş daire ile ardışık olarak birleştirin. Bu durumda, altıgen yanlış olabilir.

IV, V ve VI noktalarından / - // - /// köşelerini elde etmek için daire ile kesişme noktasına yatay çizgiler çizin

Bulunan köşeleri seri olarak birbirine bağlarız. Bir yedigen, F kutbundan ışınlar çizerek ve dikey çapın tek bölümleri aracılığıyla oluşturulabilir. Her iki dairenin merkezleri çakışıyor (Şekil 1'de O noktası). Şekil ayrıca çevrelenmiş (R) ve yazılı (r) dairelerin yarıçaplarını da göstermektedir.

Bir altıgenin inşası, kenarının çevrelenmiş dairenin yarıçapına eşit olduğu gerçeğine dayanır. Bu derste, pusula ve cetvel kullanarak düzgün çokgenler oluşturmanın yollarını inceleyeceğiz. İkinci yöntem, bir daire içinde yazılı düzenli bir altıgen oluşturursanız ve ardından köşelerini bir tane ile birleştirirseniz, bir eşkenar üçgen elde etmenize dayanır. Verilen yöntem, herhangi bir sayıda kenarı olan düzgün çokgenler oluşturmak için uygundur.

Altıgen ızgaralar (altıgen ızgaralar) bazı oyunlarda kullanılır, ancak bunlar dikdörtgen ızgaralar kadar basit ve yaygın değildir. Neredeyse 20 yıldır altıgen ızgaralar hakkında kaynaklar topluyorum ve bu kılavuzu en basit kodda uygulanan en zarif yaklaşımlardan bazıları için yazdım. Bu makale genellikle Charles Fu ve Clark Verbrugge'un eğitimlerini kullanır. Altıgen ağlar oluşturmanın farklı yollarını, bunların nasıl ilişkili olduğunu ve en yaygın algoritmaları anlatacağım. Bu makalenin birçok bölümü etkileşimlidir: bir ızgara türü seçmek, ilgili şemaları, kodu ve metinleri değiştirir. (Yaklaşık Şerit: bu sadece orijinal için geçerlidir, incelemenizi tavsiye ederim. Çeviride, orijinalin tüm bilgileri korunur, ancak etkileşim olmadan.).

Bu makaledeki kod örnekleri sözde kodla yazılmıştır, bu nedenle kendi uygulamanızı yazmak için okunması ve anlaşılması daha kolaydır.

Geometri

Altıgenler altıgen çokgenlerdir. Düzenli altıgenlerin tüm kenarları (yüzleri) aynı uzunluktadır. Sadece normal altıgenlerle çalışacağız. Tipik olarak altıgen ızgaralar, yatay (sivri uçlu) ve dikey (düz tepeli) yönler kullanır.


Düz (sol) ve sivri (sağ) üst altıgenler

Altıgenlerin 6 yüzü vardır. Her yüz iki altıgen için ortaktır. Altıgenlerin 6 köşe noktası vardır. Her köşe noktası üç altıgen tarafından paylaşılır. Kafes parçalar (kareler, altıgenler ve üçgenler) hakkındaki makalemde merkezler, kenarlar ve köşe noktaları hakkında daha fazla bilgi edinebilirsiniz.

köşeler

Düzgün altıgende iç açılar 120° dir. Her biri iç açıları 60 ° olan bir eşkenar üçgen olan altı "kama" vardır. köşe noktası Bence(60 ° * i) + 30 ° uzaklıkta, merkezden boyut birimleri. Kodda:

hex_corner işlevi (merkez, boyut, i): var angle_deg = 60 * i + 30 var angle_rad = PI / 180 * angle_deg dönüş Nokta (center.x + size * cos (angle_rad), center.y + size * sin (angle_rad) )
Altıgeni doldurmak için çokgenin köşelerini hex_corner'dan (..., 0) hex_corner'a (..., 5) almanız gerekir. Altıgenin dış hatlarını çizmek için bu köşeleri kullanın ve sonra çizgiyi tekrar hex_corner (..., 0) içinde çizin.

İki yön arasındaki fark, x ve y'nin yer değiştirmesidir, bu da açıların değişmesine neden olur: düz tepeli altıgenlerin açıları 0 °, 60 °, 120 °, 180 °, 240 °, 300 ° ve sivri uçlu altıgenler 30°, 90°, 150°, 210°, 270°, 330°'dir.


Düz ve keskin üst altıgen açıları

Boyut ve konum

Şimdi bazı altıgenleri birlikte konumlandırmak istiyoruz. Yatay yönlendirmede, altıgenin yüksekliği yükseklik = boyut * 2'dir. Bitişik altıgenler arasındaki dikey mesafe vert = yükseklik * 3/4.

Altıgenin genişliği genişlik = sqrt (3) / 2 * yüksekliktir. Bitişik altıgenler arasındaki yatay mesafe horiz = genişlik.

Bazı oyunlar, normal altıgenlerle tam olarak eşleşmeyen altıgenler için piksel resmi kullanır. Bu bölümde açıklanan açı ve konum formülleri bu altıgenlerin boyutlarıyla eşleşmeyecektir. Altıgen ağ oluşturma algoritmalarını açıklayan makalenin geri kalanı, altıgenler hafifçe gerilmiş veya sıkıştırılmış olsa bile geçerlidir.



Koordinat sistemleri

Altıgenleri bir ızgaraya monte etmeye başlayalım. Kare ızgaralar söz konusu olduğunda, birleştirmenin tek bir açık yolu vardır. Altıgenler için birçok yaklaşım vardır. Birincil temsil olarak kübik koordinatları kullanmanızı öneririm. Haritaları depolamak ve kullanıcı için koordinatları görüntülemek için eksen koordinatları veya ofset koordinatları kullanılmalıdır.

Ofset koordinatları

En yaygın yaklaşım, sonraki her bir sütunu veya satırı dengelemektir. Sütunlar col veya q olarak belirtilir. Satırlar, satır veya r olarak belirlenir. Tek veya çift sütunlar / satırlar kaydırılabilir, bu nedenle yatay ve dikey altıgenler iki seçeneğe sahiptir.


Tek-r yatay düzen


Çift-r yatay düzenleme


Tek-q dikey düzenleme


Çift-q dikey düzenleme

Kübik koordinatlar

Altıgen ızgaralarına bakmanın başka bir yolu da onları görmektir. üç ana eksenler, değil 2 kareler ızgaralarında olduğu gibi. Zarif simetri sergilerler.

Bir küp ızgarası alın ve kesmek x + y + z = 0'daki köşegen düzlem. Bu garip bir fikir, ancak altıgen ızgara algoritmalarını basitleştirmemize yardımcı olacak. Özellikle, Kartezyen koordinatlardan standart işlemleri kullanabileceğiz: koordinatların toplanması ve çıkarılması, bir skalerle çarpma ve bölme ve ayrıca mesafeler.

Küp ızgarasındaki üç ana eksene ve bunların altıyla ilişkisine dikkat edin. diyagonal altıgen ızgarasının yönleri. Izgaranın diyagonal eksenleri, altıgen ızgaranın taban yönüne karşılık gelir.


altıgenler


Küba

Zaten kareler ve küpler için algoritmalarımız olduğundan, kübik koordinatları kullanmak, bu algoritmaları altıgen ızgaralarına uyarlamamızı sağlar. Bu makaledeki algoritmaların çoğu için bu sistemi kullanacağım. Algoritmaları farklı bir koordinat sistemiyle kullanmak için kübik koordinatları dönüştürüyorum, algoritmayı çalıştırıyorum ve sonra onları geri dönüştürüyorum.

Bir altıgen ızgarası için kübik koordinatların nasıl çalıştığını keşfedin. Altıgenleri seçtiğinizde, üç eksene karşılık gelen kübik koordinatlar vurgulanır.

  1. Küp ızgarasının her yönü, çizgiler altıgen bir ızgara üzerinde. Bağlantıyı görmek için z'nin 0, 1, 2, 3'e eşit olduğu bir altıgen seçmeye çalışın. Çizgi mavi renkle vurgulanır. Aynısını x (yeşil) ve y (mor) için deneyin.
  2. Her altıgen ızgara yönü, iki küp ızgara yönünün birleşimidir. Örneğin, altıgen ızgaranın kuzeyi + y ile -z arasındadır, bu nedenle kuzeydeki her adım y'yi 1 artırır ve z'yi 1 azaltır.
Kübik koordinatlar, altıgen ızgara koordinat sistemi için akıllı bir seçimdir. Koşul x + y + z = 0'dır, bu nedenle algoritmalarda korunmalıdır. Bu koşul ayrıca her altıgen için her zaman bir kurallı koordinat olmasını sağlar.

Küpler ve altıgenler için birçok farklı koordinat sistemi vardır. Bazılarında koşul, x + y + z = 0'dan farklıdır. Birçok sistemden sadece birini gösterdim. Ayrıca, kendi ilginç özelliklerine sahip olacak olan x-y, y-z, z-x ile kübik koordinatlar oluşturabilirsiniz, ancak bunları burada ele almayacağım.

Ancak, haritayı bu şekilde nasıl kaydedeceğinizi bilmediğiniz için koordinatlar için 3 sayı saklamak istemediğinizi iddia edebilirsiniz.

eksenel koordinatlar

Bazen "yamuk" koordinat sistemi olarak adlandırılan eksenel bir koordinat sistemi, kübik bir koordinat sisteminden iki veya üç koordinattan oluşturulur. x + y + z = 0 koşuluna sahip olduğumuz için üçüncü koordinat gerekli değildir. Eksen koordinatları, haritaları saklamak ve kullanıcıya koordinatları görüntülemek için kullanışlıdır. Kübik koordinatlarda olduğu gibi, onlarla standart Kartezyen toplama, çıkarma, çarpma ve bölme işlemlerini kullanabilirsiniz.

Birçok kübik koordinat sistemi ve birçok eksenel sistem vardır. Bu eğitimde tüm kombinasyonları ele almayacağım. İki değişken seçeceğim, q (sütun) ve r (satır). Bu makalenin diyagramlarında, q, x'e ve r, z'ye karşılık gelir, ancak bu yazışma keyfidir, çünkü farklı eşleşmeler elde ederek diyagramları döndürebilir ve döndürebilirsiniz.

Bu sistemin yer değiştirme ızgaralarına göre avantajı, algoritmaların daha anlaşılır olmasıdır. Sistemin dezavantajı, dikdörtgen bir haritayı saklamanın biraz tuhaf olmasıdır; haritaları kaydetme bölümüne bakın. Bazı algoritmalar kübik koordinatlarda daha da nettir, ancak x + y + z = 0 koşuluna sahip olduğumuz için üçüncü ima edilen koordinatı hesaplayabilir ve bu algoritmalarda kullanabiliriz. Projelerimde q, r, s eksenlerini çağırıyorum, bu yüzden koşul q + r + s = 0 gibi görünüyor ve gerektiğinde s = -q - r hesaplayabiliyorum.

Akslar

Ofset koordinatları, kare ızgaralar için kullanılan standart Kartezyen koordinatlarla aynı oldukları için çoğu insanın düşündüğü ilk şeydir. Ne yazık ki, iki eksenden birinin tahıla aykırı olması gerekiyor ve bu da sonuç olarak işleri karmaşıklaştırıyor. Kübik ve eksenel sistemler tahıl boyunca ilerler ve daha basit algoritmalara sahiptir, ancak haritaları depolamak biraz daha karmaşıktır. "Dönüşümlü" veya "double" olarak adlandırılan başka bir sistem daha var ama biz onu burada ele almayacağız; bazıları kübik veya eksenel ile çalışmayı daha kolay buluyor.


Ofset koordinatları, kübik ve eksenel

eksen karşılık gelen koordinatın artırıldığı yöndür. Eksene dik olan, koordinatın sabit kaldığı çizgidir. Yukarıdaki ızgara diyagramları dikey çizgiler göstermektedir.

koordinat dönüşümü

Projenizde eksen koordinatları veya ofset koordinatları kullanmanız muhtemeldir, ancak birçok algoritmayı kübik koordinatlarda ifade etmek daha kolaydır. Bu nedenle, koordinatları sistemler arasında dönüştürebilmemiz gerekir.

Eksen koordinatları kübik koordinatlarla yakından ilişkilidir, bu nedenle dönüşüm basittir:

# kübik koordinatları eksenel koordinatlara çevir q = x r = z # eksenel koordinatları kübik koordinatlara çevir x = q z = r y = -x-z
Kodda, bu iki fonksiyon aşağıdaki gibi yazılabilir:

Cube_to_hex (h) işlevi: # eksenel var q = hx var r = hz dönüş Hex (q, r) işlevi hex_to_cube (h): # kübik var x = hq var z = hr var y = -xz dönüş Küp (x, y , z)
Ofset koordinatları biraz zor:

bitişik altıgenler

Bir altıgen verildiğinde, hangi altı altıgenin bitişiğindedir? Tahmin edebileceğiniz gibi, yanıt kübik koordinatlarda en kolay, eksenel koordinatlarda oldukça basit ve ofset koordinatlarda biraz daha karmaşıktır. Ayrıca altı "köşegen" altıgen hesaplamanız gerekebilir.

Kübik koordinatlar

Altıgenlerin koordinatlarında bir boşluğu hareket ettirmek, üç kübik koordinattan birini +1 ve diğerini -1 ile değiştirir (toplam 0'a eşit kalmalıdır). Üç olası koordinat +1 ile değiştirilebilir ve kalan ikisi -1 ile değiştirilebilir. Bu bize altı olası değişiklik verir. Her biri altıgenin yönlerinden birine karşılık gelir. en basit ve en hızlı yol- değişiklikleri önceden hesaplayın ve derleme zamanında Küp (dx, dy, dz) tablosuna yerleştirin:

Var yönler = [Küp (+1, -1, 0), Küp (+1, 0, -1), Küp (0, +1, -1), Küp (-1, +1, 0), Küp ( -1, 0, +1), Küp (0, -1, +1)] işlev küp_yönü (yön): yön döndürme işlevi küp_komşu (altıgen, yön): küp_add döndür (altıgen, küp_yön (yön))

eksenel koordinatlar

Daha önce olduğu gibi, küp sistemi ile başlıyoruz. Küp tablosunu (dx, dy, dz) alın ve Hex (dq, dr) tablosuna dönüştürün:

Var yönler = [Hex (+1, 0), Hex (+1, -1), Hex (0, -1), Hex (-1, 0), Hex (-1, +1), Hex (0, +1]] işlev hex_direction (yön): dönüş yönleri işlevi hex_komşu (altıgen, yön): var dir = hex_direction (yön) dönüş Hex (hex.q + yön.q, hex.r + yön.r)

Ofset koordinatları

Eksenel koordinatlarda grid üzerinde bulunduğumuz yere göre değişiklik yapıyoruz. Bir sütun/satır ofsetindeysek, kural, ofsetsiz bir sütun/satır durumundan farklıdır.

Daha önce olduğu gibi, sütun ve satıra eklenecek bir sayı tablosu oluşturuyoruz. Ancak bu sefer biri tek sütunlar/satırlar için diğeri çift olanlar için olmak üzere iki dizimiz olacak. Yukarıdaki ızgara haritasında (1,1)'e bakın ve altı yönün her birinde hareket ettikçe sütun ve satırın nasıl değiştiğine dikkat edin. Şimdi (2.2) için işlemi tekrarlıyoruz. Tablolar ve kodlar her biri için farklı olacaktır. dört tip yer değiştirme ızgaraları, burada her ızgara türü için karşılık gelen kod.

Tek-r
var yönler = [[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]]] işlevi offset_neighbor (hex, yön): var parity = hex.row & 1 var dir = yönler return Hex (hex.col + dir.col, hex.row + dir.row)


çift-r
var yönler = [[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)]] işlevi offset_neighbor (hex, yön): var parity = altıgen.satır & 1 var dir = yönler dönüş Onaltılı (hex.col + dir.col, hex.row + dir.row)


Çift (ÇİFT) ve tek (TEK) satırlar için ızgara

Tek-q
var yönler = [[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)]] işlevi offset_neighbor (hex, yön): var parity = hex.col & 1 var dir = yönler return Hex (hex.col + dir.col, hex.row + dir.row)


çift-q
var yönler = [[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)]] işlevi offset_neighbor (hex, yön): var parity = hex.col & 1 var dir = yönler return Hex (hex.col + dir.col, hex.row + dir.row)


Çift (ÇİFT) ve tek (TEK) sütunlar için kılavuz

köşegenler

Altıgenlerin koordinatlarında "köşegen" boşlukta hareket etmek, üç kübik koordinattan birini ± 2 ve diğer ikisini ∓1 değiştirir (toplam 0'a eşit kalmalıdır).

Var köşegenler = [Küp (+2, -1, -1), Küp (+1, +1, -2), Küp (-1, +2, -1), Küp (-2, +1, +1 ), Küp (-1, -1, +2), Küp (+1, -2, +1)] işlevi cube_diagonal_neighbor (hex, yön): küp_add (altılık, köşegenler) döndür
Daha önce olduğu gibi, sonuçları hesapladıktan sonra bu koordinatları eksenel koordinatlara çevirebilir, üç koordinattan birini atabilir veya ofset koordinatlarına dönüştürebiliriz.


Mesafeler

Kübik koordinatlar

Kübik koordinat sisteminde, her altıgen üç boyutlu bir küptür. Bitişik altıgenler, altıgen ızgarada 1 boşluk, ancak küp ızgarada 2 boşluktur. Bu, mesafeleri hesaplamayı kolaylaştırır. Bir kareler ızgarasında, Manhattan mesafeleri abs (dx) + abs (dy) şeklindedir. Bir küp ızgarasında, Manhattan mesafeleri abs (dx) + abs (dy) + abs (dz) şeklindedir. Altıgen ızgarasındaki mesafe, bunların yarısına eşittir:

Küp_mesafe (a, b) işlevi: dönüş (mutlak (a.x - b.x) + abs (a.y - b.y) + abs (a.z - b.z)) / 2
Bu gösterimin eşdeğeri, üç koordinattan birinin diğer ikisinin toplamı olması gerektiğini ifade etmek ve sonra onu bir mesafe olarak almak olacaktır. Aşağıda gösterilen ikiye bölme şeklini veya maksimum değer şeklini seçebilirsiniz, ancak bunlar aynı sonucu verir:

Küp_mesafe (a, b): maksimum dönüş (mutlak (a.x - b.x), abs (a.y - b.y), abs (a.z - b.z)) işlevi
Şekilde maksimum değerler renkli olarak vurgulanmıştır. Ayrıca her rengin altı "diyagonal" yönden birini temsil ettiğine dikkat edin.

GIF


eksenel koordinatlar

Eksenel sistemde üçüncü koordinat dolaylı olarak ifade edilir. Mesafeyi hesaplamak için eksenelden kübik'e çevirelim:

hex_distance (a, b) işlevi: var ac = hex_to_cube (a) var bc = hex_to_cube (b) küp_mesafesi (ac, bc) döndürür
Sizin durumunuzdaki derleyici satır içi hex_to_cube ve cube_distance ise, aşağıdaki kodu üretecektir:

hex_distance (a, b) işlevi: dönüş (mutlak (a.q - b.q) + abs (a.q + a.r - b.q - b.r) + abs (a.r - b.r)) / 2
Altıgenler arasındaki mesafeleri eksenel koordinatlarda yazmanın birçok farklı yolu vardır, ancak yazma şekli ne olursa olsun eksenel sistemdeki altıgenler arasındaki boşluk, kübik sistemde manhattan mesafesinden çıkarılır... Örneğin, açıklanan "farkların farkı" a.q + a.r - b.q - b.r olarak a.q - b.q + a.r - b.r yazılarak ve küp_mesafe ikiye bölme formu yerine maksimum değer formu kullanılarak elde edilir. Kübik koordinatlarla ilişkiyi görürseniz, hepsi benzerdir.

Ofset koordinatları

Eksen koordinatlarında olduğu gibi, ofset koordinatlarını kübik koordinatlara çeviririz ve ardından kübik mesafeyi kullanırız.

offset_mesafe (a, b) işlevi: var ac = offset_to_cube (a) var bc = offset_to_cube (b) küp_mesafeyi döndürür (ac, bc)
Aynı kalıbı birçok algoritma için kullanacağız: altıgenlerden küplere dönüştürme, algoritmanın kübik versiyonunu çalıştırma ve kübik sonuçları altıgen koordinatlara (eksenel veya ofset koordinatları) dönüştürme.

Çizgi çizme

Bir altıgenden diğerine nasıl çizgi çizerim? Çizgiler çizmek için doğrusal enterpolasyon kullanıyorum. Doğru, N+1 noktalarda eşit olarak örneklenir ve bu örneklerin hangi altıgenlerde bulunduğu hesaplanır.

GIF


  1. Önce uç noktalar arasındaki onaltılık mesafe olacak N'yi hesaplıyoruz.
  2. Daha sonra, A ve B noktaları arasında N + 1 noktayı düzgün bir şekilde örnekliyoruz. Doğrusal enterpolasyon kullanarak, 0'dan N'ye kadar i değerleri için, bunlar dahil, her noktanın A + (B - A) * 1.0 / N olacağını belirleriz. * Bence. Şekilde bu kontrol noktaları mavi ile gösterilmiştir. Sonuç, kayan nokta koordinatlarıdır.
  3. Her kontrol noktasını (float) tekrar altıgenlere (int) dönüştürün. Algoritmanın adı cube_round (aşağıya bakın).
A'dan B'ye bir çizgi çekmek için hepsini bir araya getirmek:

lerp (a, b, t): // kayan noktalı dönüş için a + (b - a) * t işlevi cube_lerp (a, b, t): // altıgen dönüş için Küp (lerp (ax, bx, t), lerp (ay, by, t), lerp (az, bz, t)) function cube_linedraw (a, b): var N = cube_distance (a, b) var sonuçlar = her 0 ≤ i ≤ N için: sonuçlar.append ( cube_round (cube_lerp (a, b, 1.0 / N * i))) sonuçları döndürür
Notlar:

  • Cube_lerp'in tam olarak iki altıgen arasındaki kenarda bir nokta döndürdüğü zamanlar vardır. Sonra cube_round onu bir şekilde değiştirir. Çizgiler tek yönde hareket ettirildiğinde daha iyi görünür. Bu, döngüye başlamadan önce uç noktalardan birine veya her ikisine bir "epsilon" -altıgen küp (1e-6, 1e-6, -2e-6) eklenerek yapılabilir. Bu, çizgiyi kenar sınırlarına çarpmaması için bir yönde "dürtecektir".
  • Kareler ızgaralarındaki DDA çizgi algoritması, N'yi eksenlerin her biri boyunca maksimum mesafeye eşitler. Aynı şeyi, altıgenlerden oluşan bir ızgaradaki mesafeye benzeyen kübik uzayda da yapıyoruz.
  • cube_lerp işlevi, koordinatları kayan noktadaki bir küpü döndürmelidir. Statik olarak yazılmış bir dilde programlama yapıyorsanız, Küp türünü kullanamazsınız. Bunun yerine, FloatCube türünü tanımlayabilir veya başka bir tür tanımlamak istemiyorsanız, çizim kodunuzdaki bir işlevi satır içi olarak belirleyebilirsiniz.
  • Kodunuzu inline cube_lerp ve ardından döngünün dışında B.x-A.x, B.x-A.y ve 1.0/N hesaplayarak optimize edebilirsiniz. Çarpma, tekrarlanan toplama dönüştürülebilir. Sonuç, DDA çizgi algoritması gibi bir şeydir.
  • Çizgi çizmek için eksenel veya kübik koordinatlar kullanıyorum, ancak ofset koordinatlarla çalışmak istiyorsanız öğrenin.
  • Çizgi çizmek için birçok seçenek var. Bazen üst kaplama gereklidir. Bana altıgen kaplamalı çizgiler çizmenin kodunu gönderdiler, ancak henüz incelemedim.

Seyahat aralığı

koordinat aralığı

Belirli bir altıgenin merkezi ve bir N aralığı için, hangi altıgenler onun N adımı içindedir?

Altıgenler arasındaki mesafe = max (abs (dx), abs (dy), abs (dz)) arasındaki uzaklık formülünden bunun tersini yapabiliriz. N içindeki tüm altıgenleri bulmak için max (abs (dx), abs (dy), abs (dz)) ≤ N'ye ihtiyacımız var. Bu, üç değerin de gerekli olduğu anlamına gelir: abs (dx) ≤ N ve abs (dy) ≤ N ve abs (dz) ≤ N. Mutlak değeri çıkararak -N ≤ dx ≤ N ve -N ≤ dy ≤ N ve -N ≤ dz ≤ N elde ederiz. Kodda bu, iç içe geçmiş bir döngü olacaktır:

Var sonuçları = her -N ≤ dx ≤ N: her biri için -N ≤ dy ≤ N: her biri için -N ≤ dz ≤ N: ise dx + dy + dz = 0: sonuçlar.append (cube_add (merkez, Küp (dx) , dy, dz)))
Bu döngü işe yarayacak, ancak oldukça etkisiz olacaktır. Döngüde yinelediğimiz tüm dz değerlerinden yalnızca biri, dx + dy + dz = 0 küp koşulunu gerçekten karşılar. Bunun yerine, koşulu sağlayan dz değerini doğrudan hesaplayacağız:

Var sonuçları = her -N ≤ dx ≤ N için: her maks (-N, -dx-N) ≤ dy ≤ min (N, -dx + N): var dz = -dx-dy sonuçlar.append (cube_add ( merkez, Küp (dx, dy, dz)))
Bu döngü yalnızca gerekli koordinatlar boyunca çalışır. Şekilde, her aralık bir çift çizgidir. Her satır bir eşitsizliktir. Altı eşitsizliği sağlayan tüm altıgenleri alıyoruz.

GIF


örtüşen aralıklar

Birden çok aralıkta bulunan altıgenleri bulmanız gerekiyorsa, altıgen listesini oluşturmadan önce aralıklar arasında gezinebilirsiniz.

Bu probleme cebir veya geometri açısından yaklaşabilirsiniz. Cebirsel olarak, her bölge -N ≤ dx ≤ N şeklinde eşitsizlik koşulları olarak ifade edilir ve bu koşulların kesişimini bulmamız gerekir. Geometrik olarak, her alan üç boyutlu uzayda bir küptür ve üç boyutlu uzayda dikdörtgen bir paralelyüz elde etmek için üç boyutlu uzayda iki küpü kesiştireceğiz. Daha sonra altıgenleri elde etmek için onu x + y + z = 0 düzlemine geri yansıtıyoruz. Bu problemi cebirsel olarak çözeceğim.

İlk önce, -N ≤ dx ≤ N koşulunu daha fazla olacak şekilde yeniden yazacağız. Genel form x min ≤ x ≤ x maks ve x min = merkez.x - N ve x maks = merkez.x + N alın. Aynısını y ve z için yapalım, bu da önceki bölümdeki kodun genel bir görünümünü elde etmemizi sağlar:

Var sonuçları = her xmin için ≤ x ≤ xmaks: her maks (ymin, -x-zmaks) için ≤ y ≤ min (ymaks, -x-zmin): var z = -xy sonuçlar.append (Küp (x, y, z))
İki a ≤ x ≤ b ve c ≤ x ≤ d aralığının kesişimi max (a, c) ≤ x ≤ min (b, d)'dir. Altıgenlerin alanı x, y, z üzerindeki aralıklar olarak ifade edildiğinden, x, y, z aralıklarının her birini ayrı ayrı kesebilir ve ardından kesişme noktasında bir altıgen listesi oluşturmak için iç içe bir döngü kullanabiliriz. Bir altıgen alanı için, y ve z için benzer şekilde x min = H.x - N ve x max = H.x + N alıyoruz. Altıgenin iki bölgesinin kesişimi için, benzer şekilde y için x min = maks (H1.x - N, H2.x - N) ve x maks = min (H1.x + N, H2.x + N) alırız. ve z. Aynı model, üç veya daha fazla bölgenin kesişimi için de geçerlidir.

GIF


engeller

Engeller varsa, sınırlı bir mesafeyle doldurmak en kolayıdır (Önce Genişlik Arama). Aşağıdaki resimde dört hareketle sınırlıyız. Kodda, saçaklar [k], k adımda ulaşılabilen tüm altıgenlerin bir dizisidir. Ana döngüden her geçişte, k-1 seviyesini k seviyesine genişletiriz.

Cube_reachable (başlangıç, hareket) işlevi: var ziyaret edilen = ayarla () ziyaret edilene başla ekle var fringes = fringes.append () her 1 için< 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

dönüşler

Belirli bir altıgen vektörü için (iki altıgen arasındaki fark), onu başka bir altıgeni gösterecek şekilde döndürmemiz gerekebilir. Bir dairenin 1/6'lık bir dönüşüne bağlı kalırsanız, bunu kübik koordinatlarla yapmak kolaydır.

60 ° sağa döndürmek, her koordinatı bir konum sağa kaydırır:

[x, y, z] ila [-z, -x, -y]
60 ° sola döndürmek, her koordinatı bir konum sola kaydırır:

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



Şema ile [orijinal makalede] "oynadıktan sonra, her dönüşün 60 ° olduğunu fark edeceksiniz. değişiklikler koordinatları işaretler ve fiziksel olarak "döndürür". 120 ° dönüşten sonra, işaretler tekrar aynıdır. 180 ° döndürme işaretleri değiştirir, ancak koordinatlar orijinal konumlarına döndürülür.

Yeni bir R konumu ile sonuçlanan P konumunu merkez C konumu etrafında döndürmenin tam sırası:

  1. P ve C konumlarını kübik koordinatlara dönüştürün.
  2. Merkezi çıkararak bir vektör hesaplayın: P_from_C = P - C = Küp (P.x - C.x, P.y - C.y, P.z - C.z).
  3. P_from_C vektörünü yukarıda açıklandığı gibi döndürün ve elde edilen R_from_C vektörünü atayın.
  4. Merkez ekleyerek vektörü konumuna geri çevirin: R = R_from_C + C = Küp (R_from_C.x + C.x, R_from_C.y + C.y, R_from_C.z + C.z).
  5. Kübik konum R'yi tekrar istenen koordinat sistemine dönüştürün.
Dönüşümün birkaç aşaması vardır, ancak her biri oldukça basittir. Dönmeyi doğrudan eksenel koordinatlarda tanımlayarak bu adımlardan bazılarını kısaltmak mümkündür, ancak hex vektörler ofset koordinatlarıyla çalışmaz ve ofset koordinatları için adımları nasıl kısaltacağımı bilmiyorum. Pivot hesaplamanın diğer yollarının yığın değişimi tartışmasına da bakın.

Yüzükler

basit yüzük

Belirli bir altıgenin belirli bir yarıçaptaki bir halkaya ait olup olmadığını öğrenmek için, bu altıgenin merkeze olan uzaklığını hesaplamanız ve yarıçapa eşit olup olmadığını bulmanız gerekir. Tüm bu altıgenlerin bir listesini almak için merkezden yarıçap adımları atın ve ardından halka boyunca yol boyunca döndürülmüş vektörleri izleyin.

Cube_ring işlevi (merkez, yarıçap): var sonuçlar = # bu kod yarıçap için çalışmıyor == 0; neden anladın mı her 0 ≤ i için var küp = küp_add (merkez, küp_ölçek (küp_yön (4), yarıçap))< 6: for each 0 ≤ j < radius: results.append(cube) cube = cube_neighbor(cube, i) return results
Bu kodda, küp, diyagramın ortasından köşesine doğru büyük bir okla gösterilen halkada başlar. Başlamak için açı 4'ü seçtim çünkü yön numaralarımın hareket ettiği yola karşılık geliyor. Farklı bir başlangıç ​​açısına ihtiyacınız olabilir. İç döngünün her adımında, küp halka etrafında bir altıgen hareket eder. 6* yarıçap adımından sonra başladığı yerde biter.


Spiral halkalar

Halkaları spiral bir düzende kat ederek halkaların iç kısımlarını doldurabiliriz:

Küp_spiral (merkez, yarıçap) işlevi: var sonuçlar = her 1 ≤ k ≤ yarıçap için: sonuçlar = sonuçlar + küp_halkası (merkez, k) sonuçları döndürür



Büyük altıgenin alanı, tüm dairelerin toplamı artı merkez için 1'dir. Alanı hesaplamak için bu formülü kullanın.

Bu şekilde hareket eden altıgenler, hareket aralığını hesaplamak için de kullanılabilir (yukarıya bakın).

Görünürlük alanı

Belirli bir mesafeden belirli bir konumdan görülebilen ve engeller tarafından engellenmeyen nedir? en basit yol tanımlayın - belirli bir aralıktaki her altıgene bir çizgi çizin. Çizgi duvarlarla buluşmuyorsa, bir altıgen görürsünüz. Bu altıgenlere çizgi çizimini ve çizgilerin birleştiği duvarları görmek için fareyi altıgenlerin üzerine getirin [orijinal makaledeki şemada].

Bu algoritma geniş alanlarda yavaş olabilir, ancak uygulanması kolaydır, bu yüzden onunla başlamanızı tavsiye ederim.

GIF



Çok var farklı tanımlar görünürlük. İlk altıgenin ortasından diğer altıgenin merkezini görmek ister misiniz? İlk altıgenin ortasından diğer altıgenin herhangi bir bölümünü görmek ister misiniz? Belki herhangi bir başlangıç ​​noktasından başka bir altıgenin herhangi bir parçası? Engeller tam bir altıgenden daha mı küçük? Kapsam, göründüğünden daha karmaşık ve çeşitli bir kavramdır. En basit algoritmayla başlayalım, ancak projenizdeki cevabı doğru bir şekilde hesaplamasını bekliyoruz. Basit bir algoritmanın mantıksız sonuçlar verdiği durumlar bile vardır.

Gelecekte bu kılavuzu genişletmek istiyorum. Sahibim

Yakınınızda bir kalem var mı? Bölümüne bir göz atın - normal bir altıgen veya aynı zamanda altıgen olarak da adlandırılır. Bir somunun enine kesiti, altıgen bir satranç alanı, bazı karmaşık karbon molekülleri (örneğin grafit), bir kar tanesi, bir bal peteği ve diğer nesneler de bu şekle sahiptir. Son zamanlarda dev bir düzenli altıgen keşfedildi Hadi daha yakından bakalım.

Düzgün altıgen, altı eşit kenarı ve eşit açıları olan bir çokgendir. Aşağıdaki özelliklere sahip olduğunu okul kursundan biliyoruz:

  • Kenarlarının uzunluğu, çevrelenmiş dairenin yarıçapına karşılık gelir. Hepsinden sadece düzenli bir altıgen bu özelliğe sahiptir.
  • Açılar birbirine eşittir ve her birinin büyüklüğü 120 ° 'dir.
  • Bir altıgenin çevresi, etrafındaki çevrelenmiş dairenin yarıçapı biliniyorsa P = 6 * R formülüyle veya daire içinde yazılıysa P = 4 * √ (3) * r formülüyle bulunabilir. R ve r, çember ve çemberin yarıçaplarıdır.
  • Düzgün bir altıgenin kapladığı alan şu şekilde belirlenir: S = (3 * √ (3) * R 2) / 2. Yarıçap bilinmiyorsa, bunun yerine kenarlardan birinin uzunluğunu değiştiririz - bildiğiniz gibi, çevrelenmiş dairenin yarıçapının uzunluğuna karşılık gelir.

Düzenli altıgen, onu doğada bu kadar yaygın kılan ilginç bir özelliğe sahiptir - düzlemin herhangi bir yüzeyini örtüşmeler ve boşluklar olmadan doldurabilir. 1 / √ (3)'e eşit bir kenarı olan normal bir altıgenin evrensel bir kapak olduğu, yani bir birim çapındaki herhangi bir seti kapsayabileceğine göre, Pal'in lemması bile vardır.

Şimdi düzgün bir altıgen oluşturmaya bakalım. En basiti bir pusula, kurşun kalem ve cetvel kullanmayı içeren birkaç yol vardır. İlk önce, pusula ile keyfi bir daire çizeriz, sonra bu daire üzerinde keyfi bir yerde bir nokta yaparız. Pusulanın çözümünü değiştirmeden ucu bu noktaya koyuyoruz, daire üzerinde bir sonraki çentiği işaretliyoruz, 6 noktanın hepsini elde edene kadar bu şekilde devam ediyoruz. Şimdi geriye kalan tek şey onları düz parçalarla birbirine bağlamak ve istenen rakam elde edilecek.

Uygulamada, büyük bir altıgen çizmeniz gereken zamanlar vardır. Örneğin, iki seviyeli bir alçıpan tavanda, merkezi avizenin montaj noktasının etrafına, alt seviyeye altı küçük lamba takmanız gerekir. Bu boyutta bir pusula bulmak çok ama çok zor olacak. Bu durumda nasıl hareket edilir? Nasıl büyük bir daire çizersiniz? Çok basit. Gerekli uzunlukta güçlü bir iplik almanız ve uçlarından birini kurşun kalemin karşısına bağlamanız gerekir. Şimdi geriye kalan tek şey, ipliğin ikinci ucunu istenen noktada tavana bastıracak bir yardımcı bulmak. Tabii ki, bu durumda, küçük hatalar mümkündür, ancak bir yabancı tarafından fark edilmeleri pek olası değildir.

İçerik:

Mükemmel altıgen olarak da adlandırılan düzenli bir altıgenin altı eşit kenarı ve altı eşit köşesi vardır. Bir mezura ve bir iletki ile bir altıgen, yuvarlak bir nesne ve cetvel ile kaba bir altıgen veya sadece bir kurşun kalem ve biraz sezgiyle daha da kaba bir altıgen çizebilirsiniz. Altıgenin farklı şekillerde nasıl çizileceğini öğrenmek istiyorsanız, okumaya devam edin.

adımlar

1 Pusula kullanarak mükemmel bir altıgen çizin

  1. 1 Pusula kullanarak bir daire çizin. Kalemi pusulaya sokun. Pusulayı dairenizin yarıçapı için istediğiniz genişliğe uzatın. Yarıçap, birkaç ila on santimetre genişliğinde olabilir. Ardından, kağıda kurşun kalemle bir pusula yerleştirin ve bir daire çizin.
    • Bazen dairenin önce yarısını sonra diğer yarısını çizmek daha kolaydır.
  2. 2 Pusula iğnesini dairenin kenarına getirin. Dairenin üstüne yerleştirin. Pusulanın açısını ve konumunu değiştirmeyin.
  3. 3 Dairenin kenarına küçük bir kurşun kalem işareti yapın. Netleştirin, ancak daha sonra sileceğiniz için çok karanlık değil. Pusula için belirlediğiniz açıyı korumayı unutmayın.
  4. 4 Pusula iğnesini az önce yaptığınız işarete getirin.İğneyi doğrudan işaretin üzerine yerleştirin.
  5. 5 Dairenin kenarına başka bir kurşun kalem işareti yapın. Böylece, ilk işaretten belirli bir mesafede ikinci bir işaret yapacaksınız. Tek yönde hareket etmeye devam edin.
  6. 6 Aynı şekilde dört işaret daha yapın. Orijinal işarete geri dönmelisiniz. Değilse, büyük olasılıkla pusulayı tuttuğunuz ve işaretleri yaptığınız açı değişmiştir. Belki de bu, onu çok sıkı sıkmanız veya tam tersine biraz gevşetmeniz nedeniyle oldu.
  7. 7 İşaretleri bir cetvelle bağlayın.İşaretlerinizin dairenin kenarıyla kesiştiği altı yer altıgenin altı köşesidir. Bir cetvel ve kurşun kalem kullanarak bitişik işaretleri birleştiren düz çizgiler çizin.
  8. 8 Daireyi, dairenin kenarlarındaki işaretleri ve yaptığınız diğer işaretleri silin. Tüm inşaat çizgilerinizi sildikten sonra, mükemmel altıgeniniz hazır olmalıdır.

2 Yuvarlak bir nesne ve bir cetvel kullanarak kaba bir altıgen çizin

  1. 1 Camın kenarına bir kalem çizin. Bu şekilde bir daire çizeceksiniz. Bir kalemle çizmek çok önemlidir, çünkü daha sonra tüm yardımcı çizgileri silmeniz gerekecektir. Ayrıca ters çevrilmiş bir bardağı, kavanozu veya yuvarlak tabanlı herhangi bir şeyi daire içine alabilirsiniz.
  2. 2 Dairenizin ortasına yatay çizgiler çizin. Bir cetvel, bir kitap, düz kenarlı herhangi bir şey kullanabilirsiniz. Cetveliniz varsa, dairenin dikey uzunluğunu hesaplayıp ikiye bölerek ortasını işaretleyebilirsiniz.
  3. 3 Dairenin yarısını altı eşit parçaya bölerek bir "X" çizin. Zaten dairenin ortasından bir çizgi çizdiğiniz için, parçaların eşit olması için X'in yüksekten daha geniş olması gerekir. Bir pizzayı altı parçaya böldüğünü hayal et.
  4. 4 Her bölümden üçgenler yapın. Bunu yapmak için, her bölümün kavisli kısmının altına düz bir çizgi çizmek için bir cetvel kullanın ve onu bir üçgen oluşturacak şekilde diğer iki çizgiye bağlayın. Bunu kalan beş bölümle yapın. Pizza dilimlerinizin etrafına kabuk yapmak gibi düşünün.
  5. 5 Tüm inşaat hatlarını silin.İnşaat çizgileri dairenizi, dairenizi bölümlere ayıran üç çizgiyi ve yol boyunca yaptığınız diğer işaretleri içerir.

3 Bir kalemle kaba bir altıgen çizin

  1. 1 Yatay bir çizgi çizin. Cetvelsiz düz bir çizgi çizmek için yatay çizginizin başlangıç ​​ve bitiş noktalarını çizmeniz yeterlidir. Ardından kalemi başlangıç ​​noktasına yerleştirin ve çizgiyi sona doğru uzatın. Bu çizginin uzunluğu birkaç santimetre kadar kısa olabilir.
  2. 2 Yatay olanın uçlarından iki çapraz çizgi çizin. Sol taraftaki çapraz çizgi, sağdaki çapraz çizgiyle aynı şekilde dışa bakmalıdır. Bu çizgilerin yatay çizgiye göre 120 derecelik bir açı oluşturduğunu hayal edebilirsiniz.
  3. 3 İçe doğru çizilen ilk yatay çizgilerden çıkan iki yatay çizgi daha çizin. Bu, ilk iki çapraz çizginin ayna görüntüsünü oluşturacaktır. Sol alt çizgi, sol üst çizginin bir yansıması olmalı ve sağ alt çizgi, sağ üst çizginin bir yansıması olmalıdır. Üstteki yatay çizgiler dışa bakmalı, alttakiler ise tabandan içeriye bakmalıdır.
  4. 4 Alttaki iki çapraz çizgiyi birleştiren başka bir yatay çizgi çizin. Bu, altıgeninizin tabanını çizecektir. İdeal olarak, bu çizgi üst yatay çizgiye paralel olmalıdır. Artık altıgeninizi tamamladınız.
  • Çok geniş işaretlerden kaynaklanan hataları en aza indirmek için kalem ve pergel keskin tutulmalıdır.
  • Pusula yöntemini kullanarak altı yerine her bir işareti birleştirirseniz, bir eşkenar üçgen elde edersiniz.

uyarılar

  • Pusula oldukça keskin bir nesnedir, ona çok dikkat edin.

Çalışma prensibi

  • Her yöntem, tüm kenarların uzunluğuna eşit bir yarıçapa sahip altı eşkenar üçgenden oluşan bir altıgen çizmenize yardımcı olacaktır. Altı çizilen yarıçap aynı uzunluktadır ve altıgeni oluşturan tüm çizgiler de aynı uzunluktadır, çünkü pusulanın genişliği değişmemiştir. Altı üçgen eşkenar olduğu için köşeleri arasındaki açılar 60 derecedir.

Ne istiyorsun

  • Kağıt
  • Kalem
  • Hükümdar
  • pusula çifti
  • Pusulanın iğnesinin kaymasını önlemek için kağıdın altına koyabileceğiniz bir şey.
  • Silgi

Kapat