Re: 給陣列上顏色...

看板Prob_Solve (計算數學 Problem Solving)作者 (!H45)時間17年前 (2007/12/24 11:12), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 我承認這個標題給的很爛,但是... 實在不知道還能怎麼下 Orz : 我有一個整數陣列 a,長度為 L : 裡頭元素值域為 0~X : 我希望能顯示 a 的時候,不同值可以有不同顏色 : 例如: 0→紅色,1→藍色,2→綠色.... : 以數學的方式來說,就是弄個函數,從 0~X 對應到 0~FFFFFF : 但重點是,顏色又希望能用肉眼看出差異 : →太亮 or 太暗都不容易分出差異 : →同色系能看得出差異 : 還請高手指點 or 惠賜關鍵字... : (是的,連要用什麼 keyword 去找演算法都不知道 Orz) : ==== : 我有考慮過建表,但是 X 可能破百,甚至近千....... 囧 我收回 HSI 的方法。 現在手邊有書,來看看書上的作法吧。 這是一個 Gray Level to Color Transformations 的問題 把陣列索引值想成灰階值,輸出想成彩色像素值,問題就解了。 轉換法核心: Red = |sin(ax + p)| Green = |sin(ax + q)| Blue = |sin(ax + r)| 其中 x 是灰階值,a, p, q, r 是可調參數,Red, Green, Blue 是彩色像素值 這邊的 x, Red, Green, Blue 都是假定在 [0, 1], 如果需要 [0, 255] 請自行調整。 sin 的輸入乘上係數 a 是為了決定顏色改變的週期 然而每一個 (或半個?) 週期會出現一次相似的顏色,所以要讓顏色盡可能的不同 就請把 a 值調小一點,這樣週期會加長,重複的次數相對就會減少 sin 的輸入分別加上不同的位移,p, q, r 是為了轉換成彩色 p, q, r 值請不要設定太接近的值,相同的 p, q, r 會使輸出變成灰色 儘可能在一個週期內位移不同但是適當的距離,這樣出來的顏色會好看的多。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.247.13

12/24 11:23, , 1F
囧... 我後來適用 HSI 硬幹說 XDXD
12/24 11:23, 1F

12/24 11:38, , 2F
啊,時效過了
12/24 11:38, 2F
文章代碼(AID): #17RoE8O7 (Prob_Solve)
討論串 (同標題文章)
本文引述了以下文章的的內容:
4
6
完整討論串 (本文為第 2 之 2 篇):
4
6
1
2
文章代碼(AID): #17RoE8O7 (Prob_Solve)