//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; // } // } } }
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; }
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'); }
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; }