我的方法。核心是引擎。 - 页 177 1...170171172173174175176177178179180181182183184 新评论 Artyom Trishkin 2019.02.18 22:51 #1761 Реter Konow:我需要制定一个解决方案。我的窗口由一组MT物体组成--画布。他们的图像需要先单独缩小,然后再合并成一个。我需要这样一种算法。也就是说,我们可以说是单独的,但要把缩小的图像结合起来,还不行。计算物体的相对坐标的变化。他们有一个出发点。X和Y。相对于总画布--窗口的宽度和高度的总尺寸,重新计算它们。 Реter Konow 2019.02.18 22:54 #1762 Artyom Trishkin:计算物体的相对坐标的变化。他们有一个出发点。X和Y。重新计算它们相对于整个kanvas-窗口的总宽度和高度。我明白这个意思。如果尼古拉说不,我就试一试。谢谢你。 Maxim Kuznetsov 2019.02.18 23:04 #1763 Реter Konow:我需要制定一个解决方案。我的窗口由一组MT物体组成--画布。他们的图像需要先单独缩小,然后再合并成一个。我们需要这样一种算法。也就是说,我们可以说是单独的,但要把缩小的图像结合起来,还不行。首先,当然,它必须被制作出来。 我的意思是,它必须有一点连贯的外观。即使在过去,他们也会说--停下来,放出来......但不要紧,火车不会停下来;-)让我们相信,这是永恒的作者的版本...... 既然我们在与C#共舞,那就看看OpenGL是否能 "领先于地球"。并用它在 "画布 "上作画(但在体面的地方,它不叫这个名字,而是叫背景)。它的速度会非常快,你可以随心所欲地叠加、缩放、旋转、扭曲。 Nikolai Semko 2019.02.18 23:07 #1764 对不起,我不去。我的安慰点是,我自己设定任务,自己完成,我不设定别人的任务,也不完成别人的任务。 Nikolai Semko 2019.02.19 03:56 #1765 Artyom Trishkin:计算相对物体坐标的变化。他们有一个出发点。X和Y。相对于整个画布-窗口的整体宽度和高度,重新计算它们。 这种矢量缩放的方法在视觉上会比光栅缩放逊色很多。 那么文字呢?字体大小 将不成比例地 "跳 "起来如果形状的坐标可以被设置为小数(double)而不是整数(int)值,那么矢量缩放是可以接受的。但这需要一个新的具有抗锯齿的高级Canvas库。 Nikolai Semko 2019.02.19 04:02 #1766 Maxim Kuznetsov:首先,当然,它必须被制作出来。 我的意思是,它必须有一点连贯的外观。你需要做的是让它看起来更有整体性......这就像他们过去常说的--停下来,让它出来......但来吧,火车永远不会停下来;-)我们只能说这是永恒的作者的版本...... 既然我们在与C#共舞,那就看看OpenGL是否能 "领先于地球"。并用它在 "画布 "上作画(但在体面的地方,它不叫这个名字,而是叫背景)。它的速度会非常快,你可以随心所欲地叠加、缩放、旋转、扭曲。 如果为自己写作,当然可以。但整个解析的事情是在市场上。你是否使用过OpenGL或DirectX?他们是否使用显卡资源?ZS 虽然这是一个愚蠢的问题。他们当然会这样做。我不明白,为什么开发商在OpenCL上做文章,而不是OpenGL?可能是因为这更容易做到。SZY 我读过关于OpenCL的文章。我读过关于OpenCL的文章,这项技术更倾向于计算,这也解释了为什么选择不支持OpenGL。 Nikolai Semko 2019.02.19 04:35 #1767 彼得,如果你能为你的GUI学习OpenCL,那会很酷。如果我不糊涂,就会对市场起作用。当然,你只需要让用户安装OpenCL内核,他们的显卡也要支持它。因为长期以来一直是有可能的,但我们还没有看到在这个方向上的任何活动。 Artyom Trishkin 2019.02.19 06:25 #1768 Nikolai Semko: 这种矢量缩放的方法在视觉上会比光栅缩放逊色很多。 那么,文本呢?字体大小 将不成比例地 "跳动"。如果形状的坐标可以被设置为小数(double)而不是整数(int)值,那么矢量缩放就可以接受。但这需要一个新的具有抗锯齿的高级Canvas库。首先想到的是。可能是受我在3D Studio MAX中长期使用矢量图的经验影响--我习惯于用这样的方式思考。是的,当然都是用配音的,顺便说一下,在视觉上非常胜过Photoshop中的光栅缩放。 Artyom Trishkin 2019.02.19 07:13 #1769 Nikolai Semko: 这种矢量缩放的方法在视觉上会比光栅缩放逊色很多。 那么,文本呢?字体大小 将不成比例地 "跳动"。如果形状的坐标可以被设置为小数(double)而不是整数(int)值,那么矢量缩放是可以接受的。但这需要一个新的具有抗锯齿的高级Canvas库。这时我想到了一个办法:取一个所需窗口形式的光栅图像,然后把它作为一个单一的光栅对象进行缩放。 Nikolai Semko 2019.02.19 07:41 #1770 Artyom Trishkin:这时我想到了一个办法:取一个所需窗口形状的位图,然后把它作为一个单一的位图对象进行缩放。还能是什么呢?我想这就是彼得想要的。 下面是一个现成的函数,用于放大存储在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,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我需要制定一个解决方案。我的窗口由一组MT物体组成--画布。他们的图像需要先单独缩小,然后再合并成一个。我需要这样一种算法。也就是说,我们可以说是单独的,但要把缩小的图像结合起来,还不行。
计算物体的相对坐标的变化。他们有一个出发点。X和Y。相对于总画布--窗口的宽度和高度的总尺寸,重新计算它们。
计算物体的相对坐标的变化。他们有一个出发点。X和Y。重新计算它们相对于整个kanvas-窗口的总宽度和高度。
我明白这个意思。如果尼古拉说不,我就试一试。谢谢你。
我需要制定一个解决方案。我的窗口由一组MT物体组成--画布。他们的图像需要先单独缩小,然后再合并成一个。我们需要这样一种算法。也就是说,我们可以说是单独的,但要把缩小的图像结合起来,还不行。
首先,当然,它必须被制作出来。 我的意思是,它必须有一点连贯的外观。即使在过去,他们也会说--停下来,放出来......但不要紧,火车不会停下来;-)让我们相信,这是永恒的作者的版本......
既然我们在与C#共舞,那就看看OpenGL是否能 "领先于地球"。并用它在 "画布 "上作画(但在体面的地方,它不叫这个名字,而是叫背景)。它的速度会非常快,你可以随心所欲地叠加、缩放、旋转、扭曲。
计算相对物体坐标的变化。他们有一个出发点。X和Y。相对于整个画布-窗口的整体宽度和高度,重新计算它们。
首先,当然,它必须被制作出来。 我的意思是,它必须有一点连贯的外观。你需要做的是让它看起来更有整体性......这就像他们过去常说的--停下来,让它出来......但来吧,火车永远不会停下来;-)我们只能说这是永恒的作者的版本......
既然我们在与C#共舞,那就看看OpenGL是否能 "领先于地球"。并用它在 "画布 "上作画(但在体面的地方,它不叫这个名字,而是叫背景)。它的速度会非常快,你可以随心所欲地叠加、缩放、旋转、扭曲。
这种矢量缩放的方法在视觉上会比光栅缩放逊色很多。 那么,文本呢?字体大小 将不成比例地 "跳动"。
首先想到的是。可能是受我在3D Studio MAX中长期使用矢量图的经验影响--我习惯于用这样的方式思考。是的,当然都是用配音的,顺便说一下,在视觉上非常胜过Photoshop中的光栅缩放。
这种矢量缩放的方法在视觉上会比光栅缩放逊色很多。 那么,文本呢?字体大小 将不成比例地 "跳动"。
这时我想到了一个办法:取一个所需窗口形式的光栅图像,然后把它作为一个单一的光栅对象进行缩放。
这时我想到了一个办法:取一个所需窗口形状的位图,然后把它作为一个单一的位图对象进行缩放。
还能是什么呢?我想这就是彼得想要的。
下面是一个现成的函数,用于放大存储在BMP[]数组中的图像,其大小为width_bmp xheight_bmp