高速椭圆绘制程序
来源:互联网 发布:最好的股票行情软件 编辑:程序博客网 时间:2024/05/16 01:32
程序:罗健军
程序中var16为有符号16位数字型,uvar16为16位无符号数字型,uvar32为无符号32位数字型,var32为有符号32位数字型。Ellipse参数中的x0,y0为圆心坐标,r1和r2分别为横半径和纵半径。PutPixel为画点函数。
void Ellipse(var16 x0,var16 y0,uvar16 r1,uvar16 r2){ uvar32 r,r12,r22; var16 x,y,xmax; var32 tn;
x=0;y=r2; r12=r1*r1;r22=r2*r2; xmax=var16(r12/sqrt(r12+r22)); tn=r12-2*r2*r12;
while(x<=xmax) { if(tn<0||y==0)tn+=(4*x+2)*r22; else { tn+=(4*x+2)*r22+(1-y)*4*r12; y--; }
PutPixel(x0+x,y0+y); PutPixel(x0-x,y0+y); PutPixel(x0+x,y0-y); PutPixel(x0-x,y0-y); x++; }
PutPixel(x0+x,y0+y); PutPixel(x0-x,y0+y); PutPixel(x0+x,y0-y); PutPixel(x0-x,y0-y);
r=r1;r1=r2; r2=(uvar16)r; x=0;y=r2; r12=r1*r1;r22=r2*r2; xmax=var16(r12/sqrt(r12+r22)); tn=r12-2*r2*r12;
while(x<=xmax) { if(tn<0||y==0)tn+=(4*x+2)*r22; else { tn+=(4*x+2)*r22+(1-y)*4*r12; y--; }
PutPixel(x0+y,y0+x); PutPixel(x0+y,y0-x); PutPixel(x0-y,y0+x); PutPixel(x0-y,y0-x); x++; }
PutPixel(x0+y,y0+x); PutPixel(x0+y,y0-x); PutPixel(x0-y,y0+x); PutPixel(x0-y,y0-x);}
- 高速椭圆绘制程序
- 高速扇形绘制程序
- 高速直线绘制程序
- 高速正圆绘制程序
- 绘制椭圆
- c#绘制椭圆
- 拖动鼠标绘制椭圆
- QT绘制椭圆
- 绘制椭圆弧线
- ArcGISEngine绘制椭圆
- UIImage 绘制椭圆
- html5 绘制椭圆
- 【Unity3d】如何绘制椭圆
- 椭圆线条绘制动画
- MATLAB中绘制椭圆
- pygame绘制椭圆方法
- 画笔小程序,可以实现直线椭圆矩形绘制,文字绘制,背景前景颜色变化
- GDI高速图像绘制
- 一个简单的进度条,applet实现
- 怎样及时检测出非正常断开的TCP连接
- tip:win2003终端服务授权
- 二维世界中的旋转
- 高速扇形绘制程序
- 高速椭圆绘制程序
- Ajax资源 or Ajax Resources
- 高速正圆绘制程序
- 正则表达式的全部符号解释
- 高速直线绘制程序
- Java正则表达式详解
- 程序源码中新进收藏
- 七种武器 ------- 鼠标
- 帮你免于失业的十大软件技术