当前位置: 首页 > 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/576395/

相关文章:

  • 网上做调查问卷的网站请人做网站域名和主机
  • 个人网站模板html5找公司网站建设
  • 找最新游戏做视频网站一个做网站的团队需要哪些人员
  • 威海市做网站的做网站很难吗
  • 广州房地产网站建设方案怎么免费申请网站
  • 免费生成网站软件下载影视公司名字取名
  • 网站公司提供程序免费的网页入口
  • jsp网站开发实例教学房产网站怎么做400电话
  • 网络营销方式及流程广州seo工作
  • 专业商城网站制作免费网页设计成品
  • 韩国优秀设计网站找做网站找那个平台做
  • 贵州省清镇市建设学校网站国家企业信用信息公示系统官网河北
  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台
  • 建公司网站的详细步骤关于进一步加强网站建设
  • 丰宁县有做网站的吗?维护一个网站一年多少钱
  • 杭州网站设计渠道wordpress购物主题
  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网