improved graph.

This commit is contained in:
Martin Preuss
2025-10-22 20:07:49 +02:00
parent b597fadeff
commit 261c52505b
3 changed files with 35 additions and 3 deletions

View File

@@ -22,6 +22,7 @@
<header type="sys" loc="pre">gwenhywfar/buffer.h</header> <header type="sys" loc="pre">gwenhywfar/buffer.h</header>
<header type="sys" loc="pre">gwenhywfar/timestamp.h</header> <header type="sys" loc="pre">gwenhywfar/timestamp.h</header>
<header type="sys" loc="pre">gwenhywfar/gwendate.h</header> <header type="sys" loc="pre">gwenhywfar/gwendate.h</header>
<header type="sys" loc="pre">gwenhywfar/debug.h</header>
<header type="sys" loc="pre">math.h</header> <header type="sys" loc="pre">math.h</header>
</headers> </headers>
@@ -72,6 +73,8 @@
absMaxValue=(v&gt;absMaxValue)?v:absMaxValue; \n absMaxValue=(v&gt;absMaxValue)?v:absMaxValue; \n
\n \n
dbuf=GWEN_Buffer_new(0, 64, 0, 1); \n dbuf=GWEN_Buffer_new(0, 64, 0, 1); \n
if (absMaxValue==0.0) \n
absMaxValue=1.0; \n
v=pow(10, floor(log10(absMaxValue))); \n v=pow(10, floor(log10(absMaxValue))); \n
\n \n
startValue=v*10.0; \n startValue=v*10.0; \n
@@ -80,6 +83,7 @@
\n \n
vRun=startValue; \n vRun=startValue; \n
v/=10.0; \n v/=10.0; \n
DBG_ERROR(NULL, "vRun=%.2f, v=%.2f, vMin=%.2f, vMax=%.2f", vRun, v, st-&gt;minValue, st-&gt;maxValue); \n
while(vRun&lt;=(st-&gt;maxValue)) { \n while(vRun&lt;=(st-&gt;maxValue)) { \n
if (vRun&gt;=(st-&gt;minValue)) { \n if (vRun&gt;=(st-&gt;minValue)) { \n
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
@@ -93,6 +97,7 @@
\n \n
vRun=startValue; \n vRun=startValue; \n
v/=2.0; \n v/=2.0; \n
DBG_ERROR(NULL, "vRun=%.2f, v=%.2f, vMin=%.2f, vMax=%.2f", vRun, v, st-&gt;minValue, st-&gt;maxValue); \n
while(vRun&lt;=(st-&gt;maxValue)) { \n while(vRun&lt;=(st-&gt;maxValue)) { \n
if (vRun&gt;=(st-&gt;minValue)) { \n if (vRun&gt;=(st-&gt;minValue)) { \n
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n

View File

@@ -108,6 +108,33 @@ void AQDG_TimeGraph_SetupTicks(AQDG_GRAPH *g, uint32_t flags, double minY, doubl
/* create ticks for Y axis */ /* create ticks for Y axis */
axis=AQDG_Graph_GetAxisByIndex(g, AQDG_GRAPH_AXISPOS_LEFT); axis=AQDG_Graph_GetAxisByIndex(g, AQDG_GRAPH_AXISPOS_LEFT);
if (axis) { if (axis) {
double vMax;
double vMin;
double vDiff;
vMin=AQDG_Graph_Axis_GetMinValue(axis);
vMax=AQDG_Graph_Axis_GetMaxValue(axis);
vDiff=vMax-vMin;
DBG_ERROR(NULL, "old vMin=%.2f, vMax=%.2f", vMin, vMax);
if (vDiff==0.0) {
DBG_ERROR(NULL, "min = max = %.2f", vMax);
vDiff=vMax;
if (vDiff==0.0)
vDiff=1.0;
}
if (vDiff>0.0) {
double vDiffBy10;
DBG_ERROR(NULL, "Setting vmin and vmax");
vDiffBy10=vDiff/10.0;
vMin-=vDiffBy10;
vMax+=vDiffBy10;
DBG_ERROR(NULL, "new vMin=%.2f, vMax=%.2f", vMin, vMax);
AQDG_Graph_Axis_SetMinValue(axis, vMin);
AQDG_Graph_Axis_SetMaxValue(axis, vMax);
}
if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MINY) if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MINY)
AQDG_Graph_Axis_SetMinValue(axis, minY); AQDG_Graph_Axis_SetMinValue(axis, minY);
if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MAXY) if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MAXY)

View File

@@ -506,8 +506,8 @@ void AQDG_GraphWidget_SetupDefaultPens(AQDG_OBJECT *o)
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TITLE, AQDG_GRAPHWIDGET_COL_BLACK, 2, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TITLE, AQDG_GRAPHWIDGET_COL_BLACK, 2, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_SUBTITLE, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_SUBTITLE, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_AXISLINE, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_AXISLINE, AQDG_GRAPHWIDGET_COL_GRAY, 1, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_AXISLABEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_AXISLABEL, AQDG_GRAPHWIDGET_COL_GRAY, 1, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKLABELMAINLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKLABELMAINLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKLABELSUBLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKLABELSUBLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None);
MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKMAINLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None); MKPEN(AQDG_GRAPHWIDGET_PEN_IDX_TICKMAINLEVEL, AQDG_GRAPHWIDGET_COL_BLACK, 1, AQDG_Dash_None);
@@ -549,7 +549,7 @@ void AQDG_GraphWidget_SetupDefaultFonts(AQDG_OBJECT *o)
MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_AXISLABEL, 12); MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_AXISLABEL, 12);
MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_TICKLABELMAINLEVEL, 12); MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_TICKLABELMAINLEVEL, 12);
MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_TICKLABELSUBLEVEL, 10); MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_TICKLABELSUBLEVEL, 10);
MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_LEGEND, 10); MKNORMALFONT(AQDG_GRAPHWIDGET_FONT_IDX_LEGEND, 11);
#undef MKNORMALFONT #undef MKNORMALFONT
} }