在BGI库的“ graphics.h”标头中,该标头文件中有一个函数pieslice,其语法为:]]
#include <graphics.h> void pieslice(int x, int y, int stangle, int endangle, int radius);
[[x,y是圆的中心,角和终止角分别是起始角和终止角]]
我们可以在不使用BGI库的内置函数的情况下用C / C ++制作切片吗?请提供帮助。尝试借助直线和中点圆生成算法进行制作。
到目前为止,我的代码:
#include<stdio.h> #include<graphics.h> static const double PI =3.141592 int main() { int gd=DETECT,gm; initgraph(&gd,&gm,NULL); int xc,yc,r,st_angle,ed_angle,k; printf("Enter the centers of pieslice:\n"); scanf("%d %d",&xc,&yc); printf("Enter the radius:\n"); scanf("%d",&r); printf("Enter the starting angle:\n"); scanf("%d",&st_angle); printf("Enter the end angle:\n"); scanf("%d",&ed_angle); for(k=st_angle; k<=ed_angle;k++) { double radians =(PI /180.0) * k; int X = xc+ cos(radians) * r; int Y = yc+ sin(radians) * r; putpixel(x,y,WHITE); delay(5000); } getch(); }
我能够在使用圆的参数方程式的情况下进行计算,但是无法使用
graphics.h
函数生成图形。一些帮助会很好。预先谢谢你。
另外,我的线条图代码:
#include<stdio.h> #include<graphics.h> void main() { int x1,y1,x2,y2,dx,dy,p; int gd=DETECT,gm; initgraph(&gd,&gm,NULL); printf("Enter the values of x1,y1:\n"); scanf("%d %d",&x1,&y1); printf("Enter the values of x2,y2:\n"); scanf("%d %d",&x1,&y2); dx=x2-x1; dy=y2-y1; p=2*dy-dx; putpixel(x1,y1,3); for(int k=0;k<dx;k++); { if(p<0) { x1++; p=p+2*dy; } else { x1++; y1++; p=p+2*dy-2*dx; } putpixel(x1,y1,4); delay(100); } }
还有我的中点圆生成代码:
#include <stdio.h> #include <graphics.h> int main() { int gd=DETECT,gm; int x=20,i; initgraph(&gd,&gm,NULL); for(i=0;i<100;i++) { circle(x,100,30); x++; delay(20); cleardevice(); } closegraph(); return 0; }
我无法将它们混合在一个代码中,所以这就是为什么我尝试使用三角方程的原因。
在BGI库的“ graphics.h”标头中,该标头文件中包含函数pieslice,其语法为:#include