第一篇:C语言画圆椭圆
C语言画图实验代码,包含画直线,画圆,椭圆 #include “graphics.h”
#include “conio.h”
#include “dos.h”
#include “math.h”
#include “stdio.h”
/* 直线中点算法*/
void midpointline(int x0,int y0,int x1,int y1,int color){
int x,y;
int a,b,c,d,d1,d2;
a=(y0-y1);
b=(x1-x0);
d=a+a+b;
d1=a+a;
d2=a+b+a+b;
x=x0;y=y0;
putpixel(x,y,color);
while(x { if(d<0) {x++;y++;d+=d2;} else {x++;d+=d1;} putpixel(x,y,color); } } /* 直线DDA算法*/ DDA_line(int x1,int y1,int x2,int y2,int color){ int i; float increx,increy,x,y,length,xx,yy; if(abs(x2-x1)>abs(y2-y1)) length=abs(x2-x1); else length=abs(y2-y1); increx=(x2-x1)/length; increy=(y2-y1)/length; x=x1; y=y1; for(i=1;i<=length;i++) yy=y+0.5; putpixel((int)xx,(int)yy,color); x=x+increx; y=y+increy; } } /* 椭圆中点算法*/ void MidBresenhamllipse(double a,double b,int color) { double x,y, d1,d2; x=0;y=b; d1=b*b+a*a*(-b+0.25); putpixel(x+300,y+200,color); putpixel(-x+300,-y+200,color); putpixel(-x+300,y+200,color); putpixel(x+300,-y+200,color); while(b*b*(x+1) { if(d1<=0) { d1+=b*b*(2*x+3); x++; } else { d1+=b*b*(2*x+3)+a*a*((-2)*y+2); x++; y--; } putpixel(x+300,y+200,color); putpixel(-x+300,-y+200,color); putpixel(-x+300,y+200,color); putpixel(x+300,-y+200,color); } d2=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b; while(y>0) { { d2+=b*b*(2*x+2)+a*a*(-2*y+3); x++; y--; } else { d2+=a*a*(-2*y+3); y--; } putpixel(x+300,y+200,color); putpixel(-x+300,-y+200,color); putpixel(-x+300,y+200,color); putpixel(x+300,-y+200,color); } } /* 参数法画椭圆 */ void cs_ellipse(int x0,int y0,int a,int b,int dt) { int x,y,n,i; float t=0,t1; t1=dt*0.0174533; n=360/dt; moveto(x0+a,y0); for(i=1;i { t=t+t1; x=x0+a*cos(t); y=y0+b*sin(t); lineto(x,y); } lineto(x0+a,y0); } void cs_Ellipse(int x0,int y0,int a1,int b1,int color1) { int i,x=x0,y=y0,a=a1,b=b1,color=color1; cs_ellipse(x,y,a,b,1); } /* 中点Bresenham算法画圆 */ voidBresenhemCircle(int x0,int y0,double r,int color) { int x,y,d; x=0; y=(int)r; d=(int)(3-2*r); while(x { cirpot(x0,y0,x,y,color); if(d<0) d+=4*x+6; else { d+=4*(x-y)+10; y--; } x++; } if(x==y) cirpot(x0,y0,x,y,color); } int cirpot(int x0,int y0,int x,int y,int color) { putpixel((x0+x),(y0+y),color); putpixel((x0+y),(y0+x),color); putpixel((x0+y),(y0-x),color); putpixel((x0+x),(y0-y),color); putpixel((x0-x),(y0-y),color); putpixel((x0-y),(y0-x),color); putpixel((x0-y),(y0+x),color); putpixel((x0-x),(y0+y),color); return(0); } /* 参数法画圆 */ void cs_circle(int x0,int y0,int r,int dt) { int x,y,n,i; float t=0,t1; t1=dt*0.0174533; n=360/dt; moveto(x0+r,y0); for(i=1;i { t=t+t1; x=x0+r*cos(t); y=y0+r*sin(t); lineto(x,y); } lineto(x0+r,y0); } void cs_Circle(int x0,int y0,int r1,int color1) { int i,x=x0,y=y0,r=r1,color=color1; cs_circle(x,y,r,1); } void fun() { printf(“************************************************************n”);printf(“*input '1' ues midpointline painting line!*n”);printf(“*input '2' ues DDA_line painting line!*n”);printf(“*input '3' ues system function painting line!*n”); printf(“*input '4' ues midBresenham painting elliptic!*n”);printf(“*input '5' ues parametricpainting elliptic!*n”); printf(“*input '6' ues system function painting elliptic!*n”); printf(“*input '7' ues midBresenham painting circle!*n”);printf(“*input '8' ues midBresenham painting circle!*n”);printf(“*input '9' ues parametricpainting circle!*n”);printf(“*input 'a' print all graphics!!*n”);printf(“*input 'E'exit system!*n”); printf(“************************************************************n”);} /*主函数块*/ void main() { int gdriver=DETECT,gmode; /*setbkcolor(9);*/ char c; initgraph(&gdriver,&gmode,“c:tc”); fun(); scanf(“%c”,&c); do { switch(c) { case '1': midpointline(120,220,200,160,20);break;case '2': DDA_line(110,120,200,340,10);break;case '3': line(110,120,200,240);break; case '4': MidBresenhamllipse(34,55,6);break;case '5': cs_Ellipse(120,240,20,120,21);break;case '6': ellipse(110,250,0,360,100,40);break; case '7': BresenhemCircle(100,100,50,4);break;case '8': circle(100,100,67);break;case '9': cs_Circle(100,100,23,2);break;case 'a': midpointline(120,220,200,160,20);DDA_line(110,120,200,340,10);line(110,120,200,240); MidBresenhamllipse(34,55,6);cs_Ellipse(120,240,20,120,21);ellipse(110,250,0,360,100,40); BresenhemCircle(100,100,50,4);circle(100,100,67); cs_Circle(100,100,23,2);break; } printf(“Input any key to continue!!n”);getch(); cleardevice(); fun(); scanf(“%c”,&c); }while(c!='E'); printf(“exit system!n”); closegraph(); } 大班语言活动:诗歌《画圆》 活动目标: 1.在想想、讲讲的过程中,理解小动物画圆的方法,学习诗歌。 2.感受动物画圆的趣味,体验自主学习的快乐。 活动准备: 反映诗歌内容的图片一套。 活动过程: 一、导入部分:用身体画圆,激起幼儿学习的兴趣,引出诗歌主题。 1.教师用手势画一个圆形,问:你们看,我画了什么?我是怎样画出来的?还能用其他的动作来画圆吗? 2.请幼儿尝试用自己的身体动作来画圆。 3.教师和全体幼儿一起来用身体动作画圆。 二、理解掌握部分:初步了解诗句的结构,学习诗歌。 1.学习小鱼画圆的诗句 (1)师:小动物们看见我们这么画圆觉得非常有趣,它们也想来画,你们看谁来了呀? (2)出示小鱼图片,教师以小鱼的口吻说:我是一条快活的小鱼,喜欢在小河里游来游去,我画圆的方法和你们不一样,请你们猜猜,我是怎样画圆的呢?(引导幼儿猜测) (3)师:你们真聪明,帮我想出了这么多的办法,看,我是怎样画圆的呀?(出示图片) (4)师:小鱼是怎样画圆的?(吐出泡泡一串串)让幼儿表演动作。 (5)师:小鱼为什么要用这种方法画圆?(突出动物的特点)它的圆画在什么地方? (6)教师结合图片完整朗诵小鱼画圆的诗句:“小鱼画圆,吐出泡泡一串串,在水中画圆。” (7)幼儿完整地学念诗句,并表演小鱼吐泡泡的动作。 2.学习小猴画圆的诗句 (1)师:看,还有谁也来画圆了? (2)出示小猴图片,教师以小猴的口吻说:我画圆的方法也很不一样,你们知道我是怎么画的吗? (3)(出示图片)问:小猴是怎么画圆的?在哪里画的?小猴为什么要用这种方法画圆?(突出动物的特点) (4)教师结合图片完整朗诵小猴画圆的诗句:“小猴画圆,抓住树枝荡一圈,在树上画圆。” (5)幼儿完整地学念诗句,并表演小猴画圆的动作。 3.学习青蛙画圆的诗句 (1)师:除了小鱼和小猴,还有其它的动物朋友也来了,我们赶快来认识一下吧!师:这个动物朋友呀身穿绿衣服,唱起歌来“呱呱呱”,它是谁?(青蛙) (2)问:青蛙是怎么画圆的?在哪里画的?青蛙为什么要用这种方法画圆?(突出动物的特点) (3)教师结合图片完整朗诵青蛙画圆的诗句:“青蛙画圆,扑通一声跳下水,在水中画圆。” (4)幼儿完整地学念诗句,并表演青蛙画圆的动作。 4.学习刺猬画圆的诗句 (1)师:最后这位朋友可厉害了,浑身长满的尖尖的刺,你们知道他是谁吗?(刺猬) (2)问:小朋友想一想,小刺猬是怎样画圆的?在哪里画圆的?为什么要用这种方法? (3)教师结合图片完整朗诵刺猬画圆的诗句:“刺猬画圆,团起身子滚一滚,在草地画圆。” (4)幼儿完整地学念诗句,并表演刺猬画圆的动作。 5.完整学习诗歌,感受动物画圆的趣味。 师:小朋友画圆有趣吗?其实画圆是一首好听的诗歌,我们一起来听一听。(教师完整的朗诵一遍诗歌) 幼儿完整的学念诗句,并表演画圆的动作。 三、延伸活动:诗歌仿编 1.讨论:还有什么小动物会来画圆呢?怎样画圆?在哪里画圆? 2.教师引导幼儿将想象出来的内容讲述出来,编成诗句。 #include void main() { int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,“"); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64); getch(); restorecrtmode(); } -------------- #include #include void circlePoint(int x,int y)/*八分法画圆程序*/ { circle(320 x*20,240 y*20,3); circle(320 y*20,240 x*20,3); circle(320-y*20,240 x*20,3); circle(320-x*20,240 y*20,3); circle(320-x*20,240 y*20,3); circle(320-x*20,240-y*20,3); circle(320-y*20,240-x*20,3); circle(320 y*20,240-x*20,3); circle(320 x*20,240-y*20,3); } void MidBresenhamcircle(int r)/* 中点Bresenham算法画圆的程序 */ { int x,y,d; x=0;y=r;d=1-r;/* 计算初始值 */ while(x { circlePoint(x,y);/* 绘制点(x,y)及其在八分圆中的另外7个对称点 */ if(d<0)d =2*x 3;/* 根据误差项d的判断,决定非最大位移方向上是走还是不走 */ else { d =2*(x-y)5; y--; } x; delay(900000); } /* while */ } main() { int i,j,r,graphmode,graphdriver; detectgraph(&graphdriver,&graphmode); initgraph(&graphdriver,&graphmode,” “); printf(”中点Bresenhamcircle算法画圆的程序n“);/*提示信息*/ printf(”注意 |r|<=11“); printf(”n输入半径值 r:“); scanf(”%d“,&r); printf(”按任意键显示图形...“); getch(); cleardevice(); setbkcolor(BLACK); for(i=20;i<=620;i =20)/*使用双循环画点函数画出表格中的纵坐标*/ for(j=20;j<=460;j) putpixel(i,j,2); for(j=20;j<=460;j =20)/*使用双循环画点函数画出表格中的横坐标*/ for(i=20;i<=620;i) putpixel(i,j,2); outtextxy(320,245,”0“);/*原点坐标*/ outtextxy(320-5*20,245,”-5“);circle(320-5*20,240,2);/*横坐标值*/ outtextxy(320 5*20,245,”5“);circle(320 5*20,240,2); outtextxy(320-10*20,245,”-10“);circle(320-10*20,240,2); outtextxy(320 10*20,245,”10“);circle(320 10*20,240,2); outtextxy(320-15*20,245,”-15“);circle(320-15*20,240,2); outtextxy(320 15*20,245,”15“);circle(320 15*20,240,2); outtextxy(320,240-5*20,”-5“);circle(320,240-5*20,2);/*纵坐标值*/ outtextxy(320,240 5*20,”5“);circle(320,240 5*20,2); outtextxy(320,240-10*20,”-10“);circle(320,240-10*20,2); outtextxy(320,240 10*20,”10“);circle(320,240 10*20,2); outtextxy(20,10,”The center of the circle is(0,0)“);/*坐标轴左上角显示提示信息*/ setcolor(RED);/*标记坐标轴*/ line(20,240,620,240);outtextxy(320 15*20,230,”X“); line(320,20,320,460);outtextxy(330,20,”Y“); setcolor(YELLOW); MidBresenhamcircle(r); setcolor(BLUE);/*绘制圆*/ circle(320,240,r*20); setcolor(2); getch(); closegraph(); } -------------------------#include void main() { int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,”"); setcolor(15); circle(20,20,20); getch(); } 送教下乡《画圆》说课稿 《画圆》是一节大班语言课,是一首充满童趣的诗歌,它运用拟人化的手法,分别描绘了猴子荡树、啄木鸟啄洞、小鱼吐泡泡、刺猬翻滚等不同的画圆方法,这些小动物恰似一群天真、活泼、好动的孩子,充满了无限的欢乐和生机,这样的内容无疑是幼儿熟悉和喜爱的。所以我选择了诗歌《画圆》这个内容。 我认为本次活动的活动目标是: 1.在想想、讲讲的过程中学习儿歌,用明快的节奏朗诵儿歌。 2.理解小动物画圆的方法,学习诗歌。 3.感受动物画圆的趣味,体验自主学习的快乐。 重、难点主要是:帮助幼儿理解诗歌中小动物画圆的方法,学习诗歌,感受动物们画圆的趣味。本课分为五个环节: 第一个环节:情景引入,引出诗歌。 第二个环节:借助图片逐层引导幼儿欣赏诗歌中小猴、刺猬和啄木鸟画圆的诗句,帮助他们初步了解诗句的结构。 第三个环节:引导幼儿用动作来模仿“荡、吐、滚、团、啄”等动词,用多种形式朗读和表现诗歌,感受动物画圆的趣味,解决重难点。 第四个环节:尝试创编诗句,体验自主学习的快乐。为小鱼想出画圆的办法,再用“在哪里画圆,怎样画圆?”的句式创编诗歌。 第五个环节:延伸活动,用身体动作来画圆,进一步感受画圆的趣味。 一节课下来,我感觉我们广坪幼儿园的孩子活泼可爱,整体素质发展较好,整个活动在活泼愉快的气氛中进行,师生互动,平等地进行交流。新《纲要》指出:“教师应成为幼儿学习活动的支持者、合作者、引导者”。在活动中我力求形成合作探究式的师生互动、生生互动,使重难点在幼儿的主动探索中得到解决,体验自主学习的快乐。在引导幼儿学习诗歌的过程中,运用各种方法和手段来帮助他们学习和理解重点动词,丰富幼儿的词汇,发挥他们的形象思维,达成活动目标。收到了预期的效果。由于不太熟悉孩子,前期准备不够充分,和孩子们不能玩成一片,有注重个别孩子的现象,对能力弱的孩子没能照顾到,感到很遗憾。还有由于是临时换课,细节和衔接方面不太到位,还有很多考虑不周的地方,请各位领导和老师多提宝贵意见,给予帮助。谢谢大家! 机关幼儿园:杨春蓉 2011年11月25日 《画 圆》 设计者:梁海红 单位:郑州师范学院附属小学 教学目标与要求 1.知识与技能 (1)学习“椭圆”工具的使用。(2)用“椭圆”绘制简单的图形。2.过程与方法 在绘制基本图形的过程中掌握“椭圆”、工具的使用,培养学生的操作中的组合技能。3.情感态度与价值观 通过绘制椭圆和线条的组合,使学生切身感受“画图”程序带来的乐趣,进一步培养学生对“画图”程序的热爱。教学目的: 学习画圆的一般方法,训练学生的组合思维,提高学生的创造能力。教学重点: 掌握画圆的基本方法。课前准备:多媒体课件。 教学前的思考:找根“主线”拽住学生的注意力。因为一年级的学生注意力不容易集中,针对学生的这个特点我设计了以“猜一猜”为几乎整个课堂的主线,来激发学生的兴趣,让学生能够积极主动的去动脑思考,把他们的注意力吸引到课堂上。 一、“猜谜语”导入;创设教学中“猜”的学习氛围。师:导入语:同学们,大家坐姿正端正,表现的正好,那老师就奖励大家一下,一起来玩个“猜谜语”的小游戏(出示课件): 看看圆,摸摸麻。包着一肚小月牙。(猜一种水果)生:思考,猜出答案 设计意图:这个谜语的用途是吸引学生,并引出“圆、月牙”形状词语。 谜语中我是这样设计了: 1、如果学生猜出来了,我会继续追问其原因“为什么这样猜”,从而引出根据“形状”来猜的这一想法。 2、如果学生猜不到,我会用形状来引导学生猜出结果,进而讲出猜这个谜语的窍门,抓住“形状”特点。 二、延伸“猜”这根主线 接着,我延伸猜一猜,给出西瓜“形状”图片,再猜。(课件展示) 师:同学生,你“为什么这样猜”,引出圆形上面的“花纹(即线条)” 生:观察思考,回答问题。 设计意图:这样告诉学生一个圆形上面添加上一些简单的花纹就可以组成一个实物图形。 三、进一步延伸“猜”这根主线 为了证明老师的说法,进一步延伸“猜”的主线。师:出示一个大圆,(课件展示),之后在上面添加线条(组合出了昆虫的样子),让学生猜是什么; 生:观察思考,回答问题。 师:再为昆虫添加简单的花纹,再延伸“猜”这条主线,得出“七星瓢虫”。 设计意图:这一系列的猜一猜,既证明了老师的说法,也让学生知道了如何简单的加工“圆”。 三、趣味猜一猜 师:紧接着,出示一个“大圆”,接着在大圆的左、右、下添共加了五个“小圆”,再次延伸“猜”这一主线,不少学生会根据“大圆”和其下面的“小椭圆”猜乌龟。为了鼓励学生的正确猜想,顺应学生的猜想,把乌龟的脑袋添加上去了。(激发学生的兴趣) 师:接着,设计一个疑问:“真的就是“乌龟”么?” 把乌龟的脑袋去掉,换成兔子的脑袋,这样猜想的“乌龟”就又变成了“兔子”,推翻了学生的“猜想”。(再变换中体味画图的乐趣) 设计意图:总结猜想的方法:不能只看部分,要根据图形“整体”的组合猜想,才可以得出最正确的答案。这样,即传递了猜想方法,也让学生看到了乌龟和兔子的画法,还让学生了解了“圆”的奇妙组合。 四、教学中图形“组合”思想的传递。教师设计思维:通过猜想中“圆”的不停变幻,让学生看到了“圆”的奇妙和趣味组合图形;让简单图形的“组合”思想慢慢的进入学生的思维。怎样进行组合?首先要让学生知道:“圆”它不孤单,这个通过让学生分析组成“乌龟”和“兔子”,找到组成图形的“圆”不同特点: 师:同学们,咱们在来看看组成“乌龟”和“兔子”的园有哪些不同,你能发现么? 生:回答 1、圆的大小不同; 2、圆的形状也不同(即正圆和椭圆):有胖的、有瘦的、有高的、有矮的。 分析出这些之后,让学生上台演示画出不同的圆,再让全部学生试着去画一画并进行简单的组合。 五、电脑画图中的“技巧”。 师:(出示课件)同学们,请你仔细观察,看看这个大熊猫有多少个圆组成的,看看谁数的又仔细又快!快来试一试吧!生:观察,数一数圆的个数。 师:找学生回答,你数的真仔细,回答的很正确。 同学们,你刚才数的时候,你仔细观察了么?组成熊猫的不同的15个圆是如何组合在一起的? 分析得出:圆之间的简单接合,以及较难的圆之间的相互嵌套;同时也让学生认识到了图形“组合”中一些技巧。紧接着教师演示讲解画图技巧。在嵌套技巧中,可以大概的演示一下“选定”工具的使用,让学生看到了“嵌套”技巧中也有技巧。下面把学生的作品附上几幅:第二篇:大班语言活动《画圆》1
第三篇:C语言编程 “画圆”源程序
第四篇:画圆说课稿
第五篇:画圆教案