利用C语言画图例子

合集下载

C语言 三叶玫瑰曲线

C语言 三叶玫瑰曲线

沈阳理工大学机械工程学院计算机程序训练任务书学生姓名班级学号设计题目编制曲线轨迹动画程序一、设计要求题目:编制曲线轨迹动画程序系统设计说明要求:画一三叶玫瑰线,使一个小五角星在曲线上移动。

ρ3θ=sina键盘输入a、和五角星大小,并存入文件,按回车键程序结束。

(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制三叶玫瑰线)二、设计思路:本题为曲线运动动画程序,应用了数学函数,图形函数文件等,因为要求保存,所以要用文件保存函数。

1、一个画三叶玫瑰线函数,当输入其所需的中心坐标、半径长、颜色,由θρ3=可转化为ro=r*cos(3*t);px=ro*cos(t)+x,py=ro*sin(t)+y的asin形式,再由数组来输出所以的三叶玫瑰线坐标,就可作图。

2、应定义一个画五角星函数,当输入其所需的各顶点坐标、角度、大小及颜色就可作图。

3、主函数中,利用循环选择结构的嵌套及对函数的多次调用。

可实现图形的完成。

4、还需一保存函数save()函数,以正确的形式保存打开观看等。

三、程序说明(一)主要函数说明1、系统用到的数据类型主要包括如下:#include <stdio.h>#include <conio.h> /* 图形颜色函数*/#include <graphics.h> /* 图形处理包含文件*/#include <stdlib.h> /* 标准库函数*/#include <math.h> /* 数学函数*/2、main()主函数程序采用模块化设计,主函数程序的入口,各模块独立,可分块调试,均由主函数控制调用。

控制功能的实现通过循环执行一个开关语句,其中包含多个if嵌套语句,并且调用相应的各功能函数。

3、save()文件写入函数前面讲到的数据输入和输出是以中端为对象的,当程序关闭后,数据也丢失了,所以为了能随时查阅数据,必须将数据输出到磁盘文件上保存起来,使用时再从磁盘中读入到内存中,这就用到了磁盘文件的读写操作。

c语言如何画图

c语言如何画图

c语言如何画图2007-06-12 14:38图形和图像函数包含在graphics.h里面(一) 像素函数56. putpiel() 画像素点函数57. getpixel()返回像素色函数(二) 直线和线型函数58. line() 画线函数59. lineto() 画线函数60. linerel() 相对画线函数61. setlinestyle() 设置线型函数62. getlinesettings() 获取线型设置函数63. setwritemode() 设置画线模式函数(三)、多边形函数64. rectangle() 画矩形函数65. bar() 画条函数66. bar3d() 画条块函数67. drawpoly() 画多边形函数(四)、圆、弧和曲线函数68. getaspectratio()获取纵横比函数69. circle()画圆函数70. arc() 画圆弧函数71. ellipse()画椭圆弧函数72. fillellipse() 画椭圆区函数73. pieslice() 画扇区函数74. sector() 画椭圆扇区函数75. getarccoords()获取圆弧坐标函数(五)、填充函数76. setfillstyle() 设置填充图样和颜色函数77. setfillpattern() 设置用户图样函数78. floodfill() 填充闭域函数79. fillpoly() 填充多边形函数80. getfillsettings() 获取填充设置函数81. getfillpattern() 获取用户图样设置函数(六)、图像函数82. imagesize() 图像存储大小函数83. getimage() 保存图像函数84. putimage() 输出图像函数四、图形和图像函数对许多图形应用程序,直线和曲线是非常有用的。

但对有些图形只能靠操作单个像素才能画出。

当然如果没有画像素的功能,就无法操作直线和曲线的函数。

c语言基本画图函数

c语言基本画图函数

c语言基本画图函数c语言基本画图函数基本图形函数包括画点,线以及其它一些基本图形的函数。

本节对这些函数作一全面的介绍。

1、画点I画点函数void far putpixel(int x, int y, int color);该函数表示有指定的象元画一个按color 所确定颜色的点。

对于颜色color的值可从表3中获得而对x, y是指图形象元的坐标。

在图形模式下,是按象元来定义坐标的。

对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480为整个屏幕从上到下所有象元的个数。

屏幕的左上角坐标为(0,0),右下角坐标为(639, 479),水平方向从左到右为x 轴正向,垂直方向从上到下为y轴正向。

TURBO C的图形函数都是相对于图形屏幕坐标,即象元来说的。

关于点的另外一个函数是:int far getpixel(int x, int y); 它获得当前点(x, y)的颜色值。

II、有关坐标位置的函数.int far getmaxx(void);返回x轴的最大值。

int far getmaxy(void); 返回y轴的最大值。

int far getx(void); 返回游标在x轴的位置。

void far gety(void); 返回游标有y轴的位置。

void far moveto(int x, int y); 移动游标到(x, y)点,不是画点,在移动过程中亦画点。

void far moverel(int dx, int dy); 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点。

2、画线I. 画线函数TURBO C提供了一系列画线函数,下面分别叙述:void far line(int x0, int y0, int x1, int y1); 画一条从点(x0, y0)到(x1, y1)的直线。

void far lineto(int x, int y); 画一作从现行游标到点(x, y)的直线。

计算机图形学利用C语言图形函数绘图

计算机图形学利用C语言图形函数绘图

计算机图形学课程实验 报 告实验题目 利用C 语言图形函数绘图 班 级 姓 名 学 号 指导教师 日 期Computer GraphicsReport Of course experiment-图形学课程实验报告-- 1 -实验说明试验目的: 掌握TurboC 语言图形函数的使用和学会绘制一般图形。

试验地点: 教九楼401 数学系机房实验要求(Direction ):1. 每个学生单独完成;2.开发语言为TurboC 或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。

实验内容实验题一1.1实验题目用如下图1所示,图中最大正n 边形的外接圆半径为R ,旋转该正n 边形,每次旋转θ角度,旋转后的的n 边形顶点落在前一个正六边形的边上,共旋转N 次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n 边形。

要求:(1) n 、R 、N 、θ要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。

1.2实验目的和意义1. 了解如何利用C 语言和图形函数进行绘图;2. 熟悉并掌握C 语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;CB AR1R210图1利用C 语言图形函数绘图实验1如左图(一)所示:n=6 θ=100、N =1、R=R1、旋转一次。

依次类推,共旋转N 次。

3.通过对Turbo C进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形模式的控制并熟练运用图形坐标的设置,包括定点、读取光标、读取x和y轴的最大值以及图形颜色的设置。

1.3程序制作步骤(包括算法思想、算法流程图等)1.自动搜索显示器类型和显示模式,初始化图形系统,通过printf、scanf语句控制半径r、边数n、多边形的个数k、边的每次旋转角度d,的自由输入;2.给定一内接圆半径r,由圆内接多边形的算法公式:x[i]=r*cos((i+1) *2.0*pi/n)+320.0y[i]=240.0-r*sin(2.0*pi/n *(i+1))确定出多边形N的各个顶点坐标,然后利用划线函数line(),连接相邻两点,即形成一个正多边形。

uml建模 c语言举例

uml建模 c语言举例

uml建模 c语言举例
统一建模语言(UML)是一种用于软件系统建模的标准语言。

它提供了一组图形符号和规则,用于描述软件系统的结构、行为和交互。

当使用 UML 为 C 语言建模时,可以通过以下方式进行举例:
1. 用例图:用例图用于描述系统的功能和用户需求。

可以为每个 C 语言程序创建一个用例,描述其主要功能和与外部系统或用户的交互。

2. 类图:类图用于表示系统中的类、对象和它们之间的关系。

在 C 语言中,可以将相关的数据结构、函数和变量表示为类,并通过类之间的关联、继承和聚合关系来描述它们之间的联系。

3. 顺序图:顺序图用于展示对象之间的消息交互顺序和时间顺序。

可以使用顺序图来描述 C 语言程序中函数之间的调用关系和参数传递。

4. 活动图:活动图用于描述系统中业务流程或算法的执行过程。

可以将 C 语言程序中的主要执行步骤表示为活动,并通过控制流和决策来展示程序的执行逻辑。

通过使用 UML 建模,可以更好地理解和可视化 C 语言程序的结构、功能和行为。

这有助于与开发团队成员、利益相关者进行沟通,并提供清晰的设计文档。

请注意,UML 是一种建模工具,而不是编程语言,因此在实际编程中,仍然需要使用 C 语言来实现具体的代码逻辑。

C程序--画图举例

C程序--画图举例
}
while(1)
{ if(kbhit())
{ sign = getch();
if(sign == 0x1b)
{ free(buf);
break;
}
}
else
{
for(i = 0;i < a;i ++){
putimage((sign1[i] == 1 ? x[i] ++ : x[i] --),
(sign2[i] == 1 ? y[i] ++ : y[i] --),buf,COPY_PUT);
if(x[i] > getmaxx() - 21)
sign1[i] = 0;
四瓣花型图案
#include<math.h>
#include<graphics.h>
#define PI 3.14159
#define D 100
main()
{ float a,e,x1,y1,x2,y2;
int gdriver=VGA,gmode=VGAHI;
initgraph(&gdriver,&gmode,"d:\\tc");
x2=(m[0][0]*f[0]+m[1][0]*f[1]+m[2][0]*f[2])+x0;
y2=(m[0][1]*f[0]+m[1][1]*f[1]+m[2][1]*f[2])*DIST+y0;
if(n==1) {n=2;x1=x2;y1=y2;}
else
{
line(x1,y1,x2,y2);

c语言画图.

c语言画图.

VC绘图/游戏简易教程--1:创建新项目[本期目标] 学会在VC 里面创建项目,并写简单的程序。

VC 写程序要有项目的概念,一个项目可以有多个 .cpp 文件,多个项目构成一个工作区。

先记住这两个英文单词吧:∙Workspace: 工作区∙Project: 项目现在开始创建一个新项目。

∙VC6 创建新项目请参考这个视频:/news/View.aspx?id=65∙VC2008 创建新项目请参考:/news/View.aspx?id=85∙VC2010 与VC2008 相似。

看明白后,自己动手建立项目试试,并输入以下代码:#include <stdio.h>void main(){printf("Hello World!");}尤其是之前用tc 的同学,请务必创建新项目试一试。

成功执行后,会看到屏幕上有“Hello World!”几个字符。

然后,再重新输入以下代码试试(无需理解代码含义):#include <graphics.h>#include <conio.h>void main(){initgraph(640, 480);line(200, 240, 440, 240);line(320, 120, 320, 360);getch();closegraph();}执行后应该可以看到屏幕正中央有一个十字。

看到该十字后,本节课结束。

VC绘图/游戏简易教程--2:简单绘图,学习单步执行[本期目标]学会简单绘图,并学会简单调试。

先看看上一课的代码,我加上了注释#include <graphics.h> // 绘图库头文件,绘图语句需要#include <conio.h> // 控制台输入输出头文件,getch()语句需要void main(){initgraph(640, 480); // 初始化640x480的绘图屏幕line(200, 240, 440, 240); // 画线(200,240) - (440,240)line(320, 120, 320, 360); // 画线(320,120) - (320,360)getch(); // 按任意键closegraph(); // 关闭绘图屏幕}解释一下:1. 创建的绘图屏幕640x480,表示横向有640个点,纵向有480个点。

3种c#画图方法

3种c#画图方法

3种c#画图方法1 //描绘曲线//创建曲线中的点Point point1 = new Point(68, 420);Point point2 = new Point(71, 410);Point point3 = new Point(74, 423);Point point4 = new Point(77, 412);Point point5 = new Point(80, 400);Point point6 = new Point(90, 380);Point point7 = new Point(100, 350);Point point8 = new Point(120, 320);Point[] curvePoints = { point1, point2, point3, point4, point5, point6, point7, point8 };GraphicsPath myPath = new GraphicsPath();//AddCurve(点阵,起点,终点,弯曲程度)myPath.AddCurve(curvePoints, 0, 7, 0.8f);Pen myPen = new Pen(Color.Red, 1);IMG.DrawPath(myPen, myPath);---------------------------------------------------------------------------------------------2 c#.net画曲线图(坐标)using System.Drawing.Imaging;using System.Drawing.Drawing2D;//数据/月份public ArrayList arrData=new ArrayList();public ArrayList arrMonth=new ArrayList();//定义幕布高宽private int iCanvasWidth=400;private int iCanvasHeight=300;//x轴的间距private int iX=30;//y轴间距private int iY=15;public void InitArray(){for(int i=0;i<6;i++)arrMonth.Add(i+1);arrData.Add(200);arrData.Add(180);arrData.Add(285);arrData.Add(290);arrData.Add(275);arrData.Add(350);}// //pen 画线// Pen myPen = new Pen(Color.Black);// Graphics g = this.CreateGraphics();// g.DrawEllipse(myPen, 20, 30, 10, 50);//// Graphics g1 = this.CreateGraphics();// SolidBrush myBrush = new SolidBrush(Color.Red);// g1.FillEllipse(myBrush,20,30,40,40);// g1.FillRectangle(myBrush,70,70,10,30);this.InitArray();Bitmap bitmap= new Bitmap(iCanvasWidth, iCanvasHeight,PixelFormat.Format24bppRgb);//Graphics g=Graphics.FromImage(bitmap);Graphics g=this.CreateGraphics();g.Clear(Color.White);Font font = new Font("MS UI Gothic",12);SolidBrush brush = new SolidBrush(Color.Black);Pen pen = new Pen(Color.Black);pen.EndCap = LineCap.ArrowAnchor;pen.DashStyle = DashStyle.Solid;//坐标轴g.DrawLine(pen,20,220,420,220);g.DrawLine(pen,20,220,20,20);//x轴标格g.DrawLine(Pens.Black,20+iX*1,220,20+iX*1,220-2);g.DrawLine(Pens.Black,20+iX*2,220,20+iX*2,220-2);g.DrawLine(Pens.Black,20+iX*3,220,20+iX*3,220-2);g.DrawLine(Pens.Black,20+iX*4,220,20+iX*4,220-2);g.DrawLine(Pens.Black,20+iX*5,220,20+iX*5,220-2);g.DrawLine(Pens.Black,20+iX*6,220,20+iX*6,220-2);//y轴标格g.DrawLine(Pens.Black, 20, 220 - iY*1, 20 + 2, 220 - iY*1);g.DrawLine(Pens.Black, 20, 220 - iY*2, 20 + 2, 220 - iY*2);g.DrawLine(Pens.Black, 20, 220 - iY*3, 20 + 2, 220 - iY*3);g.DrawLine(Pens.Black, 20, 220 - iY*4, 20 + 2, 220 - iY*4);g.DrawLine(Pens.Black, 20, 220 - iY*5, 20 + 2, 220 - iY*5);g.DrawLine(Pens.Black, 20, 220 - iY*6, 20 + 2, 220 - iY*6); //double dblX1=20;double dblY1=220;for(int i=0;i<arrdata.count;i++)< p="">{double dblData=Convert.ToDouble(arrData[i]);double dblY2=220-dblData*15/200;double dblX2=20+iX*Convert.ToInt32(arrMonth[i]);if(i!=0){if(i<arrdata.count-1)< p="">{g.DrawLine(Pens.Black,float.Parse(dblX1.ToString()),float.Pars e(dblY1.ToString()),float.Parse(dblX2.T oString()),float.Parse(dblY2.ToString()));}else{g.DrawLine(pen,float.Parse(dblX1.T oString()),float.Parse(dblY1.ToString()),float.Parse( dblX2.ToString()),float.Parse(dblY2.ToStri ng()));}}dblX1=dblX2;dblY1=dblY2;}}}}-------------------------------------------------------------------------------------------------------C#画折线图一例在.net中,微软给我们提供了画图类(system.drawing.imaging),在该类中画图的基本功能都有。

几个简单分形图形的C语言实现

几个简单分形图形的C语言实现

sin 600 cos 600 0
x4
y4 1 x3Fra biblioteky30 1 0 0 0 0 1 0 1 x y2 1 2
1.3. 程序设计过程 (一) 迭代过程函数
void
koch(double x0, double y0, double x1, double y1, int k) /* 给出直线 F0 的两个端点坐标(x0,y0)和(x1,y1),并且定义迭代次数为 k 次*/
x2
y2 1 x1
y1
1 0 0 0 0 1 3 1 0 0 0 1 0 1 0 1 0 1 0 0 3 x y 1 0 1 x y 1 0 0 0 0 0
x3
y3 1 x1
printf(”Please input the value of the positive integer n (n<9):”);
scanf(“%d”, &n); setcolor(GREEN); sierpinski(20, 20, 470, 470, n); getch(); closegraph(); } 2.4. 生成图形显示
/*输入迭代次数 n*/ /*设置 sierpinski 三角形颜色为绿色*/ /*画 sierpinski 三角形*/
/*关闭图形系统*/
图 2.4 迭代四次后生成的 Sierpinski 三角形
图 2.5 迭代六次后生成的 Sierpinski 三角形
分形(三)
3.1. 绘制桧树分形小枝的生成元
{
double x2, y2, x3, y3, x4, y4; x2=2.0/3*x0+1.0/3*x1;

c语言画图基本函数

c语言画图基本函数

c语言画图基本函数基本图形函数包括画点,线以及其它一些基本图形的函数。

本节对这些函数作一全面的介绍。

1、画点I. 画点函数 void far putpixel(int x, int y, int color);该函数表示有指定的象元画一个按color 所确定颜色的点。

对于颜色color的值可从表3中获得而对x, y是指图形象元的坐标。

在图形模式下,是按象元来定义坐标的。

对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480为整个屏幕从上到下所有象元的个数。

屏幕的左上角坐标为(0,0),右下角坐标为(639, 479),水平方向从左到右为x 轴正向,垂直方向从上到下为y轴正向。

TURBO C的图形函数都是相对于图形屏幕坐标,即象元来说的。

关于点的另外一个函数是: int far getpixel(int x, int y); 它获得当前点(x, y)的颜色值。

II、有关坐标位置的函数int far getmaxx(void);返回x轴的最大值。

int far getmaxy(void); 返回y轴的最大值。

int far getx(void); 返回游标在x轴的位置。

void far gety(void); 返回游标有y轴的位置。

void far moveto(int x, int y); 移动游标到(x, y)点,不是画点,在移动过程中亦画点。

void far moverel(int dx, int dy); 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点。

2、画线I. 画线函数TURBO C提供了一系列画线函数,下面分别叙述:void far line(int x0, int y0, int x1, int y1); 画一条从点(x0, y0)到(x1, y1)的直线。

void far lineto(int x, int y); 画一作从现行游标到点(x, y)的直线。

利用C语言画图例子

利用C语言画图例子

利用C语言画图例子利用C语言画图例子1)/*#include // 就是需要引用这个图形库 #includevoid main()#include#includevoid main(){initgraph(640, 480); // 这里和 TC 略有区别circle(200, 200, 100); // 画圆,圆心(200, 200),半径100 getch(); // 按任意键继续closegraph(); // 关闭图形界面printf("***\n");}*/2)/*#include#include#includevoid main(){// 设置随机函数种子srand((unsigned) time(NULL));// 初始化图形模式initgraph(640, 480);int x, y;char c;setfont(16, 8, "Courier"); // 设置字体while(!kbhit()){for (int i=0; i<479; i++){setcolor(GREEN);for (int j=0; j<3; j++){x = (rand() % 80) * 8;y = (rand() % 20) * 24;c = (rand() % 26) + 65; outtextxy(x, y, c);}setcolor(0);line(0,i,639,i);Sleep(10);if (kbhit()) break;}}// 关闭图形模式closegraph();}*/3)/*#include#include#include#define MAXSTAR 200 // 星星总数struct STARdouble x;int y;double step;int color;};STAR star[MAXSTAR];// 初始化星星void InitStar(int i){star[i].x = 0;star[i].y = rand() % 480;star[i].step = (rand() % 5000) / 1000.0 + 1; star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮star[i].color = RGB(star[i].color, star[i].color, star[i].color);}// 移动星星void MoveStar(int i){// 擦掉原来的星星putpixel((int)star[i].x, star[i].y, 0);// 计算新位置star[i].x += star[i].step;if (star[i].x > 640) InitStar(i);// 画新星星putpixel((int)star[i].x, star[i].y, star[i].color); }// 主函数void main()srand((unsigned)time(NULL)); // 随机种子initgraph(640, 480); // 打开图形窗口// 初始化所有星星for(int i=0; i<="" p="">{InitStar(i);star[i].x = rand() % 640;}// 绘制星空,按任意键退出while(!kbhit()){for(int i=0; i<="" p="">MoveStar(i);Sleep(20);}closegraph(); // 关闭图形窗口}*/4)/*#include#includevoid main(){float H, S, L;initgraph(640, 480);// 画渐变的天空(通过亮度逐渐增加)H = 190; // 色相S = 1; // 饱和度L = 0.7f; // 亮度for(int y = 0; y < 480; y++){L += 0.0005f;setcolor( HSLtoRGB(H, S, L) );line(0, y, 639, y);}// 画彩虹(通过色相逐渐增加)H = 0;S = 1;L = 0.5f;setlinestyle(PS_SOLID, NULL, 2); // 设置线宽为 2 for(int r = 400; r > 344; r--){H += 5;setcolor( HSLtoRGB(H, S, L) );circle(500, 480, r);}getch();closegraph();}*/5)#include#includevoid main(){// 初始化图形窗口initgraph(640, 480);MOUSEMSG m; // 定义鼠标消息while(true){// 获取一条鼠标消息m = GetMouseMsg();switch(m.uMsg){case WM_MOUSEMOVE:// 鼠标移动的时候画红色的小点putpixel(m.x, m.y, RED);break;case WM_LBUTTONDOWN:// 如果点左键的同时按下了 Ctrl 键if (m.mkCtrl)// 画一个大方块rectangle(m.x-10, m.y-10, m.x+10, m.y+10); else// 画一个小方块rectangle(m.x-5, m.y-5, m.x+5, m.y+5); break;case WM_RBUTTONUP:return; // 按鼠标右键退出程序}}// 关闭图形窗口closegraph();}。

C语言中的画图函数

C语言中的画图函数

C语言中的画图函数基本图形函数包括画点,线以及其它一些基本图形的函数。

本节对这些函数作一全面的介绍。

1、画点I. 画点函数 void far putpixel(int x, int y, int color);该函数表示有指定的象元画一个按color 所确定颜色的点。

对于颜色color 的值可从表3中获得而对x, y是指图形象元的坐标。

在图形模式下,是按象元来定义坐标的。

对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480为整个屏幕从上到下所有象元的个数。

屏幕的左上角坐标为(0,0),右下角坐标为(639, 479),水平方向从左到右为x 轴正向,垂直方向从上到下为y轴正向。

TURBO C的图形函数都是相对于图形屏幕坐标,即象元来说的。

关于点的另外一个函数是: int far getpixel(int x, int y); 它获得当前点(x, y)的颜色值。

II、有关坐标位置的函数int far getmaxx(void);返回x轴的最大值。

int far getmaxy(void); 返回y轴的最大值。

int far getx(void); 返回游标在x轴的位置。

void far gety(void); 返回游标有y轴的位置。

void far moveto(int x, int y); 移动游标到(x, y)点,不是画点,在移动过程中亦画点。

void far moverel(int dx, int dy); 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点。

2、画线I. 画线函数TURBO C提供了一系列画线函数,下面分别叙述:void far line(int x0, int y0, int x1, int y1); 画一条从点(x0, y0)到(x1, y1)的直线。

void far lineto(int x, int y); 画一作从现行游标到点(x, y)的直线。

c语言流程图怎么画

c语言流程图怎么画

c语言流程图怎么画C语言流程图怎么画在学习和掌握编程语言C时,流程图是一个非常重要的工具。

流程图是一种图形化表示算法或程序流程的图表,它可以帮助程序员更好地理解和设计程序的逻辑结构。

本文将介绍如何使用C语言绘制流程图。

一、流程图的基本符号在开始绘制流程图之前,我们需要了解一些基本的符号和表示方法。

下面是C语言流程图常用的基本符号:1. 开始/结束符号:流程图通常以一个圆圈表示程序的开始和结束点。

2. 输入/输出符号:使用矩形表示用户的输入或程序的输出操作。

一般情况下,输入方块使用带有一个指向内部的箭头,输出方块使用带有一个指向外部的箭头。

3. 过程/处理符号:使用矩形表示算法或程序中的处理步骤。

通常情况下,处理方块使用带有一个指向下方的箭头。

4. 判断/决策符号:使用菱形表示条件判断。

判断方块通常有两个或多个分支,每个分支根据不同的条件选择不同的处理路径。

每个分支使用带有指向下方的箭头。

5. 连接线/箭头:连接不同的流程方块以表示它们之间的关系。

箭头通常是水平或垂直的,但可以根据需要进行弯曲或连接。

二、绘制流程图的步骤了解了基本的符号后,我们可以按照下面的步骤开始绘制C语言流程图:1. 确定程序的开始和结束:使用一个圆圈表示程序的开始和结束。

2. 定义输入和输出:根据程序需求,确定是否需要输入和输出操作,并在图中相应位置放置相应的方块,并用箭头标识方向。

3. 划分主要步骤:根据程序的逻辑结构,将其主要步骤划分为不同的处理方块,并按照程序的执行顺序排列。

4. 进一步细化处理方块:如果某个处理方块较为复杂,可以进一步细化,使用嵌套的处理方块或判断方块来展示其内部逻辑。

5. 连接不同的流程方块:使用箭头将不同的处理方块连接起来,以表示程序的流程。

箭头应该遵循程序的执行顺序。

6. 添加判断分支:如果程序有条件判断的部分,可以使用菱形的判断方块来表示,并使用箭头将不同的分支连接起来。

7. 优化和美化:检查流程图,确保图表的逻辑正确,并进行必要的调整和优化,使其更易读和美观。

利用VC编写简单的绘图程序

利用VC编写简单的绘图程序

利用VC编写简单的绘图程序上机实验环境亦可选择Microsoft Visual C++〔以下简称VC〕。

VC是美国微软公司生产的基于其Windows系统的软件开发工具。

它具有使用灵活,并与32位Windows内核〔使用于Windows 2000/Windows XP〕高度兼容的特点,从而被Windows程序员们广泛使用。

VC 在图形图像处理方面有着广泛的应用,MFC中提供了大量的图形图像函数,下面我们将对使用VC/MFC编写简单的绘图程序。

一、使用VC编写MFC单文档应用程序很简单,只需要按照下面几个步骤进行:1.翻开MSVC集成开发环境。

双击桌面或“开始〞菜单中的Microsoft VisualC++6.0,不久将看到VC的编辑窗口,如图3-5:图1 VC启动界面2.选择菜单“File | New〞,在弹出的对话框中1)单击上方的选项卡“Project〞,2)选择“MFC AppWizard(exe)〞,3)在“Project name〞一栏中填写工程名,例如draw,4)在“Location〞一栏中填写你想把文件存放的位置〔目录〕。

然后按“OK〞。

见图2。

注意:第4〕步中指定你自己的目录,不要使用系统的缺省目录或者随便放在根目录或者其他的目录下。

这样便于你找到自己编写的程序。

图2 应用程序向导主界面3.在MFC Appwizard-Step 1中选择“Single Document〞,即单文档应用程序,点击“Finish〞,如图3所示。

注意:对于下面的操作我们可以忽略,直接点Finish即可。

图3 应用程序向导中选择单文档视图4.系统弹出一个当前工程信息的对话框,如图4所示,直接点“OK〞即可。

图4 新建工程信息5.进入程序编写的主界面,屏幕左下方为工作区,如图5所示,工作区中共有三种视图,分别是:1)文件视图〔“FileView〞〕,主要包括头文件,cpp文件以及资源文件。

我们在头文件中一般添加类的定义,类的成员变量和函数的声明,而在cpp文件中具体实现函数。

C语言画圆椭圆

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<x1){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);elselength=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)<a*a*(y-0.5)){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<n;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算法画圆*/void BresenhemCircle(int x0,int y0,double r,int color){int x,y,d;x=0;y=(int)r;d=(int)(3-2*r);while(x<y){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<n;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 parametric painting 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 parametric painting 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();}。

C语言实用程序设计100例流程图

C语言实用程序设计100例流程图

盛年不重来,一日难再晨。

及时宜自勉,岁月不待人。

C语言实用程序100例第一篇基础与提高实例1利用库函数编写基本显示程序实例2变量属性实例3运算符与类型实例4关于程序结构实例5显示函数曲线图实例6二分法选代的应用实例7多变的立方体实例8 一维整型数组应用(1)实例9 一维整型数组应用(2)实例10 一维整型数组应用(3)实例11 一维整型数组应用(4)实例12二维数组应用(1)――显示杨辉三角实例13二维数组应用(2)――魔方阵实例14字符数组应用(1)――逻辑判断实例15字符数组应用(2)――数据模拟实例16二维数组应用——字符比较实例17利用指针进行数据处理实例18指针与字符串实例19利用指针处理二维数组实例20 一级指针实例21利用指针传递参数值实例22结构体的应用实例23链表的应用(1)实例24链表的应用(2)实例25链表的应用(3)实例26共用体的应用实例27枚举类型应用实例28位运算买例29义件加密实例30文件的按记录随机读写第二篇图形与多媒体实例31改变文字背景色实例32及本颜色设置实例33制作表格实例34制作多样的椭圆实例35美丽的透视图形实例36错位窗口实例37能移动的矩形实例38多变的填充矩形实例39黄黑相间的矩形与圆实例40 六叶图案实例41 特殊图案实例42 国际象棋棋盘实例43 制作楼梯实例44 使用线类型函数设置多个汉字实例45 彩色群点实例46 饼图买例47 产品折线图实例48 直方图实例49 变大变色的拒形与国实例50 多变的填充多边形实例51 流星球实例52 小球动态碰撞买倒53 多,曲线实例54 多变的圆与环实例55 优美的球体实例56 运动的小车实例57 统计动画消失次数实例58 运行的时钟实例59 直升飞机实例60演绎“生命游戏”实例61 猜猜看买例62 艺术清屏买倒63 制作火焰实例64动态绘制256 条不同颜色的直线实例65 红绿蓝三原色渐变第三篇综合小程序实例66 两个矩阵相乘实例67 艺术钟实例68 家庭财务管理小程序实例69 用系统时间实现随机数实例70 闪动的多彩圆实例71 检查系统有无鼠标实例72 圆形光盘与矩形实例73 动态渐变图案实例74 往返两地间的小车实例75 飘扬的红旗实例76 显示蓝天白云图形实例77 百叶窗第四篇计算机等级考试上机试题(二级)第五篇计算机等级考试上机试题(三级)部分流程图实例1实例2实例3s oA II •x A 当toupper(yes)=='Y'时=>count产生随机数:number输入guess值当1<guess<1时«««9fwu寸匡u共享知识分享快乐实例6实例7共享知识分享快乐实例8递归函数hanoi递归调用hanoi(n-1,a,c,b)显示移盘信息move递归调用hanoi(n-1,c,b,a)i=O,j=O当i<N时实例9实例10共享知识分享快乐实例112=>i当i<=n时---------------1=>j当j<i时---------------AAAAAAAAa[i-1][j-1]+a[i-1][j]=>a[i][j]j++实例120=>j 实例131=>a『0]『i]实例14共享知识分享快乐实例150=>i当i<4时0=>i共享知识分享快乐图15-2 流程图实例16共享知识分享快乐当*p!='\0'&&(*p>='0')&&(*p<=9) 时k=*(p++)-48;nu mber=10* nu mber+k;retur n nu mber;实例17实例18实例19共享知识分享快乐0=>i实例20实例22共享知识分享快乐共享知识分享快乐实例23仁>flaghead=>*p当p!=NULL&&flag==1 时p->key==k是否0=>flag p_>n ext=>pflag==0 _ _ 一一^^一否p->co un t++; head=>phead=(struct number *)malloc(LENGTH);head->key=k; head->co un t=1; head->n ext=p;实例24函数newhead=>p1,head=>p2开辟空间:p=(struct stude nt *)malloc(LENGTH);共享知识分享快乐图25-2 流程图实例260=>i当i<N时gets(i nfo[i]. name);sea nf("%d",&in fo[i].age); getchar();in fo[i].sex=getchar();getchar();in fo[i].job=getchar();getchar();根据职业不冋选择单位类型输入数据实例27i=RED当j=RED当j<=BLACK 时另外三种赋值共享知识 分享快乐k =0x 8000;p r i n t f (" %04x (16) \t ",n u m b e r );9 T — Vp r i n t f ("%d ",b i t );\ Knii //p r i n t f ("-");b =n u m b e r > >nf 1 1>牠氐聘«««6CXI匡邸8CXI 匡邸实例30写新记录实例78 k=n *sizeof(struct stude nt);实例79打印x实例81 AAAAAA AA实例82 AAAAAAAA共享知识分享快乐实例83共享知识分享快乐表达式1 x=1实例84实例85定义数组a[11],变量l,h,m及指针变量p输入数据给a[1]到a[10],输入要找的数xl=1 ; h=10 ; p=a实例86实例87共享知识分享快乐实例88 实例89共享知识分享快乐共享知识分享快乐共享知识分享快乐实例93共享知识分享快乐实例94定义整型数组变量a[N1][N2],max,min,i,j,row1,row2,column 1,column2, (*ap)[4]ap=a row1=row2=colu mn 1=colu mn 2=0for( i=0; i<N1;i++)for( j=0; j<N1;j++)任意输入字符串放到二维数组中max=mi n=a[0][0] for( i=0; i<N1;i++)for( j=0; j<N1;j++)打印最大值和最小值及它们所在的行与列共享知识分享快乐实例95实例96for ( n=1; n<=10 ;n++)p=p* ne=e+1.0/p打印输出e的值共享知识分享快乐实例97(1)实例97 ( 2)实例99。

用C语言实现画图程序

用C语言实现画图程序

一、选题背景:画图程序,通过画图中的功能绘制出美丽的图案。

二、设计思想:利用数学三角函数制作山峰和花朵出一条曲线、用画圆函数绘制太阳的形状、再进行颜色填充用绘制直线的函数来绘制比较粗的光线、用矩形函数画出矩形的边框、再画地球、直线画赤道、弧线画南北极和钟表的刻度盘。

三、流程图:四、程序清单:#include"graphics.h" /*调用图形库函数*/#include"math.h" /*调用数学函数*/#include"stdio.h" /*调用标准I/O函数*/#define PI 3.141596 /*宏定义PI字符串*/main() /*主函数*/{float i,x,y; /*定义单精度浮点型变量i,x,y*/int gdriver=DETECT,gmode,a=1; /*定义整型变量gdriver,gmode*/initgraph(&gdriver,&gmode,"d:\\tc"); /*定义变量后,初始化图形系统*/cleardevice();setbkcolor(a); /*背景颜色*/printf("\n");printf("\n"); /*C 语言图形函数*/printf("\n");printf(" the following math functions were used in the main function.\n");printf(" setbkcolor(int color);\n"); /* 背景颜色*/printf(" setcolor(int color);\n"); /* 画笔颜色*/printf(" putpexel(x,y,color);\n"); /* 画像素点*/printf(" line(x1,y1,x2,y2)\n"); /* 直线函数*/printf(" rectangle(xl,yt,xr,yb)\n");; /* 矩形函数*/printf(" arc(x,y,as,ae,r)\n"); /* 圆弧函数*/printf(" circle(x,y,r)\n"); /*圆形函数*/printf(" ellipse(x,y,as,ae,rx,ry)\n"); /* 椭圆函数*/printf("\n"); /* 按任意键开始演示*/setcolor(2);setlinestyle(0,0,3);rectangle(4,4,635,475); /*绘制矩形框*/getch();cleardevice();printf("\n"); /* 模拟手工画图*/printf("\n"); /* 函数曲线图形*/setcolor(3);setlinestyle(3,3,3);rectangle(4,4,635,475); /*绘制图纸边框*/for (i=0;i<=2*PI;i+=PI/99999){putpixel(40*i,170-21*i*sin(1.6*i),2);putpixel(40.3*i,170-22*i*sin(1.6*i),3);putpixel(40.6*i,170-23*i*sin(1.6*i),10);}for (i=0;i<=2*PI;i+=PI/99999) /*绘制花朵*/{putpixel(118-15*cos(4*i)*cos(i),160-15*cos(4*i)*sin(i),14);putpixel(118-25*cos(4*i)*cos(i),160-25*cos(4*i)*sin(i),13);putpixel(118-35*cos(4*i)*cos(i),160-35*cos(4*i)*sin(i),10);}for (i=0;i<=PI;i+=PI/99999){putpixel(320-315*cos(i),360-95*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-96*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-97*sin(i),11); /*绘制拱桥*/ }for (a=70;a<=570;a+=50)for (i=0;i<=PI;i+=PI/9999){putpixel(a-25*cos(i),360-40*sin(i),11); /*绘制桥*/}}for (x=0;x<=640;x+=0.001){putpixel(8*x,380-8*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=600;x+=0.001){putpixel(10*x,405-10*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=560;x+=0.001){putpixel(12*x,430-12*sin(x),9); /*绘制曲线水流*/}for(x=60;x<=80;x+=0.01){ellipse(270,360,180 ,0,160-x,25);}for (x=0;x<=520;x+=0.001){putpixel(8*x,455-8*sin(x),9); /*绘制曲线水流*/}setlinestyle(0,0,1);setfillstyle(1,12);fillellipse(320,60,25,25); /*绘制太阳*/for (x=280;x>=250;x-=0.0001)putpixel(x,60,12); /*绘制阳光线*/}for (x=360;x>=390;x+=0.0001){putpixel(x,60,12); /*绘制阳光线*/}for (y=24;y>=12;y-=0.0001){putpixel(320,y,12); /*绘制阳光线*/}for (y=96;y<=108;y+=0.0001){putpixel(320,y,12); /*绘制阳光线*/}setlinestyle(3,0,1);setcolor(12);for (i=0;i<=2*PI;i+=PI/12) /*绘制阳光线*/{line(320+40*cos(i),60-36*sin(i),320+70*cos(i),60-48*sin(i)); for (x=0;x<=55555;x+=0.1){y=y+x; /*延时控制*/}}setcolor(13);setlinestyle(0,0,1);rectangle(460,100,620,200); /*绘制地图框(矩形)*/ setcolor(11);setlinestyle(0,0,3);ellipse(540,150,0,360,77,48); /*绘制地球(椭圆)*/circle(540,150,46); /*绘制经线(圆形)*/ellipse(540,100,210,330,45,16); /*绘制北极圈(椭圆弧)*/ellipse(540,200,30,150,45,16); /*绘制南极圈(椭圆弧)*/setcolor(14);setlinestyle(3,0,1);line(460,150,620,150); /*绘制赤道(水平线)*/line(540,100,540,200); /*绘制经线(垂直线)*/setcolor(11); setlinestyle(0,0,1);for (i=0;i<=2*PI;i+=PI/300){putpixel(590-35*cos(i),50-35*sin(i),11); /*绘制0.1秒刻度*/}setcolor(14);setlinestyle(0,0,1);circle(590,50,2); /*绘制中心轴*/setcolor(13);setlinestyle(0,0,3);for (i=0;i<=2*PI;i+=PI/6){line(590+25*sin(i),50-25*cos(i),590+30*sin(i),50-30*cos(i));/*绘制小时*/for (x=0;x<=5555;x+=0.001){y=y+x; /*延时控制*/}getch();closegraph(); }五、主要解决问题的方法及技术关键1、主要问题及解决方法✓抛物线的画法用插补法画抛物线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用C语言画图例子
1)
/*#include <graphics.h>// 就是需要引用这个图形库 #include
<conio.h> void main()
#include<stdio.h>
#include <conio.h>
void main()
{
initgraph(640, 480); // 这里和 TC 略有区别
circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续
closegraph(); // 关闭图形界面
printf("***\n");
}
*/
2)
/*
#include <graphics.h>
#include <time.h>
#include <conio.h>
void main()
{
// 设置随机函数种子
srand((unsigned) time(NULL));
// 初始化图形模式
initgraph(640, 480);
int x, y;
char c;
setfont(16, 8, "Courier"); // 设置字体
while(!kbhit())
{
for (int i=0; i<479; i++)
{
setcolor(GREEN);
for (int j=0; j<3; j++)
{
x = (rand() % 80) * 8;
y = (rand() % 20) * 24;
c = (rand() % 26) + 65;
outtextxy(x, y, c);
}
setcolor(0);
line(0,i,639,i);
Sleep(10);
if (kbhit()) break;
}
}
// 关闭图形模式
closegraph();
}
*/
3)
/*
#include <graphics.h>
#include <time.h>
#include <conio.h>
#define MAXSTAR 200 // 星星总数
struct STAR
{
double x;
int y;
double step;
int color;
};
STAR star[MAXSTAR];
// 初始化星星
void InitStar(int i)
{
star[i].x = 0;
star[i].y = rand() % 480;
star[i].step = (rand() % 5000) / 1000.0 + 1;
star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);
// 速度越快,颜色越亮
star[i].color = RGB(star[i].color, star[i].color,
star[i].color);
}
// 移动星星
void MoveStar(int i)
{
// 擦掉原来的星星
putpixel((int)star[i].x, star[i].y, 0);
// 计算新位置
star[i].x += star[i].step;
if (star[i].x > 640) InitStar(i);
// 画新星星
putpixel((int)star[i].x, star[i].y, star[i].color); }
// 主函数
void main()
{
srand((unsigned)time(NULL)); // 随机种子
initgraph(640, 480); // 打开图形窗口
// 初始化所有星星
for(int i=0; i<MAXSTAR; i++)
{
InitStar(i);
star[i].x = rand() % 640;
}
// 绘制星空,按任意键退出
while(!kbhit())
{
for(int i=0; i<MAXSTAR; i++)
MoveStar(i);
Sleep(20);
}
closegraph(); // 关闭图形窗口
}
*/
4)
/*
#include <graphics.h>
#include <conio.h>
void main()
{
float H, S, L;
initgraph(640, 480);
// 画渐变的天空(通过亮度逐渐增加)
H = 190; // 色相
S = 1; // 饱和度
L = 0.7f; // 亮度
for(int y = 0; y < 480; y++)
{
L += 0.0005f;
setcolor( HSLtoRGB(H, S, L) );
line(0, y, 639, y);
}
// 画彩虹(通过色相逐渐增加)
H = 0;
S = 1;
L = 0.5f;
setlinestyle(PS_SOLID, NULL, 2); // 设置线宽为 2 for(int r = 400; r > 344; r--)
{
H += 5;
setcolor( HSLtoRGB(H, S, L) );
circle(500, 480, r);
}
getch();
closegraph();
}
*/
5)
#include <graphics.h>
#include <conio.h>
void main()
{
// 初始化图形窗口
initgraph(640, 480);
MOUSEMSG m; // 定义鼠标消息
while(true)
{
// 获取一条鼠标消息
m = GetMouseMsg();
switch(m.uMsg)
{
case WM_MOUSEMOVE:
// 鼠标移动的时候画红色的小点
putpixel(m.x, m.y, RED);
break;
case WM_LBUTTONDOWN:
// 如果点左键的同时按下了 Ctrl 键
if (m.mkCtrl)
// 画一个大方块
rectangle(m.x-10, m.y-10, m.x+10, m.y+10);
else
// 画一个小方块
rectangle(m.x-5, m.y-5, m.x+5, m.y+5);
break;
case WM_RBUTTONUP:
return; // 按鼠标右键退出程序}
}
// 关闭图形窗口
closegraph();
}。

相关文档
最新文档