将颜色分解为阴影的功能。 - 页 20

 
prostotrader:
你不能做井字游戏吗?

用凉爽的渐变和阴影))))

 
Sergey Basov:

有凉爽的渐变和阴影)))。

我不明白这有什么好笑的。这是很可悲的。这个世界长期以来一直在为一个无用的事业创造一个很酷的形式,而在这里他们还在问 "为什么需要它?"。需要跟上世界的步伐。否则,--世界将粉碎它。

 
Реter Konow:

我不明白这有什么好笑的。这是很可悲的。这个世界长期以来一直在为无用的物质创造一种很酷的形式,而在这里他们还在问"我们为什么需要它?".需要跟上世界的步伐。否则,--世界将粉碎它。

所以要证明有人需要它(GUI、适当的梯度、阴影等),在市场上。

猫和人已经暗示了很久了 ))

PS。不是针对你,我也喜欢漂亮的界面,但只是作为MT中的附加物。

 
Реter Konow:

我不明白这有什么好笑的。这是很可悲的。这个世界长期以来一直在为一个无用的事业创造一个很酷的形式,而在这里他们还在问 "为什么需要它?"。需要跟上世界的步伐。否则,--世界将粉碎它。

一只蟑螂染上了彩虹的所有颜色,是的,有光泽,不会被碾碎吗?

 
Sergey Basov:

然后证明有人需要它(GUI,适当的梯度,阴影等),在市场上。

猫和人已经暗示了很久了 ))

PS。不是针对你,我也喜欢漂亮的界面,但只是作为MT中的附加物。

谁在那里?

 
Реter Konow:

而对于这一切,我是通过简单地观察Windows调色板窗口中的数字行为而来。

我使用不同的方法。我只是纳入了基于知识的逻辑。

而你似乎仍然不明白,我们有相同的算法,因为没有其他的算法。该算法被称为--连接三维空间中两点(x1,y1,z1)和(x2,y2,z2)的线性函数

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

只是不知道为什么,从你的第一条信息来看,你花了一个月的时间来创造它,甚至还有错误,而我甚至不需要发明任何东西,因为这显然是一个连接三维空间中的两个点(r1,g1,b1)和(r2,g2,b2)的简单问题,我在学校就知道并且非常理解,甚至不是在公式层面,而是在逻辑层面。第一次实现 花了我大约15分钟,代码从第一次(我不记得了,也许从第二次)就开始工作。

我已经在这里 写过,你的算法是用一个更简单、更通用的函数来实现的,如下所示。

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

一个由两个数组CLR1和CLR2组成的共同数组就是你的解决方案。

我的解决方案是,稍微复杂一些,因为你需要计算颜色的明度,然后用它代替128和127。

所以再一次--最后一次重复。
这里是你唯一需要的渐变功能,而且它的用途更广。

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;
     }
  }

因为它在两行中生成了这里给出的所有算法。这是最快的,因为循环中只有一个 "+"的操作,甚至连乘法都没有。它还提供任何两种颜色的混合,而不仅仅是计算一种颜色的色调。

 
Nikolai Semko:

我使用不同的方法。我只是使用基于知识的逻辑。

而你似乎仍然不明白,只有一种算法,因为没有其他算法。该算法被称为--连接三维空间中两点(x1,y1,z1)和(x2,y2,z2)的线性函数

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

只是不知道为什么,从你的第一条信息来看,你花了一个月的时间来创造它,甚至还有错误,而我甚至不需要发明任何东西,因为这显然是一个连接三维空间中的两个点(r1,g1,b1)和(r2,g2,b2)的简单问题,我在学校就知道并且非常理解,甚至不是在公式层面,而是在逻辑层面。第一次实现 花了我大约15分钟,代码从第一次(我不记得了,也许从第二次)就开始工作。

我已经在这里 写过,你的算法是用一个更简单、更通用的函数来实现的,如下所示。

一个由两个数组CLR1和CLR2组成的共同数组就是你的解决方案。

我的解决方案有点复杂,因为我需要计算颜色的明度,用它代替128和127。

所以我最后再重复一次。
这里有一个唯一需要的,也是比较通用的处理梯度的功能。

因为它在两行中生成了这里给出的所有算法。这是最快的,因为循环中只有一个 "+"的操作,甚至连乘法都没有。此外,这个函数还提供任何两种颜色的混合,而不仅仅是计算一种颜色的色调。

我们有不同的算法和不同的方法。我没有任何线性函数连接三维空间中的两点。我有一个二维图形,有六个线段组成一个棱柱。

你的唯一的功能没有给出正确的颜色范围。我已经表明并证明了这一点。

 
Artyom Trishkin:

一只蟑螂染上了彩虹的所有颜色,是的,有光泽,不会被压碎?

你不需要担心这个问题。

 
Реter Konow:

我们有不同的算法和不同的方法。我没有任何线性函数连接三维空间中的两点。我有一个二维图形,有六个线段组成一个棱柱。

你的唯一的功能没有给出正确的颜色范围。我已经表明并证明了这一点。

你只是在制造混乱,但如果你简化你的创作,你会得到我写的东西。这就是为什么你的作品比较慢,而且还能用,因为你搞得太乱了,你甚至可以通过切线来计算数字2。
尤里的代码 基础上检查,采取你的算法和我以前的帖子中的这个 算法。你会看到,它将是相同的,只是速度更快,时间更短。

 
Nikolai Semko:

你只是把事情弄得一团糟,但如果你简化你的创作,你会得到我写的东西。这就是为什么你的艺术作品比较慢,因为你编造了这么多东西,你可以通过切线计算出数字2。
尤里的代码 的基础上进行检查,并从我以前的帖子中获取你的算法 你会看到,它将是相同的,只是速度更快,时间更短。

我的算法运作良好。它很快速(15-20微秒)。你的工作不正常。你是在建议我按你的例子重写我的算法吗?)

你帮助我使我的算法更快,所以我不必重写它。谢谢你的提醒。否则,我的算法除了外观上的修正,什么都不需要。

然而,你的算法有明显的问题。