Dev-c++绘图时设置原点函数setorigin执行错误
#include <graphics.h>#include <math.h>
#include <conio.h>
#define PI 3.1415926
int main()
{
initgraph(640,480);
setcolor(GREEN);
setorigin(320,240);
double e;
int x1,y1,x2,y2;
for(double a=0;a<2*PI;a+=2*PI/720)
{
e=100*(1+sin(4*a));
x1=(int)(e*cos(a));
y1=(int)(e*sin(a));
x2=(int)(e*cos(a+PI/5));
y2=(int)(e*sin(a+PI/5));
line(x1,y1,x2,y2);
Sleep(20);
}
getch();
closegraph();
}
这个程序用Dev-c++运行会显示“ 'setorigin' was not declared in this scope”,我已经下载了支持“graphics.h"的ege函数包,但是设置原点函数”setorigin()"会报错,只有注释掉才能运行,但是只能在(0,0)点绘图,达不到展示全部绘图结果,孩子已经查了好多资料了还是解决不了,该怎么办啊 首先,我明白您的问题和困扰。关于Dev-C++使用graphics.h库的问题,我提供一个解决方案。
实际上,setorigin()函数并不是graphics.h库中的函数,您可以使用setviewport()来代替它。您可以将程序修改为如下形式:
#include <graphics.h>
#include <math.h>
#include <conio.h>
#define PI 3.1415926
int main()
{
initgraph(640, 480);
setcolor(GREEN);
setviewport(320, 240, 640, 480, 1); // 使用setviewport()代替setorigin()
double e;
int x1, y1, x2, y2;
for (double a = 0; a < 2 * PI; a += 2 * PI / 720)
{
e = 100 * (1 + sin(4 * a));
x1 = (int)(e * cos(a));
y1 = (int)(e * sin(a));
x2 = (int)(e * cos(a + PI / 5));
y2 = (int)(e * sin(a + PI / 5));
line(x1, y1, x2, y2);
Sleep(20);
}
getch();
closegraph();
}
这里,我将setorigin()函数替换为setviewport()。setviewport()函数的前四个参数分别是视口的左上角和右下角坐标,最后一个参数是裁剪选项。
在这个例子中,视口左上角坐标为(320, 240),右下角坐标为(640, 480),最后一个参数为1,表示启用裁剪。通过这种方式,您可以实现在(320, 240)点开始绘图的效果。
请尝试这个解决方案,看看是否能解决您的问题。如果仍然存在问题,欢迎随时提问。 isdkz 发表于 2023-3-15 21:04
首先,我明白您的问题和困扰。关于Dev-C++使用graphics.h库的问题,我提供一个解决方案。
实际上,setor ...
这也显示不全图案啊
页:
[1]