私のアプローチコアはエンジンです。 - ページ 177 1...170171172173174175176177178179180181182183184 新しいコメント Artyom Trishkin 2019.02.18 22:51 #1761 Реter Konow:解決策を練る必要がある。私のウィンドウは、MTのオブジェクトであるキャンバスのセットで構成されています。まず個別に縮小し、次に1つにまとめる必要があります。そんなアルゴリズムが必要なのです。つまり、個々にはともかく、縮小した画像を合成するのは、まだです。オブジェクトの相対座標の変化を計算する。スタート地点があるのです。XとY。キャンバス-ウィンドウ全体の幅と高さの合計サイズに対して、それらを再計算します。 Реter Konow 2019.02.18 22:54 #1762 Artyom Trishkin:オブジェクトの相対座標の変化を計算する。スタート地点があるのです。XとY。カンヴァス全体の幅と高さの合計に対して再計算します。なるほどと思いました。ニコライがダメと言うならやってみようか。ありがとうございます。 Maxim Kuznetsov 2019.02.18 23:04 #1763 Реter Konow:解決 策を練る必要がある。私のウィンドウは、MTのオブジェクトであるキャンバスのセットで構成されています。まず個別に縮小し、次に1つにまとめる必要があります。そんなアルゴリズムが必要なのです。つまり、個々にはともかく、縮小した画像を合成するのは、まだです。まず、当然ですが、作らないといけない。 つまり、ちょっとまとまった感じがないとダメなんです。昔も言われましたが...止まれ、出せ...しかし気にするな、列車は止まらない;-) これは永遠の作者のバージョンだと信じましょう...。 C#で踊っているのだから、OpenGLは「地球の先を行っている」と思って見てください。そして、それを使って「キャンバス」(ただし、まともなところではそう呼ばず、コンテクストと呼ぶ)に描くのです。めちゃくちゃ速くなるし、オーバーレイ、拡大縮小、回転、ねじれも思いのままです。 Nikolai Semko 2019.02.18 23:07 #1764 すみません、パスします。私のコンフォートポイントは、自分でタスクを決めて自分で達成することで、他人のタスクを決めたり、他人のタスクを達成したりしないことです。 Nikolai Semko 2019.02.19 03:56 #1765 Artyom Trishkin:相対的なオブジェクトの座標の変化を計算する。スタート地点があるのです。XとY。キャンバス全体、つまりウィンドウの幅と高さに相対して再計算します。 このベクタースケーリングの方法は、ラスタースケーリングに比べて視覚的に非常に劣ることになります。 また、テキストについてはどうでしょうか。フォントサイズが 不釣り合いに "ジャンプ "するベクターのスケーリングは、図形の座標を整数値(int)ではなく、分数値(double)に設定できれば、問題ない。しかし、そのためには、アンチエイリアシングを備えた高度なCanvasライブラリが新たに必要になります。 Nikolai Semko 2019.02.19 04:02 #1766 Maxim Kuznetsov:まず、当然ですが、作らないといけない。 というか、ちょっとまとまった感じがないとダメですね。もう少しホリゾントに見えるように...昔はよく言ったものです。止まれ、出せ...でもさあ、電車は止まらないよ;-) 永遠の作者バージョンということにしておきましょう......。 C#で踊っているのだから、OpenGLは「地球の先を行っている」と思って見てください。そして、それを使って「キャンバス」(ただし、まともなところではそう呼ばず、コンテクストと呼ぶ)に描くのです。めちゃくちゃ速くなるし、オーバーレイ、拡大縮小、回転、ねじれも思いのままです。 自分のために書くのであれば、もちろんです。でも、パースというのは、全部市場にあるんですよ。OpenGLやDirectXを扱ったことがありますか?ビデオカードのリソースを使用しているのでしょうか?ZS 愚かな質問ですが。もちろん、そうでしょう。なぜ開発者がOpenGLではなくOpenCLにねじ込んだのか理解できないのですが?おそらく、そのほうがやりやすかったからでしょう。SZY OpenCLについて読みました。OpenCLについて読みましたが、この技術はより計算に向いており、OpenGLを選ばなかった理由もそこにあります。 Nikolai Semko 2019.02.19 04:35 #1767 Peterさん、GUIのためにOpenCLを学ぶとかっこいいですよ。迷わなければ、マーケットに通用する。もちろん、ユーザーがインストールしたOpenCLカーネルと、それをサポートするビデオカードがあればよいのです。なぜなら、ずっと前から可能だったのですが、まだこの方向での活動が見られないからです。 Artyom Trishkin 2019.02.19 06:25 #1768 Nikolai Semko: このようなベクタースケーリングの方法は、ラスタースケーリングに比べて視覚的に非常に劣ってしまいます。 また、テキストについてはどうでしょうか?文字サイズが 不釣り合いなほど「飛び」ます。ベクターのスケーリングは、図形の座標を整数値(int)ではなく、分数値(double)に設定できれば、問題ない。しかし、そのためには、アンチエイリアシングを備えた高度なCanvasライブラリが新たに必要になります。最初に思い浮かんだのはおそらく、3D Studio MAXで長年ベクターグラフィックスを扱ってきた影響もあり、そのような考え方に慣れているのでしょう。ちなみに、Photoshopのラスタースケーリングよりも視覚的に非常に優れています。 Artyom Trishkin 2019.02.19 07:13 #1769 Nikolai Semko: このようなベクタースケーリングの方法は、ラスタースケーリングに比べて視覚的に非常に劣ってしまいます。 また、テキストについてはどうでしょうか?文字サイズが 不釣り合いなほど「飛び」ます。ベクターのスケーリングは、図形の座標を整数値(int)ではなく、分数値(double)に設定できれば、問題ない。しかし、そのためには、アンチエイリアシングを備えた高度なCanvasライブラリが新たに必要になります。そこで思いついたのが、必要なウィンドウ形状のラスター画像を撮影し、それを1つのラスターオブジェクトとして拡大縮小することです。 Nikolai Semko 2019.02.19 07:41 #1770 Artyom Trishkin:そこで思いついたのが、必要なウィンドウ形状のビットマップを取り、それを1つのビットマップオブジェクトとして拡大縮小することです。他に何があるんだ?ピーターはそれを望んでいたのだと思う。 以下は、BMP[]配列に格納された画像をwidth_bmp xheight_bmp の大きさで拡大するための準備関数です。 void CImage::ResizeImage(double NewWidth) { if(NewWidth==0) NewWidth=1; double k=NewWidth/width_bmp; // меньше единицы double k2=k*k; double kk=width_bmp/NewWidth; // больше единицы double w1=(double)width_bmp*k; int W=_ceil(w1); double h1=(double)height_bmp*k; int H=_ceil(h1); uint M[]; int ArrSize=W*H; ArrayResize(M,ArrSize); int pos=0; double y0=0,x0,y1=kk,x1; for(int y=0; y<H; y++,y0=y1,y1+=kk) { x0=0; x1=kk; for(int x=0; x<W; x++,x0=x1,x1+=kk,pos++) { int xs=(int)x0; int xf=(int)x1; int ys=(int)y0; int yf=(int)y1; double r=0,g=0,b=0,p=0; int pos2=ys*(int)width_bmp+xs; for(int Y1=ys;Y1<=yf;Y1++,pos2+=(int)width_bmp) { double dx,dy; int pos1=pos2; if(Y1==ys) { dy=ys+1-y0; if(ys==yf) dy=dy-1+y1-yf;} else if(Y1==yf) dy=y1-yf; else dy=1; for(int X1=xs;X1<=xf;X1++,pos1++) { if(pos1<SizeArr) { if(BMP[pos1]!=0) { col.clr=BMP[pos1]; if(X1==xs) { dx=xs+1-x0; if(xs==xf) dx=dx-1+x1-xf;} else if(X1==xf) dx=x1-xf; else dx=1; dx=dx*dy; r+=(double)col.argb[2]*dx; g+=(double)col.argb[1]*dx; b+=(double)col.argb[0]*dx; p+=(double)col.argb[3]*dx; } } else break; } } col.argb[0]=uchar(b*k2); col.argb[1]=uchar(g*k2); col.argb[2]=uchar(r*k2); col.argb[3]=uchar(p*k2); M[pos]=col.clr; } } C.Resize(W,H); ArraySwap(C.m_pixels,M); C.Update(); } ファイル: CImage.mqh 12 kb 1...170171172173174175176177178179180181182183184 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
解決策を練る必要がある。私のウィンドウは、MTのオブジェクトであるキャンバスのセットで構成されています。まず個別に縮小し、次に1つにまとめる必要があります。そんなアルゴリズムが必要なのです。つまり、個々にはともかく、縮小した画像を合成するのは、まだです。
オブジェクトの相対座標の変化を計算する。スタート地点があるのです。XとY。キャンバス-ウィンドウ全体の幅と高さの合計サイズに対して、それらを再計算します。
オブジェクトの相対座標の変化を計算する。スタート地点があるのです。XとY。カンヴァス全体の幅と高さの合計に対して再計算します。
なるほどと思いました。ニコライがダメと言うならやってみようか。ありがとうございます。
解決 策を練る必要がある。私のウィンドウは、MTのオブジェクトであるキャンバスのセットで構成されています。まず個別に縮小し、次に1つにまとめる必要があります。そんなアルゴリズムが必要なのです。つまり、個々にはともかく、縮小した画像を合成するのは、まだです。
まず、当然ですが、作らないといけない。 つまり、ちょっとまとまった感じがないとダメなんです。昔も言われましたが...止まれ、出せ...しかし気にするな、列車は止まらない;-) これは永遠の作者のバージョンだと信じましょう...。
C#で踊っているのだから、OpenGLは「地球の先を行っている」と思って見てください。そして、それを使って「キャンバス」(ただし、まともなところではそう呼ばず、コンテクストと呼ぶ)に描くのです。めちゃくちゃ速くなるし、オーバーレイ、拡大縮小、回転、ねじれも思いのままです。
相対的なオブジェクトの座標の変化を計算する。スタート地点があるのです。XとY。キャンバス全体、つまりウィンドウの幅と高さに相対して再計算します。
まず、当然ですが、作らないといけない。 というか、ちょっとまとまった感じがないとダメですね。もう少しホリゾントに見えるように...昔はよく言ったものです。止まれ、出せ...でもさあ、電車は止まらないよ;-) 永遠の作者バージョンということにしておきましょう......。
C#で踊っているのだから、OpenGLは「地球の先を行っている」と思って見てください。そして、それを使って「キャンバス」(ただし、まともなところではそう呼ばず、コンテクストと呼ぶ)に描くのです。めちゃくちゃ速くなるし、オーバーレイ、拡大縮小、回転、ねじれも思いのままです。
このようなベクタースケーリングの方法は、ラスタースケーリングに比べて視覚的に非常に劣ってしまいます。 また、テキストについてはどうでしょうか?文字サイズが 不釣り合いなほど「飛び」ます。
最初に思い浮かんだのはおそらく、3D Studio MAXで長年ベクターグラフィックスを扱ってきた影響もあり、そのような考え方に慣れているのでしょう。ちなみに、Photoshopのラスタースケーリングよりも視覚的に非常に優れています。
このようなベクタースケーリングの方法は、ラスタースケーリングに比べて視覚的に非常に劣ってしまいます。 また、テキストについてはどうでしょうか?文字サイズが 不釣り合いなほど「飛び」ます。
そこで思いついたのが、必要なウィンドウ形状のラスター画像を撮影し、それを1つのラスターオブジェクトとして拡大縮小することです。
そこで思いついたのが、必要なウィンドウ形状のビットマップを取り、それを1つのビットマップオブジェクトとして拡大縮小することです。
他に何があるんだ?ピーターはそれを望んでいたのだと思う。
以下は、BMP[]配列に格納された画像をwidth_bmp xheight_bmp の大きさで拡大するための準備関数です。