A função de decompor a cor em tons. - página 20

 
prostotrader:
Você não pode fazer tic-tac-toe?

Com gradientes e sombras frias ))))

 
Sergey Basov:

com gradientes e sombras frias ))))

Não vejo o que há de tão engraçado nisso. É muito triste. Há muito tempo o mundo vem criando uma forma legal para uma causa inútil, e aqui eles ainda perguntam "por que é necessário". Necessidade de acompanhar o mundo. Caso contrário, - o Mundo o esmagará.

 
Реter Konow:

Não vejo o que há de tão engraçado nisso. É muito triste. Há muito tempo o mundo vem criando uma forma legal para substâncias inúteis, e aqui eles ainda estão perguntando "por que precisamos disso?". Necessidade de acompanhar o mundo. Caso contrário, - o Mundo o esmagará.

Portanto, prove que alguém precisa disso (GUI, gradiente adequado, sombras, etc.), no mercado.

O gato e o homem têm vindo a insinuar isso há muito tempo ))

PS. Nada pessoal, eu também gosto de boas interfaces, mas apenas como extras na MT.

 
Реter Konow:

Não vejo o que há de tão engraçado nisso. É muito triste. Há muito tempo o mundo vem criando uma forma legal para uma causa inútil, e aqui eles ainda perguntam "por que é necessário". Necessidade de acompanhar o mundo. Caso contrário, - o Mundo o esmagará.

Uma barata tingida em todas as cores do arco-íris, sim com cintilantes, não será esmagada?

 
Sergey Basov:

Depois provar que alguém precisa disso (GUI, gradiente adequado, sombras, etc.), no mercado.

O gato e o homem têm vindo a insinuar isso há muito tempo ))

PS. Nada pessoal, eu também gosto de boas interfaces, mas apenas como extras na MT.

Quem está aí?

 
Реter Konow:

E a tudo isso, eu vim simplesmente observando o comportamento dos números nas janelas da paleta Windows.

Eu utilizo um método diferente. Eu apenas incorporo a lógica baseada no conhecimento.

E você ainda parece não entender que temos o mesmo algoritmo, porque não há outro. O algoritmo é chamado - função linear conectando dois pontos no espaço tridimensional (x1,y1,z1) e (x2,y2,z2)

http://www.cleverstudents.ru/line_and_plane/canonical_equations_of_line_in_space.html

Apenas por alguma razão, a julgar por sua primeira mensagem, você levou um mês para criá-la, e mesmo com erros, enquanto eu nem precisei inventar nada, porque é obviamente um simples problema conectar dois pontos em três dimensões (r1,g1,b1) e (r2,g2,b2), que eu conheço e entendo muito bem da escola, não mesmo em nível de fórmula, mas em nível lógico. A primeira realização me levou cerca de 15 minutos e o código funcionou desde a primeira (não me lembro, talvez desde a segunda) vez.

Já escrevi aqui que seu algoritmo é implementado usando uma função mais simples e versátil, como a seguir:

   color clr=clrViolet;
   uint CLR1[],CLR2[];
   Gradient(clrWhite, clr, CLR1,128); // получаем массив из 128 элементов градиента от белого цвета до цвета clr 
   Gradient(clr, clrBlack, CLR2,127); // получаем массив из 127 элементов градиента от цвета clr до черног цвета  

Uma matriz comum de duas matrizes CLR1 e CLR2 é a sua solução.

Minha solução foi, um pouco mais complicada, porque você precisa calcular a leveza da cor e substituí-la em vez de 128 e 127.

Portanto, mais uma vez - o último a repetir.
Aqui está a única função de gradiente de que você precisa, e é mais versátil:

union rgb {uint clr; uchar c[4];};
void Gradient(uint clr1,uint clr2,uint &arr[],uint size)
  {
   if(size==0) return;
   ArrayResize(arr,size);
   arr[0]=clr1; 
   rgb c1,c2;
   c1.clr=clr1;
   c2.clr=clr2;
   double R1=c1.c[2],G1=c1.c[1],B1=c1.c[0];
   double R2=c2.c[2],G2=c2.c[1],B2=c2.c[0];
   double deltaR=(R2-R1)/(size-1);
   double deltaG=(G2-G1)/(size-1);
   double deltaB=(B2-B1)/(size-1);
   R1 += 0.4999;
   G1 += 0.4999;
   B1 += 0.4999;
   for(uint i=1;i<size;i++)
     {
      R1+=deltaR; c1.c[2]=uchar (R1);
      G1+=deltaG; c1.c[1]=uchar (G1);
      B1+=deltaB; c1.c[0]=uchar (B1);
      arr[i]=c1.clr;
     }
  }

pois gera todos os algoritmos aqui dados em duas linhas. É a mais rápida, pois há apenas uma operação "+" no laço, nem mesmo a multiplicação. Ela também fornece misturas de duas cores quaisquer, não apenas calcula tons de uma.

 
Nikolai Semko:

Eu utilizo um método diferente. Eu apenas utilizo a lógica baseada no conhecimento.

E você ainda parece não entender que existe apenas um algoritmo, porque não há outro. O algoritmo é chamado - função linear conectando dois pontos no espaço tridimensional (x1,y1,z1) e (x2,y2,z2)

http://www.cleverstudents.ru/line_and_plane/canonical_equations_of_line_in_space.html

Apenas por alguma razão, a julgar por sua primeira mensagem, você levou um mês para criá-la, e mesmo com erros, enquanto eu nem precisei inventar nada, porque é obviamente um simples problema conectar dois pontos em três dimensões (r1,g1,b1) e (r2,g2,b2), que eu conheço e entendo muito bem da escola, não mesmo em nível de fórmula, mas em nível lógico. A primeira realização me levou cerca de 15 minutos e o código funcionou desde a primeira (não me lembro, talvez desde a segunda) vez.

Já escrevi aqui que seu algoritmo é implementado usando uma função mais simples e versátil, como a seguir:

Uma matriz comum de duas matrizes CLR1 e CLR2 é a sua solução.

Minha solução foi um pouco mais complicada, pois preciso calcular a leveza da cor e substituí-la em vez de 128 e 127.

portanto, vou repetir uma última vez.
Aqui está a única função necessária e mais versátil para trabalhar com um gradiente:

pois gera todos os algoritmos aqui dados em duas linhas. É a mais rápida, pois há apenas uma operação "+" no laço, nem mesmo a multiplicação. Além disso, esta aspiração dá misturas de duas cores quaisquer, e não apenas calcula os tons de uma.

Temos diferentes algoritmos e diferentes abordagens. Eu não tenho nenhuma função linear conectando dois pontos no espaço tridimensional. Eu tenho um gráfico bidimensional com seis segmentos formando um prisma.

Sua única função não oferece a gama correta de cores. Eu já o mostrei e provei.

 
Artyom Trishkin:

Uma barata colorida em todas as cores do arco-íris, sim com cintilantes, não será esmagada?

Você não tem que se preocupar com isso.

 
Реter Konow:

Temos diferentes algoritmos e diferentes abordagens. Eu não tenho nenhuma função linear conectando dois pontos no espaço tridimensional. Eu tenho um gráfico bidimensional com seis segmentos formando um prisma.

Sua única função não oferece a gama correta de cores. Eu já mostrei e provei isso.

Você só está fazendo uma bagunça, mas se você simplificar sua criação, você terá o que escrevi. É por isso que sua obra de arte é mais lenta e funciona, porque você fez tanta confusão que pode até calcular o dígito 2 através de uma tangente.
Verifique com base no código do Yuri tirando seu algoritmo e este do meu posto anterior. E você verá que ela será idêntica, apenas muito mais rápida e muito mais curta.

 
Nikolai Semko:

Você acabou de fazer uma bagunça, mas se você simplificar sua criação, você terá o que eu escrevi sobre isso. É por isso que sua obra de arte é mais lenta, porque você inventou tantas coisas, que você pode calcular o número 2 através da tangente.
Verifique com base no código do Yuri e pegue seu algoritmo do meu posto anterior . Você verá que ela será idêntica, apenas muito mais rápida e muito mais curta.

Meu algoritmo funciona bem. É rápido (15-20 microssegundos). O seu não funciona corretamente. Você está sugerindo que eu reescreva meu algoritmo com seu exemplo?)

Você me ajudou a tornar meu algoritmo mais rápido, para que eu não tivesse que reescrevê-lo. Obrigado por isso. Caso contrário, meu algoritmo não precisa de nada além de reparos cosméticos.

No entanto, existem problemas óbvios com seu algoritmo.

Razão: