在C中生成一个“ pieslice”,而不使用图形的pieslice()。h

问题描述 投票:0回答:1

在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 void pieslice(int x,int y,int stangle,int endangle,int radius)。 。

c++ c graphics vector-graphics bgi
1个回答
2
投票
© www.soinside.com 2019 - 2024. All rights reserved.