程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 計算機中的顏色VI—從色相值到純色的快速計算

計算機中的顏色VI—從色相值到純色的快速計算

編輯:VB綜合教程
 

在上一文中,介紹了“如何快速計算顏色的色相值”,本文介紹從色相值到純色的計算過程。之前已經介紹,色相值和純色有著一一對應的關系。先看看傳統的計算方法:

  

  

 

  從圖中計算的過程來看,還是比較繁瑣的,再看看之前的純色色相分布圖。

 

  

 

  從圖中找到規律,在圖中的右半部陰影部分,各個分量的變化如下所示:

    0-60:R:255-》255;G:0-》255;B:0-》0;

    60-120:R:255-》0;G:255-》255;B:0-》0;

    120-180:R:0-》0;G:255-》255;B:0-》255;

  在圖中的左半空白部分,以到紅色的夾角為算,各個分量的變化如下所示:

    0-60:R:255-》255;G:0-》0;B:0-》255;

    60-120:R:255-》0;G:0-》0;B:255-》255;

    120-180:R:0-》0;G:0-》255;B:255-》255;

  仔細觀察上面的兩個變化,可以發現,R的變化是一致的,而G、B分量的變化正好左右對稱。因此,只要能寫出右邊的公式,將G、B分量值互換一下,就得到左邊的公式了

  下面把右邊的計算公式,詳細描述一下:

  取純色和紅色的夾角,右邊的就是純色的色相值θ

  令λ=θ/60×255

    R=510-λ;若R<0,則R=0;若R>255,則R=255;

    G=λ;若G>255,則G=255;

    B=λ-510;若B<0;則B=0;

  如此計算出來的純色(R,G,B)就是該色相值對應的純色。

    類似的,把公式稍作變換,就是左邊的公式:

  取純色和紅色的夾角,左邊的是360-θ

    令λ=θ/60×255

    R=510-λ;若R<0,則R=0;若R>255,則R=255;

    G=λ-510;若G<0;則G=0;

    B=λ;若B>255,則B=255;

  綜上兩個公式,就是從色相值到純色的快速計算。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved