キャンバスがカッコいい! - ページ 64 1...575859606162636465666768697071...93 新しいコメント Nikolai Semko 2020.10.26 12:36 #631 Vladimir Pastushak:皆さんこんにちは、Canvasの知識を深めたいのですがどこから手をつけていいのかわからないくらいです。今、Canvasは複雑な対数式とか想像しているんです。キャンバス上に以下のようなボタンを作る例を教えてください。それを理解するためのコードが必要です。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム Canvasでクラウドソーシングのプロジェクトを作る ニコライ・セムコ さん 2017.05.24 02:20 出てきたのはこんな感じです。 ボタンは背景の後ろと前景に表示でき、クリックロックするかしないかを設定できます。 サンプルファイルCanvasButton.mq5では、マウスでボタンをドラッグすることが可能です。Ctrlキーで青いボタン、Shiftキーで赤いボタンを移動させるだけです。 GButton クラスは CCanvas クラスの子孫なので、CircleWu のサンプルで CCanvas クラスの関数を使用する機能をデモしています(OnInit で実装されています)。そこで、CCanvas クラスの関数を使って、ボタンにテキストを書き込むことが可能です。 もちろん、このクラスはクリーンさを装っているわけではありません。グラフィックの完成度は高くなく、3Dもありきたりで、シャドウも実装されておらず、実行速度も最適化されていない。そして、ほとんどの場合、粗が多く、様々なチェックが不足しています。だから、厳しく判断してはいけない。 もう少し時間をかければ、もちろん可能です。 私はただ...方向性を決めるということですね。 Canvas.mqhは、m_pixels配列がpublicに定義されている点のみオリジナルと異なります。 Codexample 2021.01.27 09:24 #632 ニコライはもちろん、Canvasの実験にかける鋭敏な熱意へのリスペクトです。そして、コード例も少なくない喜びを持って勉強しています。もちろん、現在のCanvasの実装は、ビットマップ配列にグラフィカルプリミティブを充填するための、純粋にCPUに依存したアルゴリズムです。I.e. 配列要素の列挙を伴うループ経由 といったところでしょうか...。一方、21年前のこと...。実験は確かに良いのですが、実用のための実装は、美しいだけでなく、効果的であるべきです。8コアの最高級PCならともかく、一般的なユーザーはミドルクラスのPCを使用していますからね。また、市場データを可視化するフルスクリーンGUIは、たとえ非常に便利で美しくても、CPUに75%もの負荷をかけるようでは人気が出ないでしょう。これは事実です。そのため、主要なブラウザのCanvas実装では、ハードウェアアクセラレーションが導入されています(他にやることがなかったからではありません)。 MQL5では、Direct2D(とDirectWrite)のラッパーがあるはずです。これは、GUIやデータビジュアライゼーションの分野における多くの実用的なタスクを、効率的にハードウェアで加速して実装する道を開く、真の爆弾となるでしょう。もちろん、すでにDirectXがあるとも言えます。しかし、そのDirect3Dの部分しか表現されておらず、それは3Dの投影やシェーダーなどの属性であり、実用としてはまだむしろ狭いニッチな領域です。もちろん、投影やその他の操作、テッセレーションを調整することで、Direct3Dによる2Dグラフィックスのレンダリングを実現することは可能です。Direct2Dが実装されたのはかなり前なので、これでは意味がないでしょう。 そこで考えたのが...。 Renat Fatkhullin 2021.01.27 14:35 #633 とはいえ、CPUでもすべてが素早く描画できる。上記の例がそれを証明しています。しかも、最終的な映像の美しさや洗練さには厳しい条件がないアプリケーション領域です。 Nikolai Semko 2021.01.27 21:31 #634 Codexample:ニコライはもちろん、Canvasの実験にかける鋭敏な熱意へのリスペクトです。そして、コード例も少なくない喜びを持って勉強しています。残念ながら、現在のCanvasの実装は、ビットマップ配列にグラフィカルプリミティブを充填するためのCPUバウンドアルゴリズムに過ぎません。配列要素検索によるループ経由など といったところでしょうか...。一方、21年前のこと...。実験は確かに良いのですが、実用のための実装は、美しいだけでなく、効果的であるべきです。8コアの最高級PCならともかく、一般的なユーザーはミドルクラスのPCを使用していますからね。また、市場データを可視化するフルスクリーンGUIは、たとえ非常に便利で美しくても、CPUに75%もの負荷をかけるようでは人気が出ないでしょう。これは事実です。そのため、主要なブラウザのCanvas実装には、ハードウェアアクセラレーションが導入されています(他にやることがなかったというわけではありません)。 実際、MQL5はDirect2D(とDirectWrite)のラッパーになるわけですが、GUIやデータビジュアライゼーションの分野で多くの実用的なタスクを効率的にハードウェアで加速して実装する道を開く、本当の爆弾になるでしょうね。もちろん、すでにDirectXがあるとも言えます。しかし、そのDirect3Dの部分しか表現されておらず、それは3Dの投影やシェーダーなどの属性であり、実用としてはまだむしろ狭いニッチな領域です。もちろん、投影やその他の操作、テッセレーションを調整することで、Direct3Dによる2Dグラフィックスのレンダリングを実現することは可能です。Direct2Dが実装されたのはかなり前なので、これでは意味がないでしょう。 ここで一考...。 嬉しいお言葉をありがとうございます。 実はMQはこの点が優れていて、CPUだけでなくGPUを使ったグラフィックスやコンピュートツールにも気を配っているのです。 OpenCLとDirectXのことです。 ここでは、同じグラフィックタスク(8つの重心)の実装を、CPU、OpenCL(GPU)、DirectX(GPU)の3種類で比較した例を示します。 1.CPU -14 fps.(スクリプト Swirl2.mq5) 2.OpenCL - 162フレーム/秒(OpenCLドライバのインストールが必要です)(Swirl2_OCL.mq5スクリプト) 3.DirectX - 37フレーム/秒(スクリプト Swirl2_GPU.mq5) 最大限のパフォーマンスが必要な場合は、グラフィックカードも使用することができます。 グラフィックカードのパワーを使うことで非常にまともなパフォーマンスアップが得られる一方で、グラフィック出力にCPUを使うことでも、MQL5のタスクエリアにおけるすべてのグラフィックタスクの99%以上をカバーできるというRenatの意見に同意します。 フレームが10ミリ秒以内に生成される限り、GPUについて特にジタバタすることはありません(誘惑は時々ありますが、操縦の余地があるのは良いことです)。そして、例えばシャドウ、アンチエイリアス、透明度をつけたようなものを10ミリ秒で出力することができるのです。 GPU用の SZYコードはこのスレッドから ダウンロード しました。@Rorschachと@Serhii Shevchukに感謝 します。 ファイル: Swirl2.mq5 5 kb Swirl2_OCL.mq5 14 kb Swirl2_GPU.mq5 9 kb Canvas is cool! MQL5のALGLIB数値解析ライブラリ Nikolay Kositsin 2021.01.28 07:18 #635 皆さん、Canvas補間を使ったグラフィックリソースのリサイズを行ったことのある方はいらっしゃいますか? Nikolai Semko 2021.01.28 08:04 #636 Nikolay Kositsin: 皆さん、Canvas上で補間を使ったグラフィックリソースのリサイズを行ったことのある方はいらっしゃいますか? ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今とはかなり違うでしょう。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム キャンバスがカッコいい! ニコライ・セムコ さん 2018.03.24 04:13 ラスタースケーリングスクリプトデモ Ex5ファイルの中には、かなり大きなBMPファイルがリソースとして眠っています。 Artyom Trishkin 2021.01.28 09:13 #637 Nikolai Semko:ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今だったら、かなり違うやり方をしていたかもしれませんね。 今ならどうするのか気になるところです。それが私の一番の関心事なのです :) Vladimir Karputov 2021.01.28 09:54 #638 Nikolai Semko:ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今だったら、何もかもが違っている。 何とも言えない美しさです :) Renat Fatkhullin 2021.01.28 10:59 #639 OpenCL:https://www.mql5.com/ru/forum/162864 DirectX:Remnant 3Dを標準 搭載 Вот что можно сделать с OpenCL прямо в терминале MetaTrader 5 без всяких DLL 2016.12.10www.mql5.com Это демонстрация не только расчетов на GPU в MQL5 коде, но и графических возможностей терминала: Полный исходный код в виде скрипта приложен... Nikolai Semko 2021.01.28 14:03 #640 Artyom Trishkin:ただ、今ならどうするんだろうと。純粋に私の利益のために :) アルテムさん、先ほどはピクセルを正方形として捉え、その面積で新しいスケールのピクセルへの加重参加を計算していましたが、今は円として捉え、新しいスケールのピクセルの中心までの距離で加重参加を計算しています。 1...575859606162636465666768697071...93 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
皆さんこんにちは、Canvasの知識を深めたいのですが
どこから手をつけていいのかわからないくらいです。今、Canvasは複雑な対数式とか想像しているんです。
キャンバス上に以下のようなボタンを作る例を教えてください。それを理解するためのコードが必要です。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
Canvasでクラウドソーシングのプロジェクトを作る
ニコライ・セムコ さん 2017.05.24 02:20
出てきたのはこんな感じです。
ボタンは背景の後ろと前景に表示でき、クリックロックするかしないかを設定できます。
サンプルファイルCanvasButton.mq5では、マウスでボタンをドラッグすることが可能です。Ctrlキーで青いボタン、Shiftキーで赤いボタンを移動させるだけです。
GButton クラスは CCanvas クラスの子孫なので、CircleWu のサンプルで CCanvas クラスの関数を使用する機能をデモしています(OnInit で実装されています)。そこで、CCanvas クラスの関数を使って、ボタンにテキストを書き込むことが可能です。
もちろん、このクラスはクリーンさを装っているわけではありません。グラフィックの完成度は高くなく、3Dもありきたりで、シャドウも実装されておらず、実行速度も最適化されていない。そして、ほとんどの場合、粗が多く、様々なチェックが不足しています。だから、厳しく判断してはいけない。
もう少し時間をかければ、もちろん可能です。
私はただ...方向性を決めるということですね。
Canvas.mqhは、m_pixels配列がpublicに定義されている点のみオリジナルと異なります。
ニコライはもちろん、Canvasの実験にかける鋭敏な熱意へのリスペクトです。そして、コード例も少なくない喜びを持って勉強しています。
もちろん、現在のCanvasの実装は、ビットマップ配列にグラフィカルプリミティブを充填するための、純粋にCPUに依存したアルゴリズムです。I.e. 配列要素の列挙を伴うループ経由 といったところでしょうか...。一方、21年前のこと...。
実験は確かに良いのですが、実用のための実装は、美しいだけでなく、効果的であるべきです。8コアの最高級PCならともかく、一般的なユーザーはミドルクラスのPCを使用していますからね。また、市場データを可視化するフルスクリーンGUIは、たとえ非常に便利で美しくても、CPUに75%もの負荷をかけるようでは人気が出ないでしょう。これは事実です。そのため、主要なブラウザのCanvas実装では、ハードウェアアクセラレーションが導入されています(他にやることがなかったからではありません)。
MQL5では、Direct2D(とDirectWrite)のラッパーがあるはずです。これは、GUIやデータビジュアライゼーションの分野における多くの実用的なタスクを、効率的にハードウェアで加速して実装する道を開く、真の爆弾となるでしょう。もちろん、すでにDirectXがあるとも言えます。しかし、そのDirect3Dの部分しか表現されておらず、それは3Dの投影やシェーダーなどの属性であり、実用としてはまだむしろ狭いニッチな領域です。もちろん、投影やその他の操作、テッセレーションを調整することで、Direct3Dによる2Dグラフィックスのレンダリングを実現することは可能です。Direct2Dが実装されたのはかなり前なので、これでは意味がないでしょう。そこで考えたのが...。
ニコライはもちろん、Canvasの実験にかける鋭敏な熱意へのリスペクトです。そして、コード例も少なくない喜びを持って勉強しています。
残念ながら、現在のCanvasの実装は、ビットマップ配列にグラフィカルプリミティブを充填するためのCPUバウンドアルゴリズムに過ぎません。配列要素検索によるループ経由など といったところでしょうか...。一方、21年前のこと...。
実験は確かに良いのですが、実用のための実装は、美しいだけでなく、効果的であるべきです。8コアの最高級PCならともかく、一般的なユーザーはミドルクラスのPCを使用していますからね。また、市場データを可視化するフルスクリーンGUIは、たとえ非常に便利で美しくても、CPUに75%もの負荷をかけるようでは人気が出ないでしょう。これは事実です。そのため、主要なブラウザのCanvas実装には、ハードウェアアクセラレーションが導入されています(他にやることがなかったというわけではありません)。
実際、MQL5はDirect2D(とDirectWrite)のラッパーになるわけですが、GUIやデータビジュアライゼーションの分野で多くの実用的なタスクを効率的にハードウェアで加速して実装する道を開く、本当の爆弾になるでしょうね。もちろん、すでにDirectXがあるとも言えます。しかし、そのDirect3Dの部分しか表現されておらず、それは3Dの投影やシェーダーなどの属性であり、実用としてはまだむしろ狭いニッチな領域です。もちろん、投影やその他の操作、テッセレーションを調整することで、Direct3Dによる2Dグラフィックスのレンダリングを実現することは可能です。Direct2Dが実装されたのはかなり前なので、これでは意味がないでしょう。ここで一考...。
嬉しいお言葉をありがとうございます。
実はMQはこの点が優れていて、CPUだけでなくGPUを使ったグラフィックスやコンピュートツールにも気を配っているのです。
OpenCLとDirectXのことです。
ここでは、同じグラフィックタスク(8つの重心)の実装を、CPU、OpenCL(GPU)、DirectX(GPU)の3種類で比較した例を示します。
1.CPU -14 fps.(スクリプト Swirl2.mq5)
2.OpenCL - 162フレーム/秒(OpenCLドライバのインストールが必要です)(Swirl2_OCL.mq5スクリプト)
3.DirectX - 37フレーム/秒(スクリプト Swirl2_GPU.mq5)
最大限のパフォーマンスが必要な場合は、グラフィックカードも使用することができます。
グラフィックカードのパワーを使うことで非常にまともなパフォーマンスアップが得られる一方で、グラフィック出力にCPUを使うことでも、MQL5のタスクエリアにおけるすべてのグラフィックタスクの99%以上をカバーできるというRenatの意見に同意します。
フレームが10ミリ秒以内に生成される限り、GPUについて特にジタバタすることはありません(誘惑は時々ありますが、操縦の余地があるのは良いことです)。そして、例えばシャドウ、アンチエイリアス、透明度をつけたようなものを10ミリ秒で出力することができるのです。
GPU用の SZYコードはこのスレッドから ダウンロード しました。@Rorschachと@Serhii Shevchukに感謝 します。
皆さん、Canvas上で補間を使ったグラフィックリソースのリサイズを行ったことのある方はいらっしゃいますか?
ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今とはかなり違うでしょう。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
キャンバスがカッコいい!
ニコライ・セムコ さん 2018.03.24 04:13
ラスタースケーリングスクリプトデモ
Ex5ファイルの中には、かなり大きなBMPファイルがリソースとして眠っています。
ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今だったら、かなり違うやり方をしていたかもしれませんね。
今ならどうするのか気になるところです。それが私の一番の関心事なのです :)
ここに コードの例を示しました。しかし、このコードは完璧とは言い難い。今だったら、何もかもが違っている。
何とも言えない美しさです :)
OpenCL:https://www.mql5.com/ru/forum/162864
DirectX:Remnant 3Dを標準 搭載
ただ、今ならどうするんだろうと。純粋に私の利益のために :)