İlk satırı forma sahip bir dize ya da metin dosyasına giren bir program yazın.
width height
ve takip eden her satır forma sahiptir.
x y intensity red green blue
nerede:
widthveheightherhangi bir pozitif tam sayı olabilir.xveyherhangi bir tam sayı olabilir.intensityNegatif olmayan bir tamsayı olabilir.red,greenveblue0 ila 255 arasında bir tam sayı olabilir.
Programınız zorunluluk çıkışı gerçek renkli boyutları herhangi bir ortak kayıpsız görüntü dosyası biçiminde görüntü widthile height. Her x y intensity red green blueçizgi, resmin üzerine çizilmesi gereken renkli bir yıldızı veya küreyi temsil eder. 0 da dahil olmak üzere çekilecek herhangi bir sayıda yıldız olabilir.
Resmin çizilmesi için kullanılan algoritma aşağıdaki gibidir, ancak sonuç aynı olduğu sürece istediğiniz gibi uygulayabilirsiniz:
Görüntüdeki her piksel için ( X , Y ) (buradaki X , en sol kenarda 0, en geniş kenarda genişlik-1 ve en üst kenarda Y , üst kenarda 0 ve alt kenarda yükseklik-1'dir ) C ϵ { kırmızı , yeşil , mavi } (0 ile 255 arasında sabitlenmiş bir değer) denklemde verilir:
Burada dist fonksiyonu ya bir Öklid mesafe :
Veya Manhattan mesafesi :
Golf kabiliyeti veya estetiğe göre istediğiniz mesafe fonksiyonunu seçin.
Girişteki ilk satırın yanı sıra her satır Yıldız kümesinin bir öğesidir . Bu nedenle, örneğin, S x temsil
xgiriş hatları birinde değeri ve S Cı herhangi birini temsil ederred,greenya dablue, bağlı olarak hangi renk kanalı anda hesaplanır.
Örnekler
Örnek A
Giriş ise
400 150
-10 30 100 255 128 0
çıktı olmalıdır

Öklid mesafesini kullanıyorsanız ve

Manhattan mesafesini kullanıyorsanız.
Örnek B
Giriş ise
200 200
100 100 10 255 255 255
20 20 40 255 0 0
180 20 40 255 255 0
180 180 40 0 255 0
20 180 40 0 0 255
Öklid ve Manhattan mesafesi için ilgili çıktılar;
ve
.
Örnek C
Giriş ise
400 400
123 231 10 206 119 85
358 316 27 170 47 99
95 317 3 202 42 78
251 269 17 142 150 153
43 120 3 145 75 61
109 376 6 230 231 52
331 78 21 31 81 126
150 330 21 8 142 23
69 155 11 142 251 199
218 335 7 183 248 241
204 237 13 112 253 34
342 89 18 140 11 123
çıktı olmalıdır

Öklid mesafesini kullanıyorsanız ve

Manhattan mesafesini kullanıyorsanız.
Örnek D
Giriş ise
400 400
123 231 5 206 119 85
358 316 5 170 47 99
95 317 5 202 42 78
251 269 5 142 150 153
43 120 5 145 75 61
109 376 5 230 231 52
331 78 5 31 81 126
150 330 5 8 142 23
69 155 5 142 251 199
218 335 5 183 248 241
204 237 5 112 253 34
342 89 5 140 11 123
çıktı olmalıdır

Öklid mesafesini kullanıyorsanız ve

Manhattan mesafesini kullanıyorsanız.
Örnek E
Giriş ise
100 1
bu durumda çıktı, tamamen siyah olan 1 piksel yüksekliğinde 100 piksel genişliğinde bir görüntü olmalıdır.
notlar
- Giriş dizesini ya da onu stdin'den veya komut satırından içeren bir metin dosyasının adını alın, aksi takdirde dizgiyi alan bir işlev yazabilirsiniz.
- Resmin "çıktısı" ya şu anlama gelir:
- İstediğiniz adla bir dosyaya kaydetme.
- Ham görüntü dosyası verisinin stdout'a yazdırılması.
- Bu gibi görüntü görüntüleme PIL Var
image.show().
- Resimlerinizin pikselin mükemmel olduğunu kontrol etmeyeceğim (Yığın Değişimi yine de görüntüleri sık sık sıkıştırır), ancak görsel olarak herhangi bir farklılık söyleyebilirsem çok şüpheli olacağım.
- Grafik / görüntü kütüphanelerini kullanabilirsiniz.
Kazanan
Bayt cinsinden en kısa gönderme kazanır. Bağlar halinde, en erken başvuru kazanır.
Eğlenceli Bonus: Gerçekten muhteşem bir çıktı görüntüsü için girdi verin.












