improved y-tick function.

This commit is contained in:
Martin Preuss
2025-10-22 20:41:51 +02:00
parent 261c52505b
commit 855588a2fc

View File

@@ -67,6 +67,7 @@
double vRun; \n
double startValue; \n
GWEN_BUFFER *dbuf; \n
int nextLevel=0; \n
\n
absMaxValue=abs(st->minValue); \n
v=abs(st->maxValue); \n
@@ -77,23 +78,24 @@
absMaxValue=1.0; \n
v=pow(10, floor(log10(absMaxValue))); \n
\n
startValue=v*10.0; \n
startValue=v; \n
if ((st->minValue)<startValue) \n
startValue=-startValue; \n
\n
vRun=startValue; \n
v/=10.0; \n
DBG_ERROR(NULL, "vRun=%.2f, v=%.2f, vMin=%.2f, vMax=%.2f", vRun, v, st->minValue, st->maxValue); \n
while(vRun<=(st->maxValue)) { \n
if (vRun>=(st->minValue)) { \n
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, vRun); \n
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, 0, 0); \n
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, nextLevel, 0); \n
GWEN_Buffer_Reset(dbuf); \n
} \n
} \n
vRun+=v; \n
} \n
if ($(struct_prefix)_HasLevelTicks(st, nextLevel)) \n
nextLevel++; \n
\n
vRun=startValue; \n
v/=2.0; \n
@@ -102,12 +104,31 @@
if (vRun>=(st->minValue)) { \n
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, vRun); \n
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, 1, 0); \n
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, nextLevel, 0); \n
GWEN_Buffer_Reset(dbuf); \n
} \n
} \n
vRun+=v; \n
} \n
if ($(struct_prefix)_HasLevelTicks(st, nextLevel)) \n
nextLevel++; \n
\n
vRun=startValue; \n
v/=5.0; \n
DBG_ERROR(NULL, "vRun=%.2f, v=%.2f, vMin=%.2f, vMax=%.2f", vRun, v, st->minValue, st->maxValue); \n
while(vRun<=(st->maxValue)) { \n
if (vRun>=(st->minValue)) { \n
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, vRun); \n
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, nextLevel, 0); \n
GWEN_Buffer_Reset(dbuf); \n
} \n
} \n
vRun+=v; \n
} \n
if ($(struct_prefix)_HasLevelTicks(st, nextLevel)) \n
nextLevel++; \n
\n
GWEN_Buffer_free(dbuf); \n
} \n
</content>
@@ -138,6 +159,30 @@
</inline>
<inline loc="end" access="public">
<content>
$(api) int $(struct_prefix)_HasLevelTicks(const $(struct_type) *st, int level);
</content>
</inline>
<inline loc="code">
<content>
int $(struct_prefix)_HasLevelTicks(const $(struct_type) *st, int level) \n
{ \n
const AQDG_GRAPH_TICK *tick; \n
\n
tick=AQDG_Graph_Tick_List_First(st-&gt;tickList); \n
while(tick) { \n
if (AQDG_Graph_Tick_GetLevel(tick)==level) \n
return 1; \n
tick=AQDG_Graph_Tick_List_Next(tick); \n
} \n
return 0; \n
} \n
</content>
</inline>
<inline loc="end" access="public">
<content>
$(api) void $(struct_prefix)_GenHourTicks($(struct_type) *st, int lvl, int hours);