RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
c语言坐标系函数图像 c语言中坐标怎么表示

c语言编出的图形如直线是以左上角为(0,0)点如何调整成符合习惯的坐标系

c语言本身是无法调整的,但是如果为了使用原点为左下角的坐标系完全可以用坐标变

成都创新互联专注于澄迈企业网站建设,成都响应式网站建设公司,电子商务商城网站建设。澄迈网站建设公司,为澄迈等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

换实现,你只需要自己写一个自己的直线函数,即参数为以左下角为原点的直线的端点

的直线函数。并在函数中作一次坐标变换就可以了,举个例子:

#include graphics.h

#include stdlib.h

#include stdio.h

#include conio.h

/*直线函数*/

void myline(int x1, int y1, int x2, int y2)

{

int ymax = getmaxy(); /*获得屏幕最低点的y坐标*/

y1 = ymax - y1; /*坐标变换*/

y2 = ymax - y2;

line(x1, y1, x2, y2);

}

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

int xmax, ymax;

/* initialize graphics and local variables */

initgraph(gdriver, gmode, "h:\\work\\tc3\\bgi");

/* read result of initialization */

errorcode = graphresult();

/* an error occurred */

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

setcolor(getmaxcolor());

xmax = getmaxx();

ymax = getmaxy();

/* 这是原来的直线函数*/

line(0, 0, xmax, ymax);

/* 这是变换后的直线函数*/

myline(0,0,xmax,ymax);

/* clean up */

getch();

closegraph();

return 0;

}

不过不推荐使用这种方法,其实,坐标原点在哪里都是一样的,用习惯就好了。

c语言 坐标

#include "Conio.h"

#include "graphics.h"

#define closegr closegraph

void initgr(void) /* BGI初始化 */

{

int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */

registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */

initgraph(gd, gm, "");

}

void DrawCoord();

void Drawstg();

void Drawcurve();

int main(void)

{

initgr(); /* BGI初始化 */

DrawCoord();

Drawstg();

Drawcurve();

getch(); /* 暂停一下,看看前面绘图代码的运行结果 */

closegr(); /* 恢复TEXT屏幕模式 */

return 0;

}

void DrawCoord() /*画坐标系*/

{

line(50,40,50,400); /*y轴*/

line(50,400,600,400); /*x轴*/

line(50,40,45,50); /*箭头*/

line(50,40,55,50);

line(600,400,590,395);

line(600,400,590,405);

outtextxy(35,45,"y");

outtextxy(590,410,"x");

outtextxy(40,410,"O");

}

void Drawstg() /*画标尺*/

{

int x,y,i;

x=50,y=400;

for(i=0;i17;i++)

{

line(x+5,y,x,y);

y-=20;

}

x=50,y=400;

for(i=0;i26;i++)

{

line(x,y-5,x,y);

x+=20;

}

}

void Drawcurve()/*画图示例*/

{

line(50,400,500,400-250);

}

用c语言写程序,此程序能画出来函数y=2x+5的曲线图形。

此题把数学问题转化为用C语言描述即可,很多画图问题可以使用这种方法。

假设屏幕左上角为坐标轴原点

也就是把我们的屏幕当作第一象限时,代码如下

#include stdio.h

#define  MAX   30  // 选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷

int main()

{

int x, y;

for (y = 0; y  MAX; y++)  // 因为我们的光标是向下,向右增长。这里设定y为纵坐标

{

for (x = 0; x  MAX; x++)

{

if (y == 2 * x + 5)

{

printf("*");  

}

else

{

printf(" ");  // 空格,不满足y=2x+5的点

}

}

printf("\n"); // x轴已经到显示范围,所以需要换行。

}

return 0;

}

2. 更换坐标轴原点显示

#include stdio.h

#define  MAX   30  // 选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷

int main()

{

int x, y;

for (y = 30; y = 0; y--)  

{

for (x = 0; x  MAX; x++)

{

if (y == 2 * x + 5)

{

printf("*");  

}

else

{

printf(" ");  // 空格,不满足y=2x+5的点

}

}

printf("\n"); // x轴已经到显示范围,所以需要换行。

}

return 0;

}


分享名称:c语言坐标系函数图像 c语言中坐标怎么表示
转载注明:http://cqwzjz.cn/article/ddoccjj.html