Kaos Oyun fraktalları oluşturmak için basit bir yöntemdir. Bir başlangıç noktası, bir uzunluk oranı r ve bir 2B nokta kümesi verildiğinde, aşağıdakileri tekrarlayın:
- Noktalardan, rastgele (düzgün bir şekilde) birini seçin.
- Ortalama olarak bu nokta ve son çizilen nokta (veya başlangıç noktası) r ve 1 - r ağırlıklarını kullanarak (yani r = 0 başlangıç noktasını aldığınızı gösterir, r = 1 rasgele noktayı aldığınızı ve r = 0.5 ise aradaki noktayı bul.)
- Sonuç noktasını çizin.
Örneğin, bir eşkenar üçgenin ve r = 0.5'in köşelerini seçtiyseniz , çizilen noktalar bir Sierpinski üçgeni çizer:
Bir fraktal yaratmak için kaos oyununu "oynayan" bir program veya işlev yazacaksınız.
Giriş
Bir program veya fonksiyon yazabilir ve ARGV, STDIN veya fonksiyon argümanı ile aşağıdaki girişleri alabilirsiniz:
- Çizilecek nokta sayısı.
- Başlangıç koordinatı (bunun da çizilmesi gerekiyor!).
- Aralıktaki ortalama ağırlık r [0,1] .
- Seçilebilecek noktaların listesi.
Çıktı
Ekranda görüntüleyebilir veya bir görüntü dosyası yazabilirsiniz. Sonuç rasterleştirilirse, her iki tarafta en az 600 piksel olması gerekir, tüm noktalar tuval üzerinde olmalı ve görüntünün yatay ve dikey boyutunun en az% 75'i noktalar için kullanılmalıdır (bu "gerçekten çok uzaklaştı" diyen tek bir siyah pikselli cevaplar. X ve Y ekseni aynı ölçek üzerinde olmalıdır (edilene 0,0 (hat) (1,1) 45 derecelik bir açı ile olmalıdır) ve kaos oyunda çizilen her nokta bir şekilde temsil edilmelidir piksel (eğer çizim metodunuz noktaya anti-alias yaparsa, 2x2 piksele yayılmış olabilir).
Renkler sizin seçiminiz, ancak en az iki farklı renge ihtiyacınız var: biri arka plan için diğeri de kaos oyunu sırasında çizilen noktalar için. Giriş noktalarını çizmeniz gerekmeyebilir.
Lütfen cevabınıza üç ilginç örnek çıktı ekleyin.
puanlama
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Düzenleme: Zaten tek nokta olarak gerçekten görünmediklerinden giriş noktalarını çizmenize artık gerek yok.