当前位置: 首页 > news >正文

下载网站站开发成都哪些公司做网站好

下载网站站开发,成都哪些公司做网站好,住房和城建设网站首页,中山做网站企业继上篇文案#xff0c; DevC easyx实现地图拖动#xff0c;超过屏幕大小的巨大地图的局部显示在屏幕的方法——用悬浮窗的原理来的实现一个视口-CSDN博客 实现了大地图拖动#xff0c;但是当时野心不止#xff0c;就想着一气能搓啥就继续搓啥#xff0c;看着地图移动都搓…继上篇文案 DevC easyx实现地图拖动超过屏幕大小的巨大地图的局部显示在屏幕的方法——用悬浮窗的原理来的实现一个视口-CSDN博客 实现了大地图拖动但是当时野心不止就想着一气能搓啥就继续搓啥看着地图移动都搓出来了像素点也画上了能不能就着直接编辑地图给超过屏幕大小的地图画画。 上节文案从拖动复制粘贴实现悬浮窗通过img3进行缓存覆盖前的位置的样子在下次粘贴之前先用img3粘贴到原来位置恢复在重新采样给img3然后粘贴img2.两种图片的复制粘贴。 一个是恢复图片的复制粘贴一个是图像的不断粘贴念着念着就自然而然看到了大地图复制粘贴不就能实现大地图的修改了吗 于是这样才继续就着复制粘贴的思路小地图绘制完贴回到大地图去然后再从大地图复制再粘贴回来就刚刚好。 其实代码就是之前的DevC easyx实现地图拖动超过屏幕大小的巨大地图的局部显示在屏幕的方法——用悬浮窗的原理来的实现一个视口-CSDN博客 的最后一个代码块 而且就是这上一篇文案的刮刮乐效果的bug原理也是这个bug根源在于函数参数 void check(struct ExMessage m,struct pircle *save,IMAGE ak,struct showplace *show)  IMAG  ak的参数 IMAG ak指的是ak图片调用之后图片会自动备份相当于复制了一个原件不受影响。 这个用法就是所谓的形参只是说明用的是数据来源备份。数据来源不受更改。 这样原来的大地图就压根没有被修改。 但是刮刮乐效果呢打印了ak图像去对比像素然后按下去鼠标不松发现ak上没有打印图像松开鼠标才有轨迹粘贴进去试了试几次发现总是视口的图片粘贴到ak上面。想起来之前实现复制粘贴肯定不能原样复制不然画面不会动就没有拖动效果。这样肯定采样的位置变化了假设新旧采样位置都之差一个像素的宽度。然后假设一个像素复制粘贴有位置差距然后描述一遍是取样的时候先取样ak平面上偏移一个像素的位置粘贴到视口上然后重新调用ak这样ak是一个全是蓝色背景的然后又把视口的图片粘贴到ak上这样总是有新的备份产生总是在新的备份中切除一个像素然后切除剩下的像素重新粘贴到新的备份当中。就出现了。 原来是采样才是真正实现刮刮乐的效果的原因采样总是会多出来一个像素的蓝色边这样视口里相应就是蓝色像素覆盖边缘的黄色像素。然后把这个多出来蓝色像素的图片粘到原来位置这样就无中生有了新的蓝色像素实现刮刮乐效果。 鼠标左键点击不移动鼠标不会打印但是只要松开才会打印。显然这样就是从视口复制粘贴到底图那样bug就来自从底图到视口的这仅有的两个可能范围里的这唯一一种情况了。 bug或刮刮乐效果代码其实就是传入的是ak图片的备份。ak永远都是蓝色。 #includestdio.h #includeconio.h #includegraphics.h #includewindows.h struct pircle {IMAGE img2;IMAGE img3;const int orilx0,orily0;int nowlx0,nowly0;const int a300,h300; // 原有图片的左上角坐标int m1x0,m1y0;int putflag0;int drawflag0;} save;struct showplace {int x100;int y100;const int a300;const int h300;} show; void gameplace(IMAGE *ak) {SetWorkingImage(ak);setbkcolor(BLUE);cleardevice();setlinecolor(BLACK);rectangle(0,0,1499,1499);line(0, 0, 800, 1400);}void check(struct ExMessage m,struct pircle *save,IMAGE ak,struct showplace *show) {printf(putflag %d\n,save-putflag);printf(%d %d\n,m.x,m.y);printf(%d %d\n,save-nowlx,save-nowly);if(save-putflagtrue) {SetWorkingImage();getimage(save-img3,show-x,show-y,show-a,show-h);BeginBatchDraw();SetWorkingImage(ak);putimage(save-nowlx,save-nowly,save-img3);save-nowlxsave-nowlx-(m.x-save-m1x);save-nowlysave-nowly-(m.y-save-m1y);save-m1xm.x;save-m1ym.y;getimage(save-img2,save-nowlx,save-nowly,save-a,save-h);// putimage(save-nowlx,save-nowly,save-img2);SetWorkingImage();putimage(show-x,show-y,save-img2);putimage(500,500,ak) ;// 在默认桌面程序的界面上打印ak底图效果 EndBatchDraw();// 一次绘图出来没有屏闪了}switch(m.message) {case WM_LBUTTONDOWN:if(m.xshow-xm.xshow-xshow-am.yshow-ym.yshow-yshow-hm.ctrl) {save-putflagtrue; // 启动批复制粘贴SetWorkingImage(ak);getimage(save-img2,save-nowlx,save-nowly,save-a,save-h); // save-img2ak;save-m1xm.x;save-m1ym.y;SetWorkingImage();}break;case WM_LBUTTONUP:save-putflag0;break;}}void draw(struct ExMessage m,struct pircle *save,struct showplace *show,IMAGE *ak) {// printf(draw %d\n,save-drawflag); // SetWorkingImage(ak);if(save-drawflagtrue) { // save.drawflag1;putpixel(m.x,m.y,RGB(255,155,4));}switch(m.message) {case WM_LBUTTONDOWN:if(m.xshow-xm.xshow-xshow-am.yshow-ym.yshow-yshow-h) { //printf(m.x %d\tm.y %d\t%d\t%d\n,m.x,m.y,save-m1x,save-m1y);save-drawflagtrue;// printf(drawflag %d\n,save-drawflag);}break;case WM_LBUTTONUP:save-drawflagfalse; // printf(%d\n,save-drawflag);break;}}int main() {// 初始化绘图窗口initgraph(1640, 1480);IMAGE ak(1500,1500);IMAGE b(300,300);gameplace(ak);getimage(b,0,0,300,300);SetWorkingImage();putimage(0,0,ak);putimage(100,100,b);setlinecolor(BLACK);rectangle(show.x,show.y,show.xshow.a,show.yshow.h);ExMessage m;while(1) {mgetmessage(EX_MOUSE);check(m,save,ak,show);draw(m,save,show,ak);}_getch();closegraph(); }代码对应序号15.5解决画不上去....文件里的代码 ctrl鼠标左键视口实现拖动 可以看到另一部分也有个相同的图片这个右下角的图片就是img3的内容。相当于除了复制粘贴原来地方还在500,500的位置再次复制粘贴图像。 对比代码蓝色的参数可以知道传入的ak多了一个符号*实现了ak的操作而不再是ak复印件的操作。 当然由于ak图片大小太大实际上传入的*ak是ak的引用凭证这样通过引用凭证到ak所实际存储的地方。而原来的ak的样本实际上就是通过直接复制ak的数据。 检测方法也好说其实就是把ak图片的大小改大大概10000*10000像素应该就有100mb了这样在运行两个代码看看是不是一个比另一个1多出100mb的内存。然后再改改图片大小20000*1000020000*20000看看是不是对应又多了一倍还多了一倍。 然后就是改参数属性从IMAG ak 到IMAG *ak的故事了。 直接替换完事。 完整代码解决刮刮乐效果而且成功绘制到原来的ak图片上了。 #includestdio.h #includeconio.h #includegraphics.h #includewindows.h struct pircle {IMAGE img2; // old IMAGE img3;const int orilx0,orily0;int nowlx0,nowly0;const int a400,h400; // 原有图片的左上角坐标int m1x0,m1y0;int putflag0;int drawflag0;} save;struct showplace {int x100;int y100;const int a400;const int h400; } show;void gameplace(IMAGE *ak) {SetWorkingImage(ak);setbkcolor(BLUE);cleardevice();setlinecolor(BLACK);rectangle(0,0,1499,1499);line(0, 0, 800, 1400);}void check(struct ExMessage m,struct pircle *save,IMAGE *ak,struct showplace *show) {printf(putflag %d\n,save-putflag);printf(%d %d\n,m.x,m.y);printf(%d %d\n,save-nowlx,save-nowly);if(save-putflagtrue) {BeginBatchDraw();SetWorkingImage();getimage(save-img3,show-x,show-y,show-a,show-h);SetWorkingImage(ak); // SetWorkingImage(ak);putimage(save-nowlx,save-nowly,save-img3);save-nowlxsave-nowlx-(m.x-save-m1x);save-nowlysave-nowly-(m.y-save-m1y);save-m1xm.x;save-m1ym.y;getimage(save-img2,save-nowlx,save-nowly,save-a,save-h);// putimage(save-nowlx,save-nowly,save-img2);SetWorkingImage();putimage(show-x,show-y,save-img2);putimage(500,500,save-img3);EndBatchDraw();// 一次绘图出来没有屏闪了}switch(m.message) {case WM_LBUTTONDOWN:if(m.xshow-xm.xshow-xshow-am.yshow-ym.yshow-yshow-hm.ctrl) {save-putflagtrue; // 启动批复制粘贴SetWorkingImage(ak);getimage(save-img2,save-nowlx,save-nowly,save-a,save-h); // save-img2ak;save-m1xm.x;save-m1ym.y;SetWorkingImage();}break;case WM_LBUTTONUP:save-putflag0;break;}}void draw(struct ExMessage m,struct pircle *save,struct showplace *show,IMAGE *ak) {// printf(draw %d\n,save-drawflag); // SetWorkingImage(ak);if(save-drawflagtrue) { // save.drawflag1;putpixel(m.x,m.y,RGB(255,155,4));}switch(m.message) {case WM_LBUTTONDOWN:if(m.xshow-xm.xshow-xshow-am.yshow-ym.yshow-yshow-h) { //printf(m.x %d\tm.y %d\t%d\t%d\n,m.x,m.y,save-m1x,save-m1y);save-drawflagtrue;// printf(drawflag %d\n,save-drawflag);}break;case WM_LBUTTONUP:save-drawflagfalse; // printf(%d\n,save-drawflag);break;}}int main() {// 初始化绘图窗口initgraph(840, 880);IMAGE ak(1500,1500);IMAGE b(300,300);gameplace(ak);getimage(b,0,0,400,400);SetWorkingImage();putimage(0,0,ak);putimage(100,100,b);setlinecolor(BLACK);rectangle(show.x,show.y,show.xshow.a,show.yshow.h);ExMessage m;while(1) {mgetmessage(EX_MOUSE);check(m,save,ak,show);draw(m,save,show,ak);}_getch();closegraph(); }
http://www.w-s-a.com/news/952854/

相关文章:

  • 招商加盟网站系统站长工具 seo查询
  • 工商局网站清算组备案怎么做电商培训机构
  • 做好门户网站建设做本地团购网站怎么样
  • wordpress主题和预览不同20条优化防疫措施方案
  • 艾奇视觉网站建设网站推广需要几个人做
  • 2008 iis 添加网站wordpress固定链接标签加上页面
  • 宁波企业网站制作推荐网站优化人员
  • 大型资讯门户网站怎么做排名沈阳建设工程有限公司
  • 开发中英文切换网站如何做江苏网站建设费用
  • 网站论文首页布局技巧桥东网站建设
  • 网站开发项目经理工资北京微信网站
  • 山西山西省建设厅网站微信备份如何转换为wordpress
  • 同城网站开发实用网站模板
  • 郑州做网站哪家公司好国外购买空间的网站有哪些
  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6
  • 网站域名后缀有什么用网站建设的投资预算怎么写
  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话
  • 网站开发公众号开发海南做公司网站
  • 论企业网站建设的必要性微信小程序做一个多少钱
  • 网站制作价格是多少元上海市中小企业服务中心
  • 网站建设管理人员济宁网站建设top