วัตถุประสงค์หลักของโมเดลสี RGB (แดงเขียวน้ำเงิน) สำหรับการตรวจจับการแสดงและการแสดงภาพในระบบอิเล็กทรอนิกส์เช่นโทรทัศน์และคอมพิวเตอร์
HSL (Hue Saturation Lightness) เป็นรูปแบบสีทางเลือกที่ออกแบบในปี 1970 โดยนักวิจัยคอมพิวเตอร์กราฟิกเพื่อให้สอดคล้องกับวิธีการมองเห็นของมนุษย์ในการรับรู้คุณลักษณะการทำสี
นี่คือบทความวิกิพีเดียสำหรับเป็นRGBและHSL เป็นเรื่องปกติที่โปรแกรมกราฟิกจะทำการคำนวณใน HSL และแปลงเป็นรูปแบบที่ต้องการสำหรับหน้าจอส่วนใหญ่: RGB
ภารกิจคือการเขียนฟังก์ชั่น / โปรแกรมที่ใช้ HSL เป็นอินพุตและเอาต์พุต RGB
คุณสามารถเลือกการแสดงที่คุณต้องการสำหรับ I / O ตราบใดที่มันยังสอดคล้องกัน
ตัวอย่างเช่นพวกเขาสามารถเป็นอาร์เรย์ / tuple มี 3 องค์ประกอบหรือวัตถุที่มี 3 คุณสมบัติการตั้งชื่อh
, s
และl
แต่ฉันจะยอมรับการเปลี่ยนแปลงที่ฉลาดอื่น ๆ เช่นรับ HSL เป็นจำนวนเต็ม (แพ้ความแม่นยำ) และการแสดงผลเป็นจำนวนเต็ม RGB
อินพุตสามารถสันนิษฐานได้ว่าปลอดภัยในช่วงและรูปแบบซึ่งคุณสามารถเลือกได้ทั้งสองแบบ ฉันขอแนะนำช่วง0-1 0-1 0-1
หรือ0-360 0-100 0-100
สำหรับ hsl และ0-1 0-1 0-1
หรือ0-255 0-255 0-255
สำหรับ rgb
แต่ละคำตอบจะต้องระบุทั้งสองข้อข้างต้นและใส่คำตอบต่าง ๆ ในคำตอบของคุณหากคุณภาคภูมิใจเป็นพิเศษถึงแม้ว่าพวกเขาจะไม่มีตัวอักษรน้อยกว่าการเปลี่ยนแปลงอื่น ๆ ของคุณ วางที่เล็กที่สุดไว้ด้านบน
กรณีทดสอบหลอกสำหรับ0-360 0-100 0-100
→0-255 0-255 0-255
h s l → r g b
0 0 0 → 0 0 0
90 56 17 → 43 68 19
202 19 39 → 81 104 118
72 55 26 → 88 103 30
สูตรสำหรับการแปลงสามารถพบได้ที่นี่ :
นี่เป็นวิธีที่ดีในการเห็นการแปลง:
a-b
สัญกรณ์นั้นผิดในตัวเองเมื่อต้องจัดการกับค่าที่ไม่ใช่จำนวนเต็ม แต่ฉันว่ามันโอเคที่จะทำให้คำถามอ่านง่ายขึ้น หากมีคนอื่นบ่นฉันจะต้องคิดใหม่ดังนั้นขอขอบคุณที่ชี้ให้เห็น
[0,360)
ตอนนั้น :)
H
ของ0-360
คือ[0,360)
มันจะดีกว่าเขียนเป็น0-359
?