欢迎来到天天文库
浏览记录
ID:39546824
大小:26.50 KB
页数:3页
时间:2019-07-06
《C51编程液晶上画圆》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C51编程液晶上画圆.txt41滴水能穿石,只因为它永远打击同一点。42火柴如果躲避燃烧的痛苦,它的一生都将黯淡无光。C51编程:液晶上画圆的程序终于出来了,请大虾们帮我看看能否再简化一下。谢谢![xiaoqi.][96次]01-5-22下午11:56:31/************************************************//*画圆。数学方程(X-Ox)^2+(Y-Oy)^2=Rx^2*//*********************************************
2、***///col,row为全局变量voidcircle(UcharOx,UcharOy,UcharRx){unsignedintxx,rr,xt,yt,rs;yt=Rx;rr=Rx*Rx;rs=Rx*71/100;//分开1/8圆弧来画,0.71=根号2for(xt=0;xt<=rs;xt++){xx=xt*xt;while((yt*yt)>(rr-xx))yt--;col=Ox+xt;//第一象限row=Oy-yt;point();col=Ox-xt;//第二象限row=Oy-yt;point();col=
3、Ox-xt;//第三象限row=Oy+yt;point();col=Ox+xt;//第四象限row=Oy+yt;point();/***************45度镜象变换,画另一半***************/col=Ox+yt;//第一象限row=Oy-xt;point();col=Ox-yt;//第二象限row=Oy-xt;point();col=Ox-yt;//第三象限row=Oy+xt;point();col=Ox+yt;//第四象限row=Oy+xt;point();}}怕是很难精简了![lwd
4、110][7次]01-5-23上午11:55:08要么在一个point()中画8个点,节约一点函数调用时间?简化了一次,目标代码短了200字节左右。请看:[xiaoqi.][35次]01-5-23下午03:29:29/************************************************//*画圆。数学方程(X-Ox)^2+(Y-Oy)^2=Rx^2*//************************************************/voidcircle(UcharO
5、x,UcharOy,UcharRx){unsignedintxx,rr,xt,yt,rs;yt=Rx;rr=Rx*Rx+1;//补偿1修正方形rs=(yt+(yt>>1))>>1;//(*0.75)分开1/8圆弧来画for(xt=0;xt<=rs;xt++){xx=xt*xt;while((yt*yt)>(rr-xx))yt--;col=Ox+xt;//第一象限row=Oy-yt;point();col=Ox-xt;//第二象限point();row=Oy+yt;//第三象限point();col=Ox+xt;
6、//第四象限point();/***************45度镜象画另一半***************/col=Ox+yt;//第一象限row=Oy-xt;point();col=Ox-yt;//第二象限point();row=Oy+xt;//第三象限point();col=Ox+yt;//第四象限point();}}
此文档下载收益归作者所有