Пример #1
0
//void SimpleDrawTest(cdCanvas* canvas)
void SimpleDrawVectorFont(cdCanvas* canvas)
{
  cdBackground(CD_WHITE);
  cdClear();
  cdLineStyle(CD_CONTINUOUS);
  cdLineWidth(1);

//  wdVectorText(0.1, 0.4, "ãõñç áéíóú àèìòù âêîôû äëïöü");
//  wdVectorText(0.1, 0.2, "ÃÕÑÇ ÁÉÍÓÚ ÀÈÌÒÙ ÂÊÎÔÛ ÄËÏÖÜ ");
  cdVectorFont("../etc/vectorfont26.txt"); /* original Simplex II */
  {
    int i;
    char t[2];
    char s[10];
    int x = 10;
    int y = 600;
    t[1] = 0;
  cdFont(CD_COURIER, CD_BOLD, 14);
  cdVectorCharSize(25);
    for (i = 128; i < 256; i++)
    {
      int dx = 30;
      t[0] = (char)i;
      sprintf(s, "%3d", i);
      cdForeground(CD_DARK_RED);
      cdText(x, y, s);
//      cdText(x+dx, y, t);
      cdForeground(CD_BLACK);
      cdVectorText(x+2*dx-10, y, t);
      
      x += 3*dx;
      if ((i+1) % 8 == 0)
      {
        x = 10;
        y -= 30;
      }
    }
  //cdFont(CD_TIMES_ROMAN, CD_PLAIN, 24);
  //cdVectorCharSize(24);
  //  for (i = 192; i < 256; i++)
  //  {
  //    int dx = 92;
  //    t[0] = (char)i;
  //    sprintf(s, "%d", i);
  //    cdText(x, y, s);
  //    cdText(x+dx, y, t);
  //    cdVectorText(x+2*dx, y, t);
  //    
  //    x += 3*dx + 2*dx/3;
  //    if ((i+1) % 4 == 0)
  //    {
  //      x = 30;
  //      y += 52;
  //    }
  //  }
  }
}
Пример #2
0
static int drawcb(Ihandle *h, int lin, int col,int x1, int x2, int y1, int y2)
{
  if (lin < 5 || lin > 12 || col < 2 || col > 8)
    return IUP_IGNORE;

  cdForeground(CD_RED);
  cdLine(x1, y1, x2, y2);
  cdLine(x1, y2, x2, y1);

  {
    char s[50];
    sprintf(s, "%d:%d", lin, col);
    cdTextAlignment(CD_CENTER);
    cdText((x1+x2)/2, (y1+y2)/2, s);
  }

  return IUP_DEFAULT;
}
Пример #3
0
void draw(void)
{
	cdMarkSize(5);
	cdMarkType(CD_PLUS);
	cdMark(10,90);
	cdMarkType(CD_STAR);
	cdMark(20,90);
	cdMarkType(CD_CIRCLE);
	cdMark(30,90);
	cdMarkType(CD_X);
	cdMark(40,90);
	cdMarkType(CD_BOX);
	cdMark(50,90);
	cdMarkType(CD_DIAMOND);
	cdMark(60,90);
	cdMarkType(CD_HOLLOW_CIRCLE);
	cdMark(70,90);
	cdMarkType(CD_HOLLOW_BOX);
	cdMark(80,90);
	cdMarkType(CD_HOLLOW_DIAMOND);
	cdMark(90,90);

	cdLineStyle(CD_CONTINUOUS);
	cdLine(10,80,80,80);
	cdLineStyle(CD_DASHED);
	cdLine(10,75,80,75);
	cdLineStyle(CD_DOTTED);
	cdLine(10,70,80,70);
	cdLineStyle(CD_DASH_DOT);
	cdLine(10,65,80,65);
	cdLineStyle(CD_DASH_DOT_DOT);
	cdLine(10,60,80,60);

	cdLineStyle(CD_CONTINUOUS);

	cdHatch(CD_HORIZONTAL);

	cdBegin(CD_FILL);
	cdVertex(10,50);
	cdVertex(50,50);
	cdVertex(50,10);
	cdVertex(10,10);
	cdEnd();

	cdHatch(CD_VERTICAL);
	cdBegin(CD_FILL);
	cdVertex(60,50);
	cdVertex(100,50);
	cdVertex(100,10);
	cdVertex(60,10);
	cdEnd();

	cdHatch(CD_FDIAGONAL);
	cdBegin(CD_FILL);
	cdVertex(110,50);
	cdVertex(150,50);
	cdVertex(150,10);
	cdVertex(110,10);
	cdEnd();

	cdHatch(CD_BDIAGONAL);
	cdBegin(CD_FILL);
	cdVertex(160,50);
	cdVertex(200,50);
	cdVertex(200,10);
	cdVertex(160,10);
	cdEnd();

	cdHatch(CD_CROSS);
	cdBegin(CD_FILL);
	cdVertex(210,50);
	cdVertex(250,50);
	cdVertex(250,10);
	cdVertex(210,10);
	cdEnd();

	cdHatch(CD_DIAGCROSS);
	cdBegin(CD_FILL);
	cdVertex(260,50);
	cdVertex(300,50);
	cdVertex(300,10);
	cdVertex(260,10);
	cdEnd();

	cdFont(CD_SYSTEM,CD_BOLD,CD_STANDARD);
	cdText(10,100,'Teste');
	cdFont(CD_COURIER,CD_BOLD,CD_STANDARD);
	cdText(60,100,'Teste');
	cdFont(CD_TIMES_ROMAN,CD_BOLD,CD_STANDARD);
	cdText(110,100,'Teste');
	cdFont(CD_HELVETICA,CD_BOLD,CD_STANDARD);
	cdText(160,100,'Teste');
}
Пример #4
0
int main()
{
    // you must create a pointer to the image(s) that you will be using
    // not suprisingly, it is of type cdImagePtr
    cdImagePtr im;

    // this is a pointer to the output file you will be using
    FILE *outf;

    // these will be index's into the color palette containing
    // the corresponding colors
    int black, white, blue;


    // Create an image 800 pixels wide by 400 pixels high
    im = cdImageCreate( 800, 400 );

    // allocate some colors (isn't this fun?)
    // the first color allocated is the background color
    white = cdImageColorAllocate( im, 255, 255, 255 );
    black = cdImageColorAllocate( im, 0, 0, 0 );
    blue  = cdImageColorAllocate( im, 0, 0, 255 );


    // set the text attributes
    // font, colorindex, and size respectivily

    // font is the style the text is written in. 1 is for Times,
    // 5 is for Helvetica.
    // we will have black text for this one
    // Size is a tough one,  but larger numbers give larger text.
    //
    if ( !( cdSetTextAttrib( im, 5, black, 20 ) ) )
        return 1;

    // Set some line attributes,  lets make lines solid, width 1, and blue
    //
    if ( !( cdSetLineAttrib( im, 1, 1, blue ) ) )
        return 1;

    // Draw a couple of grid lines
    if ( !( cdLine( im, 0, 200, 799, 200 ) ) )
        return 1;
    if ( !( cdLine( im, 200, 0, 200, 399 ) ) )
        return 1;
    if ( !( cdLine( im, 600, 0, 600, 399 ) ) )
        return 1;


    // Show Text going left, up, down, and right, all starting
    // from the same point

    // Text going to the left
    if ( !( cdSetTextPath( im, 1 ) ) )
        return 1;
    if ( !( cdText( im, 200, 200, "Text Left" ) ) )
        return 1;

    // Text going UP
    if ( !( cdSetTextPath( im, 2 ) ) )
        return 1;
    if ( !( cdText( im, 200, 200, "Text Up" ) ) )
        return 1;

    // Text going DOWN
    if ( !( cdSetTextPath( im, 3 ) ) )
        return 1;
    if ( !( cdText( im, 200, 200, "Text Down" ) ) )
        return 1;

    // Text going to the RIGHT
    if ( !( cdSetTextPath( im, 0 ) ) )
        return 1;
    if ( !( cdText( im, 200, 200, "Text Right" ) ) )
        return 1;

    // Show text going at an angle of 0, 45, 90, 135, 180 Degrees
    //

    // Text at no angle
    if ( !( cdText( im, 600, 200, "CGM Draw" ) ) )
        return 1;

    // Text, 45 Degree Angle
    if ( !( cdSetTextOrient( im, -1, 1, 1, 1 ) ) )
        return 1;
    if ( !( cdText( im, 600, 200, "CGM Draw" ) ) )
        return 1;

    // Text, 90 Degree Angle
    if ( !( cdSetTextOrient( im, -1, 0, 0, 1 ) ) )
        return 1;
    if ( !( cdText( im, 600, 200, "CGM Draw" ) ) )
        return 1;

    // Text, 135 Degree Angle
    if ( !( cdSetTextOrient( im, -1, -1, -1, 1 ) ) )
        return 1;
    if ( !( cdText( im, 600, 200, "CGM Draw" ) ) )
        return 1;

    // Text, 180 Degree Angle
    if ( !( cdSetTextOrient( im, 0, -1, -1, 0 ) ) )
        return 1;
    if ( !( cdText( im, 600, 200, "CGM Draw" ) ) )
        return 1;

    // Skewed Text, No Angle
    if ( !( cdSetTextOrient( im, 1, 1, 1, 0 ) ) )
    {
        return 1;
    }
    if ( !( cdSetTextAttrib( im, -1, -1, 40 ) ) )
    {
        return 1;
    }
    if ( !( cdText( im, 300, 300, "CGM Draw" ) ) )
    {
        return 1;
    }
    // show some lines around it
    if ( !( cdLine( im, 300, 300, 500, 300 ) ) )
        return 1;
    if ( !( cdLine( im, 300, 300, 340, 340 ) ) )
        return 1;

    // reset the text to 0 angle
    if ( !( cdSetTextOrient( im, 0, 1, 1, 0 ) ) )
        return 1;


    if ( !( cdSetTextAttrib( im, 5, -1, 20 ) ) )
        return 1;
    if ( !( cdText( im, 5, 5, "G. Edward Johnson" ) ) )
        return 1;

    // now write the file out, lets call it cdtext.cgm
    outf = fopen( "cdtext.cgm", "wb" );
    if ( !outf )
        return 1;
    cdImageCgm( im, outf );
    fclose( outf );
    outf = 0;

    // Remember to destroy the image when you are done
    cdImageDestroy( im );
    im = 0;

    printf( "CGM Text Example!!!\n" );

    return 0;
}