improved y-tick function.
This commit is contained in:
@@ -67,6 +67,7 @@
|
|||||||
double vRun; \n
|
double vRun; \n
|
||||||
double startValue; \n
|
double startValue; \n
|
||||||
GWEN_BUFFER *dbuf; \n
|
GWEN_BUFFER *dbuf; \n
|
||||||
|
int nextLevel=0; \n
|
||||||
\n
|
\n
|
||||||
absMaxValue=abs(st->minValue); \n
|
absMaxValue=abs(st->minValue); \n
|
||||||
v=abs(st->maxValue); \n
|
v=abs(st->maxValue); \n
|
||||||
@@ -77,23 +78,24 @@
|
|||||||
absMaxValue=1.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; \n
|
||||||
if ((st->minValue)<startValue) \n
|
if ((st->minValue)<startValue) \n
|
||||||
startValue=-startValue; \n
|
startValue=-startValue; \n
|
||||||
\n
|
\n
|
||||||
vRun=startValue; \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
|
DBG_ERROR(NULL, "vRun=%.2f, v=%.2f, vMin=%.2f, vMax=%.2f", vRun, v, st->minValue, st->maxValue); \n
|
||||||
while(vRun<=(st->maxValue)) { \n
|
while(vRun<=(st->maxValue)) { \n
|
||||||
if (vRun>=(st->minValue)) { \n
|
if (vRun>=(st->minValue)) { \n
|
||||||
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, 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
|
GWEN_Buffer_Reset(dbuf); \n
|
||||||
} \n
|
} \n
|
||||||
} \n
|
} \n
|
||||||
vRun+=v; \n
|
vRun+=v; \n
|
||||||
} \n
|
} \n
|
||||||
|
if ($(struct_prefix)_HasLevelTicks(st, nextLevel)) \n
|
||||||
|
nextLevel++; \n
|
||||||
\n
|
\n
|
||||||
vRun=startValue; \n
|
vRun=startValue; \n
|
||||||
v/=2.0; \n
|
v/=2.0; \n
|
||||||
@@ -102,12 +104,31 @@
|
|||||||
if (vRun>=(st->minValue)) { \n
|
if (vRun>=(st->minValue)) { \n
|
||||||
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, 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
|
GWEN_Buffer_Reset(dbuf); \n
|
||||||
} \n
|
} \n
|
||||||
} \n
|
} \n
|
||||||
vRun+=v; \n
|
vRun+=v; \n
|
||||||
} \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
|
GWEN_Buffer_free(dbuf); \n
|
||||||
} \n
|
} \n
|
||||||
</content>
|
</content>
|
||||||
@@ -138,6 +159,30 @@
|
|||||||
</inline>
|
</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->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">
|
<inline loc="end" access="public">
|
||||||
<content>
|
<content>
|
||||||
$(api) void $(struct_prefix)_GenHourTicks($(struct_type) *st, int lvl, int hours);
|
$(api) void $(struct_prefix)_GenHourTicks($(struct_type) *st, int lvl, int hours);
|
||||||
|
|||||||
Reference in New Issue
Block a user