color input for text/grids (color1), background (color0)
and graphs (color2-22) on Windows via set color2=red set color2=rgb:ff/0/0 set color2=rgbd:255,0,0 several examples given in the example files
This commit is contained in:
parent
fadd70c4fa
commit
1539887006
|
|
@ -1,10 +1,10 @@
|
||||||
* test de titré
|
* test de titré
|
||||||
.control
|
.control
|
||||||
set hcopydevtype = postscript
|
set hcopydevtype = postscript
|
||||||
set hcopypscolor=25
|
set hcopypscolor=18
|
||||||
set hcopypstxcolor=21
|
set hcopypstxcolor=21
|
||||||
set hcopyscale=1
|
set hcopyscale=1
|
||||||
set color2=rgb:F/0/0
|
set color2=rgb:FF/0/0
|
||||||
setcs hcopyfont=Arial
|
setcs hcopyfont=Arial
|
||||||
set hcopyfontsize=18
|
set hcopyfontsize=18
|
||||||
|
|
||||||
|
|
@ -18,8 +18,6 @@ setcs xfont='Noto Sans Chinese'
|
||||||
set gridwidth=4
|
set gridwidth=4
|
||||||
set xbrushwidth=1
|
set xbrushwidth=1
|
||||||
|
|
||||||
hardcopy
|
|
||||||
|
|
||||||
plot y vs x xlabel 'Labellisé X' ylabel 'Labellisé Y: ÜüÖöÄäÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ' title 'Titré'
|
plot y vs x xlabel 'Labellisé X' ylabel 'Labellisé Y: ÜüÖöÄäÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ' title 'Titré'
|
||||||
plot y vs x xlabel '我能吞下玻璃而不伤身体' ylabel 'Я могу есть стекло, оно мне не вредит' title ' أنا قادر على أكل الزجاج و هذا لا يؤلمني.'
|
plot y vs x xlabel '我能吞下玻璃而不伤身体' ylabel 'Я могу есть стекло, оно мне не вредит' title ' أنا قادر على أكل الزجاج و هذا لا يؤلمني.'
|
||||||
* With Linux the next one requires: export LC_CTYPE ="de_DE.UTF-8"
|
* With Linux the next one requires: export LC_CTYPE ="de_DE.UTF-8"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
* test de titré
|
titré 'test of various color inputs for background, text/grid and graphs 1'
|
||||||
.control
|
.control
|
||||||
set hcopydevtype = postscript
|
set hcopydevtype = postscript
|
||||||
set hcopypscolor=25
|
set hcopypscolor=25
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
* titré 'test of various color inputs for background, text/grid and graphs 2'
|
||||||
|
.control
|
||||||
|
set hcopydevtype = postscript
|
||||||
|
set hcopypscolor=25
|
||||||
|
set hcopypstxcolor=21
|
||||||
|
set hcopyscale=1
|
||||||
|
*set color2=rgb:F/0/0
|
||||||
|
|
||||||
|
setcs hcopyfont=Arial
|
||||||
|
set hcopyfontsize=18
|
||||||
|
|
||||||
|
|
||||||
|
let x = vector(5)
|
||||||
|
let y = exp(x)
|
||||||
|
setcs wfont=Arial
|
||||||
|
set wfont_size=18
|
||||||
|
setcs xfont='Noto Sans'
|
||||||
|
*set xfont_size=18
|
||||||
|
|
||||||
|
set gridwidth=4
|
||||||
|
set xbrushwidth=1
|
||||||
|
set color0=white
|
||||||
|
*set color2=brown
|
||||||
|
set color2=rgbd:255/0/0
|
||||||
|
plot y vs x xlabel 'Labellisé X' ylabel 'Labellisé Y: ÜüÖöÄäÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ' title 'Titré'
|
||||||
|
set color0=black
|
||||||
|
plot y vs x xlabel '我能吞下玻璃而不伤身体' ylabel 'Я могу есть стекло, оно мне не вредит' title ' أنا قادر على أكل الزجاج و هذا لا يؤلمني.'
|
||||||
|
* With Linux the next one requires: export LC_CTYPE ="de_DE.UTF-8"
|
||||||
|
*gnuplot test.gn y vs x xlabel 'Labellisé X' ylabel 'tüTÄtö Äü @µ€~' title 'ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ '
|
||||||
|
set color0=Blue
|
||||||
|
set color1=Yellow
|
||||||
|
set color2=rgb:00/FF/00
|
||||||
|
set gridwidth=1
|
||||||
|
set xbrushwidth=4
|
||||||
|
plot y vs x+0.001 xlabel 'Labellisé X' ylabel 'Labellisé Y' title 'Titré 私はガラスを食べられます。それは私を傷つけません' loglog
|
||||||
|
unset color1
|
||||||
|
set color0=MediumBlue
|
||||||
|
set color2=Magenta
|
||||||
|
plot y vs x+0.001 xlabel 'Labellisé X' title 'Titré' loglog
|
||||||
|
set color0=GreenYellow
|
||||||
|
set color2=rgbd:128/128/75
|
||||||
|
plot y vs x+0.001 xlabel 'Labellisé X' title 'Titré' loglog
|
||||||
|
set color0=black
|
||||||
|
set color2=pink
|
||||||
|
plot y vs x xlabel '래도 아프지 않아요' ylabel '私はガラスを食べられます' title ' أنا قادر على أكل الزجاج و هذا لا يؤلمني.'
|
||||||
|
|
||||||
|
* With Linux the next one requires: export LC_CTYPE ="de_DE.UTF-8"
|
||||||
|
*gnuplot test2.gn y vs x xlabel 'Labellisé X' ylabel 'tüTÄtö Äü @µ€~' title 'ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ '
|
||||||
|
|
||||||
|
*hardcopy plot_5.ps y vs x xlabel 'Labellisé X' ylabel 'Labellisé Y' title 'Titré Äü @µ€~'
|
||||||
|
*shell Start /B plot_5.ps
|
||||||
|
*shell gv plot_5.ps &
|
||||||
|
|
||||||
|
echo 나는 유리를 먹을 수 있어요. 그래도 아프지 않아요
|
||||||
|
echo 私はガラスを食べられます。それは私を傷つけません
|
||||||
|
echo 我能吞下玻璃而不伤身体
|
||||||
|
|
||||||
|
*quit
|
||||||
|
.endc
|
||||||
|
|
@ -43,7 +43,57 @@ void wincolor_init_hash(COLORREF *ColorTable, int noc)
|
||||||
ColorTable[i] = 0;
|
ColorTable[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* evaluate rgb:0/FF/F0 rgb:0/F/0 rgbd:295/0/128 */
|
||||||
|
static COLORREF get_wincolor_rgb(char *costr)
|
||||||
|
{
|
||||||
|
char *tmpstr;
|
||||||
|
if (ciprefix("rgb:", costr)) {
|
||||||
|
char *t1, *t2, *t3;
|
||||||
|
tmpstr = costr + 4;
|
||||||
|
if (tmpstr) {
|
||||||
|
t1 = gettok_char(&tmpstr, '/', FALSE, FALSE);
|
||||||
|
tmpstr++;
|
||||||
|
t2 = gettok_char(&tmpstr, '/', FALSE, FALSE);
|
||||||
|
tmpstr++;
|
||||||
|
t3 = copy(tmpstr);
|
||||||
|
if (t1 && t2 && t3) {
|
||||||
|
int c1, c2, c3;
|
||||||
|
c1 = (int) strtol(t1, NULL, 16);
|
||||||
|
c2 = (int) strtol(t2, NULL, 16);
|
||||||
|
c3 = (int) strtol(t3, NULL, 16);
|
||||||
|
tfree(t1);
|
||||||
|
tfree(t2);
|
||||||
|
tfree(t3);
|
||||||
|
return RGB(c1, c2, c3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (ciprefix("rgbd:", costr)) {
|
||||||
|
char *t1, *t2, *t3;
|
||||||
|
tmpstr = costr + 5;
|
||||||
|
if (tmpstr) {
|
||||||
|
t1 = gettok_char(&tmpstr, '/', FALSE, FALSE);
|
||||||
|
tmpstr++;
|
||||||
|
t2 = gettok_char(&tmpstr, '/', FALSE, FALSE);
|
||||||
|
tmpstr++;
|
||||||
|
t3 = copy(tmpstr);
|
||||||
|
if (t1 && t2 && t3) {
|
||||||
|
int c1, c2, c3;
|
||||||
|
c1 = (int) strtol(t1, NULL, 10);
|
||||||
|
c2 = (int) strtol(t2, NULL, 10);
|
||||||
|
c3 = (int) strtol(t3, NULL, 10);
|
||||||
|
tfree(t1);
|
||||||
|
tfree(t2);
|
||||||
|
tfree(t3);
|
||||||
|
return RGB(c1, c2, c3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "Error: Cannot detect color in string %s, setting Web Green\n", costr);
|
||||||
|
return RGB(0, 128, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* ColorTable[0]: background, ColorTable[1]: grid, text */
|
/* ColorTable[0]: background, ColorTable[1]: grid, text */
|
||||||
void wincolor_init(COLORREF* ColorTable, int noc)
|
void wincolor_init(COLORREF* ColorTable, int noc)
|
||||||
|
|
@ -64,8 +114,9 @@ void wincolor_init(COLORREF* ColorTable, int noc)
|
||||||
if (!cp_getvar(buf, CP_STRING, colorstring, sizeof(colorstring))) {
|
if (!cp_getvar(buf, CP_STRING, colorstring, sizeof(colorstring))) {
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
/* switch the grid and text color depending on background */
|
/* switch the grid and text color depending on background */
|
||||||
int tcolor = GetRValue(ColorTable[0]) + GetGValue(ColorTable[0]) + GetBValue(ColorTable[0]);
|
int tcolor = GetRValue(ColorTable[0]) +
|
||||||
if (tcolor > 250) {
|
(int)(1.5 * GetGValue(ColorTable[0])) + GetBValue(ColorTable[0]);
|
||||||
|
if (tcolor > 360) {
|
||||||
ColorTable[1] = RGB(0, 0, 0);
|
ColorTable[1] = RGB(0, 0, 0);
|
||||||
i++;
|
i++;
|
||||||
bgisblack = FALSE;
|
bgisblack = FALSE;
|
||||||
|
|
@ -84,6 +135,11 @@ void wincolor_init(COLORREF* ColorTable, int noc)
|
||||||
else
|
else
|
||||||
(void)strcpy(colorstring, stdcolornames[i]);
|
(void)strcpy(colorstring, stdcolornames[i]);
|
||||||
}
|
}
|
||||||
|
else if (ciprefix("rgb", colorstring)){
|
||||||
|
ColorTable[i] = get_wincolor_rgb(colorstring);
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ColorTable[i] = get_wincolor(colorstring, nocolor);
|
ColorTable[i] = get_wincolor(colorstring, nocolor);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
@ -97,7 +153,10 @@ void wincolor_redo(COLORREF* ColorTable, int noc)
|
||||||
int nocolor = NUMELEMS(ctable);
|
int nocolor = NUMELEMS(ctable);
|
||||||
|
|
||||||
while (i < noc) {
|
while (i < noc) {
|
||||||
/* when color0 is set to white and color1 is not given, set ColorTable[2] to black */
|
/* when color0 is set to white and color1 is not given, set text and grid color
|
||||||
|
as ColorTable[1] to black, when color0 is any other color, select black or
|
||||||
|
white text and grid color according to a weighted value derived from color0.
|
||||||
|
This selection is a compromise based on visibility.*/
|
||||||
(void)sprintf(buf, "color%d", i);
|
(void)sprintf(buf, "color%d", i);
|
||||||
if (!cp_getvar(buf, CP_STRING, colorstring, sizeof(colorstring))) {
|
if (!cp_getvar(buf, CP_STRING, colorstring, sizeof(colorstring))) {
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
|
|
@ -123,6 +182,11 @@ void wincolor_redo(COLORREF* ColorTable, int noc)
|
||||||
else
|
else
|
||||||
(void)strcpy(colorstring, stdcolornames[i]);
|
(void)strcpy(colorstring, stdcolornames[i]);
|
||||||
}
|
}
|
||||||
|
else if (ciprefix("rgb", colorstring)) {
|
||||||
|
ColorTable[i] = get_wincolor_rgb(colorstring);
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ColorTable[i] = get_wincolor(colorstring, nocolor);
|
ColorTable[i] = get_wincolor(colorstring, nocolor);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue