クールだが、アンチエイリアスはまったくない。ピクセルの正方形で描画するのは時代遅れだ。
アンチエイリアスが自然界に存在することを示す例を紹介しよう:
コードは?
コードは?
どういたしまして:
#property copyright "2009-2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property description "Demonstrating Canvas features" #property script_show_inputs //--- #include <Canvas\CanvasPro.mqh> //+------------------------------------------------------------------+ |入力| //+------------------------------------------------------------------+ input int pause = 20; // 画面への出力間隔をミリ秒単位で遅延させる。 input bool top = false; // グラフの下に描く? input ENUM_COLOR_FORMAT format=COLOR_FORMAT_ARGB_NORMALIZE; //カラー処理方法 input int Ncirl =30; // 円の数 input int MaxSizeCircle = 200; // 円の最大サイズ //+------------------------------------------------------------------+ //| スクリプト番組開始機能| //+------------------------------------------------------------------+ int OnStart(void) { double r1[],r2[],k1[],k2[]; int x[],y[]; uint col[]; int j=0; ArrayResize(r1,Ncirl); ArrayResize(r2,Ncirl); ArrayResize(k1,Ncirl); ArrayResize(k2,Ncirl); ArrayResize(x,Ncirl); ArrayResize(y,Ncirl); ArrayResize(col,Ncirl); ChartSetInteger(0,CHART_FOREGROUND,top); int Width =(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS); // ウィンドウ幅を取得する int Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // ウィンドウの高さを取得する uint ColorScreen=(color)ChartGetInteger(0,CHART_COLOR_BACKGROUND,0);// ウィンドウの背景色を取得する CCanvasPro canvas; if(!canvas.CreateBitmapLabel("SampleCanvas",0,0,Width,Height,format)) { Print("Error creating canvas: ",GetLastError()); return(-1); } canvas.SetBack(false); canvas.Erase(ColorScreen); canvas.Update(); srand(GetTickCount()); for(int i=0;i<Ncirl;i++) { x[i]=rand()%Width; y[i]=rand()%Height; r1[i]=rand()%MaxSizeCircle; r2[i]=rand()%MaxSizeCircle; k1[i]=(double)(rand()%10)/1000; k2[i]=(double)(rand()%10)/1000; col[i]=XRGB(rand()%255,rand()%255,rand()%255); } while(!IsStopped()) { canvas.Erase(ColorScreen); for(int i=0;i<Ncirl;i++) canvas.CircleSS(x[i],y[i],r1[i]*fabs(sin(j*k1[i])),r2[i]*fabs(sin(j*k2[i])),col[i]); Sleep(pause); canvas.Update(); j++; } ObjectDelete(0,"SampleCanvas"); canvas.Destroy(); return(0); }
残念だ。Wuの手法に基づく最後の円関数でさえバグを含んでおり、この手法の原始性のために円の対角線上の場所でスムージングに顕著な誤差を与え、速度の点で非常に最適ではない。特に平滑化された塗りつぶし形状は存在しない。
コードは?
では、私は質問に参加するだけです。
なぜ私にこのような質問をするのか不思議です。私はMetaquotesで働いていませんが、そこで働くことを夢見ています。この会社で働いていたら、この問題だけでなく、CCanvas ライブラリでのスムージングの問題だけでなく、たとえば、canvas での本格的な 3D 機能の問題にも取り組むことができたでしょう。
でも、今の私には、膝の上で作った実験しかありません。公開するのが怖いのです。なぜなら、もっとうまくできることはわかっているからです。でも、時間がかかります。
なぜこのような質問をされるのか不思議です。私は Metaquotes で働いているわけではありません。もし私がこの会社で働いていたら、この問題だけでなく、CCanvasライブラリのアンチエイリアスの問題だけでなく、たとえば、canvasのフル3D機能についても、うまく取り組むことができただろう。
しかし、今は、膝の上で組み立てた実験だけである。
投稿の編集も新規投稿もないのに、10回目にしてトピックに未読マークがついた。
誰かがいじくりまわしているのか、それともフォーラムがキーを押しているのか?
投稿の編集も新規投稿もないのに、10回目にしてトピックに未読マークがついた。
誰かがいじくりまわしているのか、それともフォーラムがキーを押しているのか?
投稿者(著者?)が自分の投稿を編集しているのではないかと疑っている。
もう一つの選択肢:誰かが投稿を書き始めてやめた。今、この投稿は編集モードでハングアップしており、フォーラムは毎分(5分、10分?)トピックで何かが起こっていると記している。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 CCanvasでのカスタム指標とインフォグラフィックス はパブリッシュされました:
本稿は、より複雑な構造的実装を伴う新しい種類の指標について検討し、擬似3D型指標と動的インフォグラフィックスの開発についても説明します。
これまではプリミティブを使って複雑な形状を構築するためのクラスと原則を調べてきました。ヒストグラム型の指標を作成するクラスについて説明する際に、擬似3Dオブジェクトを色の選択によってプロットすることについて述べてきました(図13)。しかし、ピラミッドは平らな姿ではありません。したがって、与えられた2次元座標系で等値投影を使用する必要があります。基本的な構造にはあまり多くの要素が含まれていません(図14)が、ピラミッド投影法と可視化の方法は、クラスの実装の主要部分です。
図14 CPyramidクラスの基本構造
作者: Alexander Fedosov