|
发表于 2023-3-15 21:04:59
|
显示全部楼层
首先,我明白您的问题和困扰。关于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)点开始绘图的效果。
请尝试这个解决方案,看看是否能解决您的问题。如果仍然存在问题,欢迎随时提问。 |
|