From dfa9c407071f4bb0284649776ea9befea23ec315 Mon Sep 17 00:00:00 2001 From: koldo Date: Sat, 17 Aug 2019 22:27:25 +0000 Subject: [PATCH] ScatterCtrl_Demo: Modified log example git-svn-id: svn://ultimatepp.org/upp/trunk@13552 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- examples/ScatterCtrl_Demo/ScatterCtrl_Demo.h | 2 ++ .../ScatterCtrl_Demo/tab6_Logarithmic.cpp | 27 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/examples/ScatterCtrl_Demo/ScatterCtrl_Demo.h b/examples/ScatterCtrl_Demo/ScatterCtrl_Demo.h index 194c3e146..04b3b8bfa 100644 --- a/examples/ScatterCtrl_Demo/ScatterCtrl_Demo.h +++ b/examples/ScatterCtrl_Demo/ScatterCtrl_Demo.h @@ -104,6 +104,8 @@ public: void Init(); void FormatX(String& s, int i, double d); + void FormatXGridUnits(String& s, int i, double d); + void SetGridLinesX(Vector& unitsX); virtual ScatterCtrl &Scatter() {return scatter;}; private: diff --git a/examples/ScatterCtrl_Demo/tab6_Logarithmic.cpp b/examples/ScatterCtrl_Demo/tab6_Logarithmic.cpp index 371f5de31..4516783ed 100644 --- a/examples/ScatterCtrl_Demo/tab6_Logarithmic.cpp +++ b/examples/ScatterCtrl_Demo/tab6_Logarithmic.cpp @@ -9,15 +9,40 @@ void Tab6_Logarithmic::Init() scatter.SetRange(6,100); scatter.SetMajorUnits(1,20); scatter.ShowInfo(); + scatter.SetMouseHandling(false, false); s1 <= 1 && val <= 1e5) + s = FormatDoubleExp(val, 0); +} + +void Tab6_Logarithmic::FormatXGridUnits(String& s, int i, double d) +{ + double val = pow(10, d); + int valint = fround(val); + if (abs(val - double(valint)) < 0.0001) { + while (valint < -9 || valint > 9) + valint /= 10; + if (valint == 1) + s = FormatDoubleExp(pow(10, d), 0); + } +} + +void Tab6_Logarithmic::SetGridLinesX(Vector& unitsX) +{ + for(int i = 0; scatter.GetXMinUnit() + i*scatter.GetMajorUnitsX() <= scatter.GetXRange(); i++) { + for (int ii = 0; ii < 9; ++ii) + unitsX << scatter.GetXMinUnit() + i*scatter.GetMajorUnitsX() + (log10((ii+1)*10)-1)*scatter.GetMajorUnitsX(); + } } ScatterDemo *Construct6()