画纵向横向圆代码(纵向图怎么画)
admin 发布:2022-12-19 23:04 156
今天给各位分享画纵向横向圆代码的知识,其中也会对纵向图怎么画进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、用C语言写出画一个圆形的代码
- 2、c语言的画圆代码
- 3、C语言用Bresenham算法画圆,哪位高手教教,主要是算法里的内容,谢谢!
- 4、关于易语言图片框绘制一个圆 具体如下
- 5、求一段画圆的程序源代码,要求是C 或者C++ 的语言
用C语言写出画一个圆形的代码
可以参考下面的代码:
#includemath.h
main()
{
double y;
int x,m;
for(y=10;y=-10;y--)
{
m=2.5*sqrt(100-y*y);
for(x=1;x50-m;x++)
printf(" ");
printf("*");
for(;x50+m;x++)
printf(" ");
printf("*\n");
}
}
扩展资料:
for循表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式。
参考资料来源:百度百科-for循环
c语言的画圆代码
#include graphics.h
#include stdio.h
#include math.h
#define TWOPI (3.1415926*2)
typedef struct point
{
int x;
int y;
}POINT;
void main()
{
int gd,gm;
POINT arr[1000];
int i;
int redius=80;
gd=DETECT;
initgraph(gd,gm,"C:\\JMSOFT\\DRV");
for(i=0;i1000;i++)
{
arr[i].x=300+redius*sin(((1.0*i)/1000)*TWOPI);
arr[i].y=300+redius*cos(((1.0*i)/1000)*TWOPI);;
}
for(i=0;i999;i++)
line(arr[i].x,arr[i].y,arr[i+1].x,arr[i+1].y);
getch();
closegraph();
}
C语言用Bresenham算法画圆,哪位高手教教,主要是算法里的内容,谢谢!
的确哈,关键在于对delta的理解
可以看到,都是delta=2*(1-radius)这样的,起作用应该是判断要画的点x、y坐标的变化趋势,先把我注释了的代码贴下,加了getch();可以看到画的过程
-----------------------------------------------------------------
#includegraphics.h
#includestdio.h
void BresenhemCircle(int centerx, int centery, int radius, int color, int type);
void main()
{
int drive=DETECT,mode;
int i,j;
initgraph(drive,mode,"");
BresenhemCircle(300,200,100,15,0);
getch();
}
void BresenhemCircle(int centerx, int centery, int radius, int color, int type)
{
int x =type = 0;/*初始横坐标为原点*/
int y = radius; /*初始纵坐标远离原点*/
int delta = 2*(1-radius);
int direction;
while (y = 0)
{
getch();
if (!type)/*执行*/
{
/*在上半圆画两点*/
putpixel(centerx+x, centery+y, color);
putpixel(centerx-x, centery+y, color);
/*在下半圆画两点*/
putpixel(centerx-x, centery-y, color);
putpixel(centerx+x, centery-y, color);
getch();
}
else/*不执行*/
{
line(centerx+x, centery+y, centerx+x, centery-y);
line(centerx-x, centery+y, centerx-x, centery-y);
getch();
}
/*以下代码设置下次四点的位置,圆是对称的,且此方法相当于同时画四个圆弧
观察右上方圆弧可知,前一半是x增的要快些,后一半是y减的快些*/
if (delta 0)
{
if ((2*(delta+y)-1) 0)
direction = 1; /*选择横向加*/
else
direction = 2;
}
else if(delta 0)
{
if ((2*(delta-x)-1) 0)
direction = 3; /*选择纵向减*/
else
direction = 2;
}
else
direction=2;
switch(direction)
{
case 1:
x++;/*只横坐标远离原点*/
delta += (2*x+1); /*小执行到这,所以加*/
break;
case 2:
x++;
y--;/*横向远离,同时纵向靠近*/
delta += 2*(x-y+1); /*即(2*x+1)+(-2*y+1)*/
break;
case 3:
y--;/*只纵坐标靠近原点*/
delta += (-2*y+1); /*大执行到这,所以减*/
break;
}
}
}
关于易语言图片框绘制一个圆 具体如下
.版本 2
.子程序 _画板1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
画板1.画椭圆 (横向位置, 纵向位置, 横向位置 + 200, 纵向位置 + 200)
求一段画圆的程序源代码,要求是C 或者C++ 的语言
以x=0,y=0为圆心,r为半径,屏幕左上角为坐标原点
for (x=-r;xr;x++)
{
//计算y
y=sqrt(r*r-x*x);
//画点
setpix(x+r, y+r);
setpix(x+r, 0-y+r);
}
老兄,setpix()不是画图函数,而是画点函数,不画点怎么画图啊
关于画纵向横向圆代码和纵向图怎么画的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-19网站如何优化一个关键词,怎么优化一个网站关键词
- 05-19网络营销方案策划案例,网络营销方案策划案例怎么写
- 05-19网络推广怎么找客户资源,怎么在网络推广
- 05-19怎么做网站,怎么做网站教程视频
- 05-19搜索关键词,word文档怎么搜索关键词
- 05-19怎么免费创建自己的网站,怎么免费创建自己的网站平台
- 05-18百度推广官方电话,免费百度广告怎么投放
- 05-18新手怎么做网络销售,网销怎么找客户资源
- 05-18个人怎么建网站,个人建网站步骤
- 05-18品牌推广与传播方案,品牌推广与传播方案怎么写
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接