mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 06:05:58 -06:00
88 lines
No EOL
1.6 KiB
C++
88 lines
No EOL
1.6 KiB
C++
#include "ScatterCtrl_Demo.h"
|
|
|
|
|
|
void Tab5_Dynamic::Init()
|
|
{
|
|
CtrlLayout(*this);
|
|
SizePos();
|
|
|
|
scatter.SetRange(10, 100);
|
|
scatter.AddSeries(s1).Legend("U-t").Units("V", "s").NoMark();
|
|
scatter.AddSeries(s2).Legend("I-t").Units("A", "s").NoMark();
|
|
bStart <<=(THISBACK(Start));
|
|
bStop <<=(THISBACK(Stop));
|
|
bReset <<=(THISBACK(Reset));
|
|
bPgDown <<=(THISBACK(PgDown));
|
|
bPgUp <<=(THISBACK(PgUp));
|
|
bPlus <<=(THISBACK(Plus));
|
|
bMinus <<=(THISBACK(Minus));
|
|
t = 0;
|
|
bStop.Disable();
|
|
}
|
|
|
|
void Tab5_Dynamic::Animate()
|
|
{
|
|
s1 << Pointf(t, 50+20*sin(t));
|
|
s2 << Pointf(t, 50+30*cos(t));
|
|
scatter.Refresh();
|
|
t += 0.1;
|
|
if((t-scatter.GetXMin()) >= scatter.GetXRange())
|
|
scatter.SetXYMin(scatter.GetXMin() + 0.1, 0);
|
|
}
|
|
|
|
void Tab5_Dynamic::Start()
|
|
{
|
|
SetTimeCallback(-5, THISBACK(Animate));
|
|
bStart.Disable();
|
|
bStop.Enable();
|
|
}
|
|
|
|
void Tab5_Dynamic::Stop()
|
|
{
|
|
KillTimeCallback();
|
|
bStart.Enable();
|
|
bStop.Disable();
|
|
}
|
|
|
|
void Tab5_Dynamic::Reset()
|
|
{
|
|
t = 0;
|
|
s1.Clear();
|
|
s2.Clear();
|
|
scatter.SetXYMin(0, 0);
|
|
scatter.Refresh();
|
|
}
|
|
|
|
void Tab5_Dynamic::PgDown()
|
|
{
|
|
scatter.SetXYMin(scatter.GetXMin()-5, 0);
|
|
scatter.Refresh();
|
|
}
|
|
|
|
void Tab5_Dynamic::PgUp()
|
|
{
|
|
scatter.SetXYMin(scatter.GetXMin()+5, 0);
|
|
scatter.Refresh();
|
|
}
|
|
|
|
void Tab5_Dynamic::Plus()
|
|
{
|
|
scatter.SetRange(scatter.GetXRange()/2, 100);
|
|
scatter.Refresh();
|
|
}
|
|
|
|
void Tab5_Dynamic::Minus()
|
|
{
|
|
scatter.SetRange(scatter.GetXRange()*2, 100);
|
|
scatter.Refresh();
|
|
}
|
|
|
|
ScatterDemo *Construct5()
|
|
{
|
|
static Tab5_Dynamic tab;
|
|
return &tab;
|
|
}
|
|
|
|
INITBLOCK {
|
|
RegisterExample("Dynamic", Construct5, __FILE__);
|
|
} |