キャンバスがカッコいい! - ページ 63

 
Renat Akhtyamov:

Beautiful !!!

ニコライさん、レインボーカラーパレット形成のコードリストをここに投げてください。

関数の形になれば、さらに実用性が高まります
何度もやっています。今、パソコンの前にいないんです。
その機能を「Grad」と呼びます。
少なくとも3DSpiralのアフターコードに記載されています。
 
Nikolai Semko:

3Dムービングアバレージ
明日、Buy Moreにコードを放り込んでおきます。


ニコライ、君にはいつも驚かされるよ。

 

素晴らしい

 
昔は頭の中で回転していた)今は見ることができる。面白い考えですね、2時間くらい考えてしまいました。Z軸の挙動は何を意味しているのでしょうか...?山があり、その手前に平野があるようなイメージです。ロシアのコーカサス地方が現在の価格で、それ以外の高原地帯が平均値というように...)
しかし、空間的に見ると、Z軸に沿った距離であることがわかります。しかし、その距離は何にあるのでしょうか?とにかく、まだアノラックは出てきませんが、ニコライは私が頭の中で見たとおりのことをしたのかなと思います☺。
 
Maxim Romanov:
しかし、空間的に見ると、Z軸に沿った距離であることがわかります。しかし、何における距離なのか?
ZはMAの周期です。
この場合、3つの次元はすべて異なる大きさを持っています。
x - 時間
y - 価格
z は算術平均の算出期間
の範囲は、画面サイズに合わせて単純に拡大縮小されます。
 

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ライブラリー:イージーキャンバス

ニコライ・セムコ さん 2020.02.17 05:15

テスターモードでKanvasを操作する際に、興味を持ったプログラマーのために重要な点を明らかにしておきたいと思います。
このコミュニティで有名なプログラマーが、こんな質問をしてきた。

- 通常モードでは、私のパネルはキャンバスに通常の速度で描かれているのに、テスターモードでは、オブジェクト上に作成されたパネルがキャンバスに描かれるよりもずっと速く再描画されるのはなぜですか?

なんとか問題の原因と解決策を理解することができました。

問題は、オブジェクトの再描画が画面全体の再描画に連動してしまうことです。一方、テスターの画面は1秒間に30フレームも再描画されないのです。

オブジェクトは最終的に同じキャンバス(内部)ですが、オブジェクトのプロパティを 変更すると、オブジェクトのキャンバスは生成されず(再計算されず)、画面の更新(ChartRedraw)時にのみ生成されます。これはテスターでは(通常モードでも)私たちの目が変化を識別できるほどの頻度、つまり〜32フレーム/秒よりも頻繁に発生しないのです。

パネルが1目盛りごとに変化するとします。そうすると、デフォルトの canvas も tick ごとに再描画されますが、テスターでの再描画の頻度はまだ ~30 ミリ秒 (~30 fps) 以内に収まっています。

つまり、キャンバスの再計算は、実際に画面に表示されるよりもはるかに頻繁に行われることになり、結果的にリソースを不当に消費することになります。

この問題を解決するには、canvasの再計算と再描画の頻度をコンピュータ時間の15~30ミリ秒に抑えるようにすれば、空の再計算の不要なサイクルが発生しません。

例えば、こんな風に。

void OnTick()
  {
  static uint lastCalc=0;
  uint cur=GetTickCount();
  if (cur-lastCalc>15) {
    ReDrawMyCanvas();
    lastCalc=cur;
   }
  }

 
Nikolai Semko:

これは機能スレッドに投稿すべきです - 役に立ちます。
 

皆さんこんにちは、Canvasの知識を深めたいのですが

どこから手をつけていいのかわからないくらいです。今、Canvasは複雑な対数式とか想像しているんです。

キャンバス上に以下のようなボタンを作る例を教えてください。理解するためにコードが必要だ。


 
Vladimir Pastushak:

皆さんこんにちは、Canvasの知識を深めたいのですが

どこから手をつけていいのかわからないくらいです。今、Canvasは複雑な対数式とか想像しているんです。

例としてキャンバス上に以下のようなボタンを作る方法を教えてください。理解するためにコードが必要だ。


既成のエレメントを使う方が簡単です。(Png画像として)。

つまり、一回りした線、もう一回りした線、などです。- 次に、グラデーションの形で塗りつぶしをした小さなもの(これは塗りつぶしを定義する方法です)。

キャンバス上では、プリミティブな縞模様の長方形と円だけで、図形や線の輪郭を描いたり、塗りつぶしたりすることができるんだ。

そのため、デフォルトではすぐに塗りつぶされる矩形が用意されている......というわけだ。

また、プリミティブを描くためのドットのあるキャンバスもあります(クラスを展開)。

おそらく、すでにご存知のこともたくさん書かれていることでしょう。


ベクターマトリクスを使った3Dキャンバスもある

理由: