//
// Unicode Pace Flag
//
// Copyright (C) 2005 Rafael Laboissiere
//
//
// This file is part of PLplot.
//
// PLplot is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Library Public License as published
// by the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// PLplot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with PLplot; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
//
//
// In Debian, run like this:
//
// PLPLOT_FREETYPE_SANS_FONT=/usr/share/fonts/truetype/arphic/bkai00mp.ttf \
// PLPLOT_FREETYPE_SERIF_FONT=/usr/share/fonts/truetype/freefont/FreeSerif.ttf \
// PLPLOT_FREETYPE_MONO_FONT=/usr/share/fonts/truetype/ttf-devanagari-fonts/lohit_hi.ttf \
// PLPLOT_FREETYPE_SCRIPT_FONT=/usr/share/fonts/truetype/unfonts/UnBatang.ttf \
// PLPLOT_FREETYPE_SYMBOL_FONT=/usr/share/fonts/truetype/ttf-bangla-fonts/JamrulNormal.ttf \
// ./x24 -dev png -drvopt smooth=0 -o x24cxx.png
//
// Packages needed:
//
// ttf-arphic-bkai00mp
// ttf-freefont
// ttf-indic-fonts
// ttf-unfonts
// ttf-bangla-fonts
//
//
#include "plc++demos.h"
class x24 {
public:
x24(int, char **);
private:
plstream *pls;
static PLINT red[], green[], blue[];
static PLFLT px[], py[], sx[], sy[];
static char *peace[];
};
PLINT x24::red[] = {240, 204, 204, 204, 0, 39, 125};
PLINT x24::green[] = {240, 0, 125, 204, 204, 80, 0};
PLINT x24::blue[] = {240, 0, 0, 0, 0, 204, 125};
PLFLT x24::px[] = {0.0, 0.0, 1.0, 1.0};
PLFLT x24::py[] = {0.0, 0.16667, 0.16667, 0.0};
PLFLT x24::sx[] = {
0.16374,
0.15844,
0.15255,
0.17332,
0.50436,
0.51721,
0.49520,
0.48713,
0.83976,
0.81688,
0.82231,
0.82647
};
PLFLT x24::sy[] = {
0.11341,
0.35481,
0.61621,
0.86525,
0.13249,
0.37995,
0.61584,
0.86303,
0.13901,
0.30533,
0.63165,
0.87598
};
/* Taken from http://www.columbia.edu/~fdc/pace/ */
char* x24::peace[] = {
/* Mandarin */
"#<0x00>和平",
/* Hindi */
"#<0x20>शांति",
/* English */
"#<0x10>Peace",
/* Hebrew */
"#<0x10>שלום",
/* Russian */
"#<0x10>Мир",
/* German */
"#<0x10>Friede",
/* Korean */
"#<0x30>평화",
/* French */
"#<0x10>Paix",
/* Spanish */
"#<0x10>Paz",
/* Arabic */
"#<0x10>ﺳﻼم",
/* Turkish*/
"#<0x10>Barış",
/* Kurdish */
"#<0x10>Hasîtî",
};
x24::x24(int argc, char *argv[])
{
int i, j;
pls = new plstream();
pls->parseopts (&argc, argv, PL_PARSE_FULL);
pls->init ();
pls->adv (0);
pls->vpor (0.0, 1.0, 0.0, 1.0);
pls->wind (0.0, 1.0, 0.0, 1.0);
pls->col0 (0);
pls->box("", 1.0, 0, "", 1.0, 0);
pls->scmap0n (7);
pls->scmap0 (red, green, blue, 7);
pls->schr (0, 4.0);
pls->font (1);
for (i = 0; i < 6; i++) {
pls->col0 (i + 1);
pls->fill (4, px, py);
for (j = 0; j < 4; j++)
py [j] += 1.0 / 6.0;
}
pls->col0 (0);
for (i = 0; i < 12; i++)
pls->ptex (sx [i], sy [i], 1.0, 0.0, 0.5, peace [i]);
delete pls;
}
int main( int argc, char **argv )
{
x24 *x = new x24( argc, argv );
delete x;
}
syntax highlighted by Code2HTML, v. 0.9.1