Sadece bir düzeltme ve pusula verildiğinde, verilen dikdörtgenin içine bir eşkenar dörtgen yazın ve iki karşıt noktayı paylaşın.
Giriş
Giriş, dikdörtgenin boyutlarıdır. Gösterilen örnekte, bu olurdu 125, 50
. Hangi yolla en uygun olursa olsun girişi alabilirsiniz (iki tamsayı, liste, karakter vb.).
Büyük boyut minimum 100, küçük boyut 25 minimum olacaktır. Her ikisi de 200'de.
Çıktı
Çıktı gösteren bir resim (ekranda görüntülenir veya bir dosya olarak kaydedilir) gösterilir
- Giriş dikdörtgen
- Tüm "çalışan" hatlar / daireler
- Yazılı eşkenar dörtgen
farklı renklerde Yukarıdaki resimde, dikdörtgen siyah, çalışma çizgileri mavi ve eşkenar dörtgen turuncudur. Çizgiler listede gösterilen sıraya göre çizilmelidir (örneğin eşkenar dörtgen, çalışma çizgileri ve dikdörtgenin üzerine yazar).
Çıktı görüntüsünün her şeyi içerecek kadar büyük olması gerekir. Örneğin, gösterilen daireler sınırların dışına çıkamaz.
Yöntem
Yukarıdaki örnek resimde kullanılan yöntem:
- Dikdörtgenin köşegenine eşit bir yarıçap vererek, orta alt sol köşeyi ve çevre üzerindeki bir nokta olarak sağ üst köşeyi kullanarak bir daire çizin.
- Aynısını yapın, ancak merkez ve çevre noktalarını değiştirin.
- İki dairenin kesişme noktalarının arasına bir çizgi çizin ve dikdörtgenin köşegenine dik bir bisector verin.
- Eşkenar dörtgen çizmek için yeni çizgi ve dikdörtgenin kesişme noktalarını kullanın.
Bu işe yarıyor, çünkü bir eşkenar dörtgenin iç köşegenleri her zaman dik olarak ikiye bölünüyor. Bununla birlikte, bunun tam bir kanıtını dahil etmiyorum.
Eşkenar dörtgeninizi almak için tek yöntem bu değildir ve ne yaptığınızı açıklamanız koşuluyla başka birini kullanabilirsiniz. Ben inanıyorum muhtemelen en kolay olsa var.
kurallar
Yalnızca daireler ve çizgiler (veya daha doğrusu çizgi parçaları) çizebilirsiniz. Bir merkez nokta ve çevre nokta ile bir daire tanımlanmıştır. Bir çizgi herhangi iki nokta ile tanımlanır. Çizgilerin belirli bir uzunlukta olması gerekmez, ancak en azından tanımlayıcı noktaları kapsamalıdır (örnek resme dikkat edin: çizgi, daire kesişme noktalarının biraz ötesine geçer, ancak kenara doğru gitmez). Daireler için, merkezden seçilen çevre noktasına kadar olan yarıçap bir çalışma çizgisi olarak kabul edilir ve gösterilmesi gerekir.
Çizgileri rasterleştirmek için, herhangi bir tanınmış algoritmayı (örneğin, Bresenham's) kullanabilir veya dilinizin sahip olduğu herhangi bir yapıya güvenebilirsiniz. Çıktınız vektöre dayalıysa, lütfen giriş dikdörtgeninin en az piksel cinsinden büyüklüğünde bir çözünürlükte gösterildiğinden emin olun . Ayrıca, düz bir tuval üzerine çizim yapacaksınız, bu nedenle lütfen ızgara izlerini veya dışsal çıktıları bastırın.
Hile yok! Noktalar / çizgiler / çevrelerin yerleşimini yalnızca şu ana kadar oluşturduklarınızı kullanarak belirleyebilirsiniz. Çalışma çizgilerinizi / çevrelerinizi bir eşkenar dörtgen göstermek için nasıl kullanacağınızı açıklayamıyorsanız, yanlış yapıyorsunuz demektir.
İstediğiniz karşı nokta çiftini kullanabilirsiniz ve çıktının doğru olması kaydıyla dikdörtgenin eksen hizasına çizilmesi gerekmez .
Girdi her zaman kare olmayan bir dikdörtgen olacaktır, bu nedenle özel kaplama için endişelenmeyin.
Son olarak, bu standart kod golf, yani bayt cinsinden en düşük boyut kazanır.