- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- nba的各队退役球星及号码(NBA's retired players and numbers).doc
- nba历史最佳第一阵容(NBA history best first team).doc
- nafmii规则0004(NAFMII rule 0004).doc
- nec系统设置(NEC system settings).doc
- neie(文献).doc
- net use的用法(The use of net use).doc
- net分层结构(.net分层结构)(Net hierarchical structure (.Net hierarchical structure)).doc
- news积极听力方法让你听懂voa(News positive listening means you understand VOA).doc
- nginx分时段限制下载速度解决方案(Nginx time limited download speed solution).doc
- nmake语法(Nmake syntax).doc
文档评论(0)