利用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),在该类中画图的基本功能都有。

  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();
}。

相关文档
最新文档