求一用C语言画直线的程序

Python013

求一用C语言画直线的程序,第1张

C语言的话画直线用MoveTo()和LineTo()很简单啊。

帮你复制一份我学习时老师给的画线两例:

#include<graphics.h>

#include<math.h>

/*

###############################################################################

功 能:本函数的作用是用逐点比较法来画一条直线

格 式:void myline1(int x1,int y1,int x2,int y2,int color)

参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色

调用示例:myline1(10,20,500,440,4)

###############################################################################

*/

void myline1(int x1,int y1,int x2,int y2,int color)

{

/*变量定义开始(2007/10/16增加)*/

int iTx/*x轴终点的相对坐标xa或临时变量*/

int iTy/*y轴终点的相对坐标ya或临时变量*/

int iDx/*x轴方向的步长dx*/

int iDy/*y轴方向的步长dy*/

int iFt/*偏差Fm*/

int iSt/*记数循环数(dx+dy)S*/

int iXt/*x方向循环变量xm*/

int iYt/*y方向循环变量ym*/

/*变量定义结束*/

/*变量初始化开始*/

/*如果是第三象限或第四象限则换成第一或第二象限*/

if(y2<y1)

{

iTx=x1

x1=x2

x2=iTx

iTy=y1

y1=y2

y2=iTy

}

iTx=x2-x1/*取x轴的相对坐标*/

iTy=y2-y1/*取y轴的相对坐标*/

iDx=1

iDy=1

iFt=0

iSt=iTx+iTy

if(iTx<0)iSt=-1*iTx+iTy/*如果在第二象限,则x轴方向步长取负值*/

iXt=0

iYt=0

/*变量初始化结束*/

/*数据处理开始*/

while(iSt>0)

{

putpixel(x1+iXt,y1+iYt,color)

if(iTx>=0) /*如果在第一象限*/

{

if(iFt<0) /*如果偏差小于0*/

{

iYt+=iDy/*y方向走一步*/

iFt+=iTx

}

else /*如果偏差大于或等于0*/

{

iXt+=iDx/*x方向走一步*/

iFt-=iTy

}

}

else

{

if(iFt<0) /*如果偏差小于0*/

{

iXt-=iDx/*负x方向走一步*/

iFt+=iTy

}

else /*如果偏差大于或等于0*/

{

iYt+=iDy/*y方向走一步*/

iFt+=iTx

}

}

iSt--

}

}

/*

###############################################################################

功 能:本函数的作用是用来画一条直线

格 式:void myline2(int x1,int y1,int x2,int y2,int color)

参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色

调用示例:myline2(10,20,500,440,4)

###############################################################################

*/

int myline2(int x1,int y1,int x2,int y2,int color)

{

int iX/*x方向的坐标变量*/

int iY/*y方向的坐标变量*/

int iTx/*x方向的步长变量*/

int iTy/*y方向的步长变量*/

float fDx/*x方向的差分变量*/

float fDy/*y方向的差分变量*/

float fMinf/*算法中的f*/

float fMaxF/*算法中的F*/

float fS/*终点判断变量*/

fMinf=0.5/*f=0.5*/

iX=x1

iY=y1

putpixel(x1,y1,color)

if(x1==x2&&y1==y2) /*如果终点和起始点相同*/

{

return(1)

}

iTx=1

iTy=1

fDx=(float)(x2-x1)

fDy=(float)(y2-y1)

fMaxF=fDy/fDx>0?fDy/fDx:(-fDy/fDx)/*F=|dy/dx|*/

if(fDx<0)iTx=-1

if(fDy<0)iTy=-1

fS=fDx>0?fDx:(-fDx)

if(fMaxF==1) /*如果F=1*/

{

iX=x1

iY=y1

while(fS>0)

{

iX+=iTx/*x方向走一步*/

iY+=iTy/*y方向走一步*/

putpixel(iX,iY,color)

fS--

}

}

else if(fMaxF>1) /*如果F>1*/

{

fS+=fDy>0?fDy:(-fDy)

while(fS>0)

{

iY+=iTy/*y方向走一步*/

putpixel(iX,iY,color)

fMinf+=1/fMaxF/*f=f+1/F*/

fS--

if(fMinf>=1) /*如果f>=1*/

{

iX+=iTx/*x方向走一步*/

fMinf--/*f=f-1*/

putpixel(iX,iY,color)

fS--

}

}

}

else /*如果F<1*/

{

fS+=fDy>0?fDy:(-fDy)

while(fS>0)

{

iX+=iTx/*x方向走一步*/

putpixel(iX,iY,color)

fMinf+=fMaxF/*f=f+F*/

fS--

if(fMinf>=1) /*如果f>=1*/

{

iY+=iTy/*y方向走一步*/

fMinf--/*f=f-1*/

putpixel(iX,iY,color)

fS--

}

}

}

}

线与在C语言里是什么意思 线与是或。在电路中线与就是把两根线接到一起,如果任意一条线有讯号那么输出就有讯号。所以线与的意思为或。 第一条线的讯号表示为A,第二条线表示为B,则线与即A||B。

a%d在c语言里是什么意思

求余 5%3=2

static在C语言里是什么意思

写在区域性变数前面表示变数是静态变数,函式呼叫结束后变数不回收。

写在全域性变数前面,表示静态全域性变数,该变数只能在本档案中访问,不可以被其余地方extern

initialized在c语言里是什么意思

1、initialize 是指初始化;initialized 是指初始化完毕。

2、初始化就是一个系统或程式,为执行所作的一些准备工作。初始化完毕后,则该系统或程式已经准备完毕,处于正常工作状态,可以进行各种操作。

bon在c语言里是什么意思?

bon 不是c 语言保留字,不是标准函式名。应当是使用者自定义 变数或函式名。

bon 在法语里 的 意思 等于 英文 good,等于 中文 好 的意思。

HandleType在c语言里是什么意思

HandleType -- 词意 控制代码型别。

C++ 中,有许许多多控制代码型别,例如:

HANDLE -- 一个物件的控制代码

HBITMAP -- 点阵图的控制代码

HBRUSH -- 绘图刷的控制代码

HCURSOR -- 游标的控制代码

HFONT -- 字型的控制代码

控制代码,就是操纵杆,抓住这个操纵杆,就操作这个物件。

C 中 没有 这个 概念. (略像: typedef 结构 name).

====

HandleType如果是 C 里的:

main(){

typedef int Handle

Handle Type

Type = 123

printf("%d",Type)

return 0

}

结果 123

print在C语言里是什么意思

我搜遍了所有的 Turbo C 语言标头档案,发现 LIST2.H 和 STACK2.H 中分别有以下函式定义:

LIST2.H

Borland C++ - (C) Copyright 1991 by Borland International list2.h: A Integer List Class from Hands-on C++const int Max_elem = 10class List{protected: The protected keyword gives subclassesdirect aess to inherited members int *listAn array of integers int nmax The dimension of the array int nelemThe number of elementspublic: List(int n = Max_elem) {list = new int[n]nmax = nnelem = 0} ~List() {delete list} int put_elem(int, int) int get_elem(int&, int) void setn(int n) {nelem = n} int getn() {return nelem} void in() {if (nelem <nmax) ++nelem} int getmax() {return nmax} virtual void print() line 22}

STACK2.H

Borland C++ - (C) Copyright 1991 by Borland International stack2.h: A Stack class derived from the List class from Getting Started#include "list2.h"class Stack : public List line 5{ int public: Stack() { = 0} Stack(int n) : List(n) { = 0} line 11 int push(int elem) int pop(int&elem) void print()}

都有 print 函式,但是没有函式体。

通过网路也无法查到相关资讯。

自己摸索吧。。。

case在c语言里是什么意思

case是用于开关语句中的关键字。 开关语句,又称switch语句,由关键字switch搭配若干个case及可能存在的default语句,共同组建成的一种分支结构语句。其一般形式为 switch(表示式) { case 常量表达式1:语句1.... case 常量表达式2:语句2defa

cin在C语言里是什么意思

在c语言中cin是无任何意义的。在c++中是输入函式。

C语言是一门通用计算机程式语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低阶储存器、产生少量的机器码以及不需要任何执行环境支援便能执行的程式语言。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

%7.3在c语言里是什么意思

%7.3f表示输出实数时,保留3位小数,7是总的字元宽度。若保留3位小数,总宽度超过7,则按实际位数显示。