ucgui 画扇形(ucgui 画扇形).doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ucgui 画扇形(ucgui 画扇形)

ucgui 画扇形(ucgui 画扇形) If # GUI _ pieslice _ in = = 1 / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * : * 名称 _ pieslice (GUI) : * 功能 指定起点、终点及半径扇形 (不能画圆).使用的是顺时针方向画图. 入口参数 圆心的x轴坐标值 *: X * and 圆心的y轴坐标值 * 起始角度 Stangle (0 - 359度) * 终止角度 endAngle (0 - 359度) 圆的半径终点 * R * color 显示颜色 : * 出口参数 无 : * 说明 操作失败原因是指定地址超出有效范围. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / Void GUI (_ pieslice uint32 X and R, uint32, uint32, uint32 Stangle, uint32 endAngle, tcolor color) {X _ Int32 Draw, draw and _; / / 画图坐标变量 _ Int32 op op X, and _; / / 操作坐标 Int32 op _ 2RR; / / 2 * R * r值变量 _ Int32 PNO / / 度角点的个数 Angle; _ Uint8 draw on; / / 画点开关, 为1时画点, 为0时不画 参数过滤 / * * / If (R = = 0) / / 半径为0则直接退出 return; If (Stangle endAngle = =) return; / / 起始角度与终止角度相同, 退出 If ((Stangle = 360) | ( | endAngle = 360)) return; _ 2RR op = 2 * R * R; / / 计算r平方乖以2 PNO _ Angle = 0; 先计算出在此半径下的45度的圆弧的点数 / * * / _ op x = R; _ and OP = 0; While (1) PNO _ {/ / 画点计数 Angle + +; 计算下一点 / * * / _ and OP + +; If ((2 * x * x _ op op _ + 2 * * _ _ op and OP and OP op _ _ 2RR - 2 * x + 1) 0) / / 使用逐点比较法实现画圆弧 _ X - {OP; } If ( = op and OP _ _ x) break; } Draw _ on = 0; / / 最开始关画点开关 设置起始点及终点 / * * / If ( _ endAngle Stangle) draw on = 1; / / 若终点大于起点, 则从一开始即画点 (359) Stangle = (360 * Stangle PNO _ Angle / 45); EndAngle = (360 * endAngle PNO _ Angle / 45); If (Stangle Stangle = = 0) = 1; If (endAngle endAngle = = 0) = 1; / * 开始顺时针画弧, 从359度开始 (第4像限) * / PNO _ Angle = 0; Draw _ x = x + R; Draw _ y = y; _ op x = R; _ and OP = 0; While (1) 计算下一点 {/ * * / _ and OP + +; - _ and Draw; If ((2 * x * x _ op op _ + 2 * * _ _ op and OP and OP op _ _ 2RR - 2 * x + 1) 0) / / 使用逐点比较法实现画圆弧 _ X - {OP; Draw _ X -; } If (_ draw on = = 1) GUI _ Point (X _ _ Draw, draw and color); / / 开始画图 PNO _ Angle + +; If ((PNO _ Angle = = Stangle) | | (PNO _ Angle endAngle = =)) / / 若遇到起点或终点, 画点开关取反 _ = 1 - {draw on Draw _ on; If (_ draw on = = 1) GUI _ Point (X _ _ Draw, draw and color); GUI _ line (X, y, X _ _ Draw, draw a

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档