MQLで書かれたUIのギャラリー - ページ 48

 
Nikolai Semko #:
...

私も以前はシャドーでやっていた。今はもうやらない。
影のないモダンなファッション、グラデーション、カール。
要するにレンダリングパフォーマンスを重視したミニマリズムだ。


もちろん、ファッションは違うが、厳密にレンダリングの話をするなら、小さなアイコンの影の追加処理は、子式で計算された値で16*16の配列セルを初期化するだけだ。ウィンドウ内のアイコンは指で数えられるほどだ。レンダリングにミリ秒の遅れはほとんどないだろう。もうひとつは、多くの要素を持つ大きなキャンバスの表面を再描画するイベントだ。その場合、間違いなくグラフィックガジェットの動作は遅くなる。しかし、最初の描画時か、キャンバス全体を変更するときだけです。常にではなく、特定のイベントでのみです。それ以外の場合は、保存したリソースをメモリから削除するだけで、何も描画しません。

そういうものなのだ...。
 
Nikolai Semko #:

透明な背景(アルファチャンネル付き)のpngアイコンについて話しています。

つまり、透明度はありません。背景は-1で表示されます。アルゴリズムは、この値をレンダリング キャンバスの下のピクセルの色に変更するだけです。つまり、この場合、色を混ぜる必要はありません。しかし、他の目的では、透明度関数は非常に便利です。ちなみに、私は古い記事からあなたのアドバイスでこれを借用した。しかし、まだ使ったことはない。どこかで役に立つと思うのだが...。
 
Nikolai Semko #:

...

ところで、僕が処理できなかったグラフィックの問題があるんだ。本当に難しいんだ。解こうとしてあきらめた。解けなかったのではなく、時間がかかりすぎた。長所と短所を天秤にかけて、挑戦するのを諦めたんだ。

あなたがキャンバスの色を扱う大きな専門家であることは知っています。聞かずにはいられません。

そこで問題です:

単純なボタンの枠の色のグラデーションを、ボタンの表面の色と調和するように、そして滑らかに通過するように計算し、カーブを変えることなく強調する方法です。 例えば、薄い黄色のボタンがあるとします。その4-5ピクセルの太さの枠を正しく着色するにはどうすればよいでしょうか?フレームは左右で光の当たり方が違うことに注意する必要があります。正面と左から見るとフレームは明るく、右と下から見ると暗くなります。また、ベースに近いほどフレームは暗くなります。さらに、まぶしさもあります。

ボタンの元の色からフレームの色を計算するには?


それが質問です。:)
 

わかりやすい例:


ボタンの縁に色がありません。必要な色の計算に失敗したからです。通常のグラデーションは適していません。光、影、角度、色の濃淡を計算する公式が必要だ。私にはこの分野の能力がない。

 
Реter Konow #:
ところで、私が処理できなかったグラフィックの問題がある。本当に難しい問題なんだ。解こうとしてあきらめた。できなかったからではなく、時間がかかりすぎたのだ。長所と短所を天秤にかけて、それ以上の挑戦はあきらめた。

あなたがキャンバスの色を扱う大きな専門家であることは知っている。聞かずにはいられません。

では、ここで挑戦です:

シンプルなボタンの枠の色のグラデーションを、ボタンの表面の色と調和するように計算し、カーブを変えずに強調しながらスムーズに移行させる方法です。 たとえば、薄い黄色のボタンがあるとします。その4-5ピクセルの太さの枠を正しく着色するにはどうすればよいでしょうか?フレームは左右で光の当たり方が異なることに留意する必要があります。正面と左から見るとフレームは明るく、右と下から見ると暗くなります。また、ベースに近いほどフレームは暗くなります。さらに、まぶしさもある。

元のボタンの色から、フレームの色を計算するにはどうしたらいいですか?


これが質問です。:)

1.色について - 対照的な色、テーブルがあります(この場合、濃紺の色合いを取得する必要があります)。

2. 影について: 電球(XYZ空間内の点、数字座標だけで、軸を作る必要はない)をシミュレートし、そこから影の境界を示す直線の端まで。この場合、グラデーションは、ボタンの高さにもよりますが、最初の境界から2番目の境界まで、ジオメトリも伸びるでしょう。

 
Renat Akhtyamov #:

1.色によって - 対照的な色、テーブルがある(この場合、それは濃紺の色合いになるはずです)。

2.影について:電球(点)を模倣し、そこから影の境界を示す直線の端まで。この場合、グラデーションは最初の境界から2番目の境界まで、ボタンの高さに応じて、また幾何学的に伸びる。

関数、数式、記事へのリンクを提供していただけますか?助かります。
 
Реter Konow #:
関数、数式、記事へのリンクを教えていただけますか?助かります。

ググれば何百万もの答えがある

https://www.geeksforgeeks.org/how-to-determine-the-length-of-a-shadow/

https://www.sravni.ru/kursy/info/cvetovoj-krug-ittena/

How to determine the length of a Shadow? - GeeksforGeeks
How to determine the length of a Shadow? - GeeksforGeeks
  • www.geeksforgeeks.org
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
 

何百万もの答えはいらない。正しい答えが1つあればいい。)

そうでなければ、やる意味があまりない。採算が合わない。


そして、質問は影の長さについてではなく、ボタン自体の色とボタンの枠の 正しい 色合いについて だった。

 
Реter Konow #:

何百万もの答えはいらない。正しい答えが1つ、できればすぐに欲しい)。

そうでなければ、やる意味があまりない。採算が合わない。


そして、問題は影の長さではなく、ボタン自体の色とボタンの枠の 正しい 色合い だった。

それが影です。

もし色が対照的であれば、それはユーザーにとってのみ美しく、アーティストは飽きてしまうだろう。
 

上のタスクは、複雑な色計算のほんの一例です。通常のグラデーションの扱い方は知っている。透明の扱い方も知っている。アイコンがぎこちないのは、怪しげなソースから無料でダウンロードしたからだ。透明化機能では修正できない。なぜなら、透明化する必要があるピクセルをプログラムで選択できないからだ。もしそれができたら、透明化関数は必要ないだろう。そのピクセルの下にそのピクセルの色を挿入するだけだ。

インターフェイスがグラフィック的に 不完全であることは認めざるを得ない。その通りです。しかし、認めなければならない。かなり合格点だ。

重要なのは機能性だ。