色を色合いに分解する機能。 - ページ 20

 
prostotrader:
三目並べはできないの?

クールなグラデーションとシェードで ))))

 
Sergey Basov:

クールなグラデーションとシェードで )))

何が面白いのかわからない。とても悲しいことです。世界は昔から、無駄な目的のために格好いい形を作り、ここでも「なぜそれが必要なのか?世界に追いつくために必要なことそうでなければ、--世界に潰される。

 
Реter Konow:

何が面白いのかわからない。とても悲しいことです。世界はとっくに無駄な物質のかっこいい形を作り出しているのに、ここではまだ「なぜそれが必要なのか?".世界に追いつくために必要なことそうでなければ、--世界に潰される。

だから、誰かが必要としていること(GUI、適切なグラデーション、色合いなど)を、市場で証明してください。

猫も杓子も長い間、このことをほのめかしていたのです ))

PS.個人的な意見ではなく、私も素敵なインターフェースは好きですが、あくまでMTのおまけとしてです。

 
Реter Konow:

何が面白いのかわからない。とても悲しいことです。世界は昔から、無駄な目的のためにカッコいい形を作り、ここでも「なぜそれが必要なのか?世界に追いつくために必要なことそうでなければ、--世界に潰される。

虹色に染まったゴキブリは、そう、キラキラと潰れないのだろうか。

 
Sergey Basov:

そして、誰かがそれを必要としていること(GUI、適切なグラデーション、色合いなど)を、市場で証明してください。

猫も杓子も長い間、このことをほのめかしていたのです ))

PS.個人的な意見ではなく、私も素敵なインターフェースは好きですが、あくまでMTのおまけとしてです。

そこにいるのは誰だ?

 
Реter Konow:

そして、これらのことは、Windowsのパレットのウィンドウに表示される数字の挙動を観察するだけで、理解できるようになりました。

私は別の方法を使っています。知識ベースのロジックを取り入れるだけです。

そして、同じアルゴリズムがあることをまだ理解していないようですね、他にはないのですから。アルゴリズムは、3次元空間の2点(x1,y1,z1)と(x2,y2,z2)を結ぶ1次関数と呼ばれる

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

なぜか、あなたの最初のメッセージから判断すると、あなたは1ヶ月かけて、しかも間違えながら作ったようですが、私は何も工夫する必要がありませんでした。なぜなら、これは明らかに3次元の2点(r1、g1、b1)と(r2、g2、b2)を結ぶ単純な問題で、私は学校で数式レベルではなく、論理レベルで非常によく理解できているのです。最初の実現には 15分ほどかかり、コードは1回目(覚えていない、2回目からかも)から動きました。

あなたのアルゴリズムは、以下のような、よりシンプルで汎用性の高い関数を用いて実装されていることは、すでにここで 書きました。

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

2つの配列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;
     }
  }

は、ここで紹介するすべてのアルゴリズムを2行で生成するためです。ループ内には乗算でもない「+」演算が1つしかないため、最速となる。また、1つの色の濃淡を計算するだけでなく、任意の2つの色のブレンドも可能です。

 
Nikolai Semko:

私は別の方法を使っています。私は知識ベースのロジックを使うだけです。

そして、アルゴリズムは1つだけで、他にはないことをまだ理解していないようですね。アルゴリズムは、3次元空間の2点(x1,y1,z1)と(x2,y2,z2)を結ぶ1次関数と呼ばれる

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

なぜか、あなたの最初のメッセージから判断すると、あなたは1ヶ月かけて、しかも間違えながら作ったようですが、私は何も工夫する必要がありませんでした。なぜなら、これは明らかに3次元の2点(r1、g1、b1)と(r2、g2、b2)を結ぶ単純な問題で、私は学校で数式レベルではなく、論理レベルで非常によく理解できているのです。最初の実現には 15分ほどかかり、コードは1回目(覚えていない、2回目からかも)から動きました。

あなたのアルゴリズムは、以下のような、よりシンプルで汎用性の高い関数を用いて実装されていることは、すでにここで 書きました。

2つの配列CLR1、CLR2の共通配列がソリューションとなります。

私の解決策は、色の明度を計算し、128と127の代わりに代用する必要があるため、少し複雑でした。

ということで、最後にもう一度だけ繰り返します。
ここでは、グラデーションを扱うために必要な、より汎用性の高い機能を紹介します。

は、ここで紹介するすべてのアルゴリズムを2行で生成するためです。ループ内には乗算でもない「+」演算が1つしかないため、最速となる。また、この関数は、1つの色の濃淡を計算するだけでなく、任意の2つの色をブレンドすることができます。

私たちは、さまざまなアルゴリズムを持ち、さまざまなアプローチをしています。3次元空間の2点を結ぶ1次関数がないんです。角柱を形成する6つのセグメントからなる2次元グラフがある。

唯一無二の機能では、適切な色の範囲が得られないのです。すでに示し、証明した。

 
Artyom Trishkin:

虹色に彩られたゴキブリは、そう、キラキラと輝いていて、潰れないのか?

そんな心配は無用です。

 
Реter Konow:

私たちは、さまざまなアルゴリズムを持ち、さまざまなアプローチをしています。3次元空間の2点を結ぶ1次関数がないんです。角柱を形成する6つのセグメントからなる2次元グラフがあります。

唯一無二の機能では、適切な色の範囲が得られないのです。すでに示して証明済みです。

ただごちゃごちゃ作っているだけなのに、作り方をシンプルにすると、私が書いたようなことになるんですね。だからお前の作品は遅いし、作品なんだよ、接頭辞で桁2まで計算できるほどぐちゃぐちゃになってるんだから。
あなたのアルゴリズムを取っているYuriのコードと 、私の以前の投稿にあるこのコード に基づいて確認してください。そして、同じように、ずっと速く、ずっと短いだけであることがおわかりいただけると思います。

 
Nikolai Semko:

ただ、ごちゃごちゃと作っただけですが、作り方をシンプルにすれば、私が書いたようなことができるようになりますよ。だから君の作品は遅くなるんだよ、あれだけ作り込んだんだから、2番はタンジェントで計算すればいいんだよ。
Yuriのコードを ベースにチェックし、私の前回の投稿からアルゴリズムを取る 同じように、より速く、より短くなることがおわかりいただけると思います。

私のアルゴリズムはうまくいっています。速い(15〜20マイクロ秒)。あなたのは正しく動作しません。あなたの例で私のアルゴリズムを書き直せということでしょうか(笑)。

アルゴリズムを高速化するのを手伝ってくれたので、書き直す必要がなかったんです。ありがとうございます。そうでなければ、私のアルゴリズムは表面的な修正しか必要ありません。

しかし、このアルゴリズムには明らかに問題があります。