高速正圆绘制程序

转载 2006年06月12日 18:57:00

程序:罗健军


  程序中var32表示有符号32位数,var16表示有符号16位数。x0,y0为圆心坐标,r为半径。PutPixel为画点函数。

  曾经长年的使用这段程序,而未向罗健军大师表示感谢,真是感到惭愧!在这里,请各位代表我向他表示感谢。

double SIN45=0.707106781186548;

void Circle(var16 x0,var16 y0,uvar16 r)
{
 var32 tn;
 var16 x,y;
 var16 xmax;
 y=r;x=0;
 xmax=var16(r*SIN45);
 tn=(1-r*2);
 while(x<=xmax)
 {
  if(tn>=0)
  {
   tn+=(6+((x-y)<<2));
   y--;
  }
  else
   tn+=((x<<2)+2);
  PutPixel(x0+y,y0+x);
  PutPixel(x0+x,y0+y);
  PutPixel(x0-x,y0+y);
  PutPixel(x0-y,y0+x);
  PutPixel(x0-y,y0-x);
  PutPixel(x0-x,y0-y);
  PutPixel(x0+x,y0-y);
  PutPixel(x0+y,y0-x);
  x++;
 }
 PutPixel(x0+y,y0+x);
 PutPixel(x0+x,y0+y);
 PutPixel(x0-x,y0+y);
 PutPixel(x0-y,y0+x);
 PutPixel(x0-y,y0-x);
 PutPixel(x0-x,y0-y);
 PutPixel(x0+x,y0-y);
 PutPixel(x0+y,y0-x);
}

相关文章推荐

保护PC程序的高速软件加密锁及其自定义算法的实现

随着二十一世纪的到来,电子产品已经成为人们生活和学习中不可缺少的必备品。例如手机,IPAD等等,这些产品无一不满足了人们的娱乐需求。但是当人们沉浸在愉悦之中时偶尔也会发现一些盗版货山寨货,有着和自己的...

FPGA,verilog程序技巧之状态机与稳定性,高速

原因FPGA编程的稳定性,在程序编写到一定程度后,就会出现,这里是要提示的地方。...

【Linux设备驱动程序(第三版)】----高速缓存

【Linux设备驱动程序(第三版)】----高速缓存HelloWorld.c#include #include #include #include //file_operations, f...

高速缓存对c程序的影响

CSAPP中习题6.32:void transpose(int* dst,int *src,int dim){ int i,j; for(i=0;i

一个基于socket的高速视频传输程序

前天才申请的这个博客看来访问量不错,本来写这个博客的原因之一就是好好学习python,所以我会经常写一些东西的.希望大家多多光临.     需要说明的是,本blog上的文章除了我特别说明摘抄的外,都...

HG-LE高速摄像程序

  • 2017年11月09日 23:25
  • 42.31MB
  • 下载

用g.raphael.js高速绘制饼图、柱状图、点状图、折线图(下)

首先,这里有个g.raphael.js的范例文章,可以直接看,我就不转载了: http://www.cnblogs.com/lhb25/archive/2013/01/09/gRaphael-jav...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高速正圆绘制程序
举报原因:
原因补充:

(最多只允许输入30个字)