Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como calcular o Gradiente de cor
Modelos de cores são métodos para mapear numericamente o espectro de cores. Os modelos geralmente consistem em três ou quatro valores de componentes , tais como os componentes vermelho , verde e azul da cor do modelo RGB . Por uma questão de criar uma sensação de profundidade e outros efeitos gráficos , muitas vezes é desejável utilizar os modelos para criar gradientes de cor , que são transições suaves entre uma cor e outra. Criando gradientes é uma questão de matematicamente interpolação entre os componentes do modelo da cor . Os cálculos do gradiente pode ser tão simples ou complexo como você gosta. Instruções
1

Definir um par de coordenadas correspondentes ao início e final do gradiente . Para um gradiente linear , as coordenadas também especificar a direcção da inclinação , de modo que , com efeito , que servem como a cabeça e a cauda de um vector , que é uma quantidade direccional . Para um gradiente radial , a cauda do vector corresponde ao centro , e a magnitude do vector é igual ao raio . Por exemplo, se você quer um gradiente diagonal para preencher um quadrado cujos superior esquerdo coordenadas é ( 0, 0) , e no canto inferior direito é ( 100, 100) , definir as mesmas coordenadas como a cabeça ea cauda do vetor. Cada linha perpendicular ao vector entre a cauda e a cabeça muda gradualmente a partir da cor a partir de ( 0 , 0 ) a cor final ( 100 , 100 ) .
2

Calcular a magnitude do gradiente com a equação M = sqrt ( ( x2 - x1 ) p + ( y2 - y1 ) ² ) , onde ( x1 , y1 ) e ( x2 , y2 ), são as coordenadas da cauda e da cabeça , respectivamente . Por exemplo, M = sqrt ( (100 - 0) + (100 - 0) ²) = 141,4
3

Calcule a distância para a cauda do vetor gradiente para cada ponto no . área . Para um vetor radial , a equação é D = sqrt ( (x - x1 ) ² + (y - y1 ) ² ), onde (x , y) é par de coordenadas do ponto. Para gradientes lineares , a distância não é a própria cauda , mas com a linha que passa através da cauda perpendicular ao vector . A equação é D = (x * ( x2 - x1) - x1 * x2 + x1 ² + y * ( y2 - y1 ) - y1 * y2 + y1 ²) /M. Defina qualquer distância menor do que 0 a 0, e defina uma distância maior do que a magnitude da magnitude . Por exemplo , a distância do ponto ( 20 , 30 ) é D = ( 20 * 100 + 30 * 100 ) /141,1 = 35,4 . Todos os pontos sobre a linha que passa perpendicular através desse ponto tem a mesma distância.
4

Calcule a distância do ponto de rácio de magnitude com a equação R = D /M. Por exemplo , a razão para o ponto ( 20 , 30 ) é R = 35.4/141.4 = 0,25
5

Localizar cada um dos componentes de cor para o ponto com a fórmula Cp = R ( C2 . - C1 ) + C1 , em que C1 e C2 são os componentes correspondentes para a cor inicial e final do gradiente . Esta fórmula funciona para qualquer modelo de cor , mas quando se trabalha com componentes cíclicos , como o tom do modelo HSL (modelo Hue Saturation Lightness ) , valores de uso para C1 e C2 tal que C2 menos C1 é menos da metade da faixa do componente.

por exemplo, se as cores inicial e final HSL do seu gradiente são (10 , 93, 33) e ( 355 , 28, 60) , a diferença de menos C2 C1 para a tonalidade é 355-10 = 345 , o que é mais da metade da faixa do HSL de 360 ​​graus, assim como trabalhar com os ângulos de um círculo , adicione 360 graus para encontrar um ângulo equivalente. Deixe- C1 = 360 + 10 = 370 . Por conseguinte, o componente de matiz é Cp = 0,25 * ( 355-370 ) + = 370 366,3 . Isso é fora da faixa , então subtrair 360 para um valor de 6,3 . Os outros componentes do HSL não são cíclicos , de modo que os cálculos são mais simples. Por saturação , Cp = 0,25 * (28 - 93) + 93 = 76,8 , e por leveza , Cp = 0,25 * (60 - 33) + 33 = 40,0 . Termine todos os cálculos para uma cor HSL final (6 , 77, 40) .

Anterior :

Próximo : No
  Os artigos relacionados
·Como criar indexação espacial 
·O que acontece quando um thread separada Chamadas Exit …
·Definição de uma função de retorno 
·Como ler uma cadeia de caracteres com linguagem Assembl…
·Como saída Tamanhos Celulares 
·Como passar Data Variáveis ​​Dinâmicas em SSIS 
·Como compilar um programa QBasic 
·Como converter String para Tempo em SQLite 
·Como configurar e configurar SSIS 
·A diferença entre um método e Classe Método estátic…
  Artigos em destaque
·Como fazer matrizes em PCSpim 
·Como mover objetos a uma velocidade constante em Unity 
·Como Pular uma linha em MATLAB 
·Como Aplicar Convolution em MATLAB sem utilizar a funç…
·Como formatar um fluxo de despejo XMPP 
·Como fazer um arquivo CFG Com o Visual C 
·Como adicionar GMP para Xcode 
·Como terminar um loop finito 
·Por COBOL Popular é 
·Quais são as funções de Turbo C 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados