ความท้าทายนี้เกี่ยวกับการเปลี่ยนเฉดสีในรูปภาพเพื่อให้ภาพสวยเช่นนี้:
( ต้นฉบับ )
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มสองจำนวนที่ไม่เป็นลบและรูปภาพในรูปแบบไฟล์ภาพทั่วไปที่คุณเลือก (คุณสามารถพา ธ ไปยังภาพหรือข้อมูลภาพดิบ)
เราจะเรียกคนแรกจำนวนเต็มรอบและครั้งที่สองจำนวนเต็มชดเชย
นอกจากนี้เราจะกำหนดจุดลอยตัวขั้นตอนเป็น 360 ครั้งรอบstep = 360 * cycles / (image width * image height)
แบ่งตามพื้นที่ของภาพหรือ
สำหรับแต่ละพิกเซลPในภาพให้ย้ายทีละครั้งจากซ้ายไปขวาจากบนลงล่าง (เช่นในลำดับการอ่านถ้าพิกเซลเป็นตัวอักษร) ให้ทำดังนี้:
เพิ่มเฉดสีของPด้วยองศาชดเชย (วนรอบจาก 360 เป็น 0 หากจำเป็น)
จากนั้นเพิ่มขึ้นชดเชยโดยขั้นตอน
บันทึกแสดงผลหรือส่งออกภาพที่เกิดขึ้นในรูปแบบไฟล์ภาพทั่วไป
ขั้นตอนนี้จะเพิ่มขึ้นเพิ่มสีของพิกเซลทั้งหมดในภาพที่ทำให้รอบลูปเต็มรอบรุ้งสีเริ่มต้นโดยการเริ่มชดเชยสีโดยการชดเชย
เมื่อรอบเป็น 1 และออฟเซ็ตเป็น 0 เช่นเดียวกับในภาพ Starry Night ข้างบนแถวพิกเซลด้านบนและด้านล่างไม่มีการเปลี่ยนสี แต่ในระหว่างนั้นจะมีวงจรสีเต็มรูปแบบ
รายละเอียด
รอบสามารถเป็นจำนวนเต็มใด ๆ ที่ไม่เป็นลบได้ แต่คุณอาจคิดว่าออฟเซ็ตนั้นมีค่าตั้งแต่ 0 ถึง 359
เมื่อวงรอบเป็น 0 ทุกพิกเซลในภาพจะถูกเปลี่ยนสีโดยการชดเชยอย่างถูกต้องตั้งแต่ขั้นตอนต้องเป็น 0 เช่นกัน (ในกรณีนี้ถ้าชดเชยเป็น 0 ภาพจะไม่เปลี่ยนแปลงเลย)
คุณอาจจะสมมติรอบและชดเชยมีการป้อนข้อมูลเป็นลอยถ้าต้องการ (เช่น
1.0
แทน1
) (ฉันรู้ว่าพวกเขาไม่จำเป็นต้องเป็นจำนวนเต็มเลยมันทำให้การท้าทายง่ายขึ้น)"เว้" หมายถึงรุ่นพื้นที่สี RGB ทั่วไปในHSL / HSV รูปแบบสี
ตัวอย่าง
เดิม:
รอบ = 1, ชดเชย = 0:
รอบ = 1, ชดเชย = 180:
เดิม:
รอบ = 2, ชดเชย = 60:
เดิม:
(ขอบคุณArtOfCode )
รอบ = 1, ชดเชย = 120:
เดิม:
(ขอบคุณDoorknob )
รอบ = 1, ชดเชย = 0:
รอบ = 4, ชดเชย = 0:
รอบ = 200, ชดเชย = 0:
รอบ = 30000, ชดเชย = 0:
(รูปภาพเหล่านี้อาจไม่ได้เป็นพิกเซลที่สมบูรณ์แบบเนื่องจาก imgur บีบอัดภาพ)
เกณฑ์การให้คะแนน
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker เป็นคำตอบที่โหวตให้สูงกว่า
คำตอบที่โพสต์ภาพทดสอบที่ดูเท่ห์ของตัวเองจะได้รับคะแนนบราวนี่มากขึ้นจากฉัน