Yalnızca siyah ve beyaz piksellere ve beyaz bir piksel olan bir (x, y) konumuna sahip bir görüntü verildiğinde, beyaz pikselleri , yalnızca diğer beyaz pikselleri geçen bir yoldaki (x, y) uzaklıklarından en az Manhattan uzaklığına göre renklendirin .
Renk renkli piksel en uzak 0 ° (saf kırmızı) bir renk tonuna ve pikseller olacaktır (x, y), yani (x, y) piksel kendi mesafe ile orantılı olması gerekmektedir (x, y) diğer tonlar arasında kesintisiz ve doğrusal olarak karışan 360 ° (ayrıca kırmızı) bir ton olacaktır. Doygunluk ve değer hem de% 100 olmalıdır.
Beyaz bir piksel (x, y) 'ye diğer beyaz piksellerle bağlı değilse , o zaman beyaz kalmalıdır.
ayrıntılar
- Giriş, görüntünün dosya adından veya ham görüntü verilerinden ve x ve y tam sayılarından oluşur.
- Çıktı görüntüsü bir dosyaya kaydedilebilir veya herhangi bir ortak görüntü dosyası biçiminde stdout'a işlenmemiş olabilir veya basitçe görüntülenebilir.
- En sol piksellerde x değeri 0'dır ve sağa doğru ilerler. En yüksek piksellerde y değeri 0'dır ve aşağı iner. (x, y) daima resim sınırları içinde olacaktır.
- Hem tam programlara hem de işlevlere izin verilir.
Bayt cinsinden en kısa kod kazanır.
Örnekler
Yer tasarrufu için tüm bu resimler küçültüldü. Tam boyutta görmek için üzerlerine tıklayın.
Giriş resmi:
(x,y) = (165,155)
ve (x,y) = (0,0)
Görüntü giriş ve çıkış (x,y) = (0,0)
:
Görüntü giriş ve çıkış (x,y) = (600,350)
:
Görüntü giriş ve çıkış (x,y) = (0,0)
:
Görüntü giriş ve çıkış (x,y) = (0,0)
:
İsteğe bağlı -30% bonus: Öklid mesafesini kullanın. Algoritmanız için bir öneri aşağıdaki gibidir (genel taslak):
- Bir başlangıç pikseli var.
- O pikselden sel doldurun.
- Sel dolgusunda ulaşılan her piksel için,
- Düz bir çizgide, başlangıç pikselinden bu piksele yarım birim adımlarla gidin.
- Her adımda,
int()
x ve y koordinatlarına uygulanır. Bu koordinatlardaki piksel siyahsa, durdurun. Aksi takdirde, devam edin. (Bu bir görüş hattı yöntemidir.) - Beyaz bir pikseli ve / veya daha önce belirgin şekilde daha yüksek bir mesafeyle etiketlenmiş bir pikseli (yani, +10) sınırlayan ulaşılan piksel başlangıç pikseline dönüşür.
Daha meta bir anlamda, bu algoritma başlangıç / zaten renkli piksellerden düz bir çizgide erişilebilen her piksele, ardından kenarlarda "inç" e yayılır. "Önemli ölçüde daha yüksek mesafe" bitinin algoritmayı hızlandırması amaçlanmıştır. Açıkçası, Öklid mesafesini nasıl uyguladığınız önemli değil , sadece buna çok benzemesi gerekiyor.
İlk algoritmayı, yukarıdaki algoritmayı kullanarak Öklid mesafesiyle benzer şekilde görebilirsiniz:
Giriş görüntü ve (x,y) = (165,155)
Calvin's Hobbies ve trichoplax'a bu mücadeleyi yazmada yardımcı oldukları için çok teşekkürler! İyi eğlenceler!