Проблема с Floodfill

Тема в разделе "Общие вопросы по С и С++", создана пользователем AntonKos, 17 дек 2008.

  1. AntonKos

    AntonKos Гость

    Помогите плиз.Рисую 2 дуги.Ограничиваю их линями чтобы была ограниченная область,и далее floodfill.При любых значения. кроме 0 и getmaxcolor()
    весь экран закрашивается БЕЛЫМ ЦВЕТОМ!!!
    программа:
    #include <math.h>
    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>

    int X,Y,i,j;
    float x[4]={-5.08,5.08},y[4]={0.0,0.0};
    float pi,phi,cos_phi,sin_phi,dx,dy,x0=319,y0=238,r=150;

    double midX,midY;
    int k;
    float delta;
    int massive_dannux[6]={4096,8192,10,2048,456,5881};
    double X1,Y1;
    float maxdlina,duga;
    double alfa_rad,alfa_grad;
    double cos_alfa_grad,sin_alfa_grad,cos_alfa_rad,sin_alfa_rad;
    void main()
    {
    /* request auto detection */
    int gdriver = DETECT, gmode, errorcode;

    /* initialize graphics mode */
    initgraph(&gdriver, &gmode, "");

    /* read result of initialization */
    errorcode = graphresult();

    if (errorcode != grOk) /* an error occurred */
    {
    printf("Graphics error: %s\n", grapherrormsg(errorcode));
    printf("Press any key to halt:");
    getch();
    exit(1); /* return with error code */
    }

    directvideo = 1;
    /*DRAW OMETKI*/
    pi=4.0*atan(1.0);phi=-10*pi/180;
    cos_phi=cos(phi);
    sin_phi=sin(phi);
    for (j=0;j<4;j++){x[j]+=x0+r;y[j]+=y0;}
    for(i=-1;i<17;i++)
    {
    for (j=0;j<4;j++)
    {
    dx=x[j]-x0;
    dy=y[j]-y0;
    x[j]=x0+dx*cos_phi-dy*sin_phi;
    y[j]=y0+dx*sin_phi+dy*cos_phi;
    }
    moveto(x[0],y[0]);
    for(j=1;j<=3;j++)
    lineto(x[j],y[j]);
    lineto(x[1],y[1]);
    }
    /* draw a rectangle */
    X=getmaxx();
    Y=getmaxy();
    rectangle(1,1,X,Y);
    /*draw arc N1*/
    midX=getmaxx() /2;
    midY=getmaxy() /2;
    arc(midX,midY,0,180,200);
    printf("midY =%lf %lf",midX,midY);
    setlinestyle(0,1,1);
    moveto(519,239);
    linerel(-20,0);
    moveto(119,239);
    linerel(20,0);
    /*draw arc N2*/

    arc(midX,midY,0,180,180);

    /*Zakrashivanie dugi*/
    setcolor(10);
    setbkcolor(RED);
    floodfill (120,237,getmaxcolor());

    /*POLOZHENIE TO4KI*/

    maxdlina=8192.0;
    duga=180.0;
    delta=maxdlina/duga;

    for (k=0;k<=6;k++)
    {
    alfa_grad=massive_dannux[k]/delta;
    alfa_rad=alfa_grad*pi/180;
    cos_alfa_rad=cos(alfa_rad);
    sin_alfa_rad=sin(alfa_rad);

    X1=r*cos_alfa_rad+319;
    Y1=r*sin_alfa_rad*(-1)+239;

    moveto(x0,y0);
    lineto(X1,Y1);

    }

    /* clean up */
    getch();
    closegraph();


    }


    ПОМОГИТЕ РАЗОБРАТЬСЯ!
     
  2. AntonKos

    AntonKos Гость

    Спасибо тому кто откликнулся........
     
  3. AntonKos

    AntonKos Гость

    С ФЛУДФИЛОМ так проблема и осталась...помогите плиз.Перед ним ставил setfillstyle.Вроде все закрашивает.Но когда в окружности закрашеной надо ещё одну окружность нарисовать и закрасить другим цветом то снова все становится белым или под цвет последнего лавинного залива.
     
Загрузка...
Похожие Темы - Проблема Floodfill
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    52
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    30
  3. c0de3r
    Ответов:
    5
    Просмотров:
    153
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    158
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    144

Поделиться этой страницей