开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3554|回复: 4
收起左侧

[图文教程] 用win32汇编画八卦图

[复制链接]

结帖率:100% (6/6)
发表于 2013-2-6 18:27:16 | 显示全部楼层 |阅读模式   福建省厦门市
用win32汇编画八卦图

汇编程序的图:
这几天在学习汇编语言的图形操作,于是想起以前用C#画过个小八卦图
半径R自己给……
Graphics g = e.Graphics;
            Brush fillWhiteBrush = Brushes.White;
            Brush fillBlackBrush = Brushes.Black;
            g.FillPie(fillWhiteBrush, 0, 0, r, r, -90, -180);//左半圆
            g.FillPie(fillBlackBrush, 0, 0, r, r, 90, -180);//右半圆
            g.FillEllipse(fillWhiteBrush, r/4, 0, r / 2, r / 2);//上中型圆
            g.FillEllipse(fillBlackBrush, r / 4, r / 2, r / 2, r / 2);//下中型圆
            g.FillEllipse(fillBlackBrush, 9*r/20, r/5, r / 20, r / 20);//左小圆
            g.FillEllipse(fillWhiteBrush, 9 * r / 20, 7*r/10, r / 20, r / 20);//右小圆

win32汇编的实现中需要调用GDI的API函数来实现……
包括:画笔(CreatePen)、画刷(GetStockObject)、坐标定位(MoveToEx)、画直线(LineTo)、画椭圆(Ellipse)、画扇形(Pie)……
注释已经很清楚了,我就不废话了……
绘图核心源码:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;画太极八卦
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

_PaintTaiJi proc
         LOCAL hBrush:HBRUSH;黑色笔刷
         LOCAL wBrush:HBRUSH;白色笔刷
         LOCAL hPen:HPEN;白色画笔
         ;LOCAL lpPoint:LPPOINT
         invoke  Ellipse,hDc,  0,0,200,200;大圆
         invoke  GetStockObject,BLACK_BRUSH;
         mov hBrush,eax;获取黑色笔刷并保存起来
         invoke  GetStockObject,DC_BRUSH;
         mov wBrush,eax;获取白色笔刷并保存起来
         invoke SelectObject,hDc,hBrush;选择黑色笔刷
         invoke Pie,hDc,0,0,200,200,100,0,100,200;左半个扇形
         invoke  Ellipse,hDc,  50,100,150,200;右半小扇形
        
        
         invoke SelectObject,hDc,wBrush;选择白色笔刷
         invoke Pie,hDc,50,0,150,100,100,0,100,100;左半小扇形
         invoke Ellipse,hDc,  95,145,105,155;上小圆
        
         ;将画上小圆留下的黑色线条擦去
         invoke MoveToEx,hDc,100,1,0;起始坐标移动到(100,1)处
         ;将白色(RGB值为:255 255 255)填充到eax
         xor eax,eax
         mov ah,255
                 mov al,255
                 shl eax,8
                 mov al,255;
                
         invoke CreatePen,PS_SOLID,2,eax;
         mov hPen,eax;
         invoke SelectObject,hDc,hPen;
         invoke LineTo,hDc,99,99;
         ;
        
          invoke SelectObject,hDc,hBrush;选择黑色笔刷
         invoke  Ellipse,hDc,  95,45,105,55;上小圆
         
    ret

_PaintTaiJi endp


结帖率:95% (150/158)

签到天数: 6 天

发表于 2021-9-6 22:09:21 | 显示全部楼层   江西省上饶市
帖子都沉怎么下面啦
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 21 天

发表于 2015-2-11 13:54:12 | 显示全部楼层   广东省深圳市
哇。。虽然看不懂,但是看起来有很多字母数字,很厉害的样子。
回复 支持 反对

使用道具 举报

结帖率:89% (8/9)
发表于 2013-2-9 11:12:02 | 显示全部楼层   河南省信阳市
路过咯咯
回复 支持 反对

使用道具 举报

结帖率:100% (60/60)
发表于 2013-2-6 18:48:00 | 显示全部楼层   浙江省嘉兴市
路过。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表