ILOG logo
KSTEC ȸ¿øÀ¸·Î °¡ÀÔÇϼ¼¿ä¤Ó»õ¼Ò½Ä | ·Î±×ÀÎ
 
title element1
License
- ¶óÀ̼¾½º
- ¶óÀ̼¾½º °ü¸®
Maintenance
Training
FAQ
Q&A

Q & A ... °Ô½ÃÆÇ  (Visualization)


¡Ø ¾È³çÇϽʴϱî..?
    ÀúÈñ KSTECÀÇ Á¦Ç°À̳ª ¼­ºñ½º¿¡ ´ëÇØ ±Ã±ÝÇϽŠÁ¡À̳ª ±â¼úÁö¿øÀ» ¿øÇϽô °í°´´ÔÀº ȸ»ç¸í,
    ºÎ¼­¸í, ¼º¸í, »ç¿ëÁ¦Ç°¸í, Á¦Ç° VERSIONÀ» ¸í½ÃÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.

¡Ø °Ô½ÃÇϽг»¿ë¿¡ ´ëÇØ¼­´Â ½Å¼ÓÇÏ°Ô ´äº¯ÇØ µå¸®°Ú½À´Ï´Ù.
¡Ø ÇØ´çµÇ´Â Á¦Ç°±ºÀ» ¼±ÅÃÇϽŠÈÄ ÇÏ°í ½ÍÀ¸½Å ¸»¾¸À» Àû¾î ÁֽʽÿÀ.

Á¦ ¸ñ
[RE] chart scroll
ÀÛ¼ºÀÚ
ÀÌ¿Á°æ
ÀÛ¼ºÀÏ
2001-12-17
Á¶È¸¼ö 800 È¸
÷ºÎÆÄÀÏ Ã·ºÎµÈ ÆÄÀϾøÀ½.
¾È³çÇϼ¼¿ä?

´ÔÀÇ °æ¿ì´Â Views 3.x version¿¡¼­ chart library¸¦ »ç¿ëÇϽðí Àִµí Çϱº¿ä... ¸Â³ª¿ä?

IlvChartContainerRectangleÀº ³»ºÎ¿¡ IlvChartContainer¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. IlvChartContainerÀÇ X/Y Axis¿¡ º¯°æÀÌ ÀϾ¸é ÀÚµ¿À¸·Î updateScaleLabels ¶ó´Â virtual functionÀ» È£ÃâÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. À̶§ ÀûÀýÇÑ X/Y Axis Á¤º¸¸¦ IlvChartContainer¿¡°Ô Áּž߸¸ ¿øÇÏ´Â ±â´ÉÀ» ±¸ÇöÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. Á¦°¡ º¸±â¿£ ´ÔÀÌ ¿øÇϽô ÇüÅ´ë·Î IlvChartContainerÀÇ subclassingÀÌ ÇÊ¿äÇѵí ÇÕ´Ï´Ù. ¿¹¸¦µé¸é,


#define MIN_Y_STEPS 5 // Y AxisÀÇ °¹¼ö
#define LABEL_NUM 2 // X AxisÀÇ °¹¼ö

IlvUShort
SubChartContainer::computeScaleLabels(char** labels) const
{
int rowCt = _sheet->rows();
IlvSheetEx mySheet(_sheet);
IlvFloat day, time, interval=(getXMax() - getXMin()) / LABEL_NUM;
IlvFloat xmin = getShownXMin();
IlvFloat xmax = getShownXMax();
IlvFloat shownInterval = (xmax - xmin) / LABEL_NUM;

for (IlvUShort i=0; i {
if (i==0)
{
labels[0] = new char[20];
sprintf(labels[0], \"%s\", mySheet.getLabel(0, 1));
}

if (i==(rowCt-1))
{
labels[1] = new char[20];
sprintf(labels[1], \"%s\", mySheet.getLabel(0, rowCt-1));
}
}
return (IlvUShort)LABEL_NUM;
}

void
SubChartContainer::updateScaleLabels(IlvPosition mask) const
{
if ((mask & IlvBottom) && getScale(IlvBottom))
{
int rowCt = _sheet->rows() - 1;

char* labels[2];
IlvUShort count = computeScaleLabels(labels);

getScale(IlvBottom)->setSteps(2);
getScale(IlvBottom)->setSubSteps(rowCt - 1);
IlvFloat xmax = getShownXMax();
if (xmax == getShownXMin()) xmax += (IlvFloat)1;
getScale(IlvBottom)->setLabels(count, getShownXMin(),
xmax, \"%.f\");
getScale(IlvBottom)->setLabel(0, labels[0]);
getScale(IlvBottom)->setLabel(1, labels[1]);

for (IlvUShort i = 0; i < count; i++)
delete labels[i];
}

if ((mask & IlvLeft) && getScale(IlvLeft))
{
IlvFloat shownMin, shownMax;
getShownYValues(IlvLeft, shownMin, shownMax);
getScale(IlvLeft)->setLabels(MIN_Y_STEPS, shownMin,
shownMax, \"%.f\");
}
IlvChartContainer::updateScaleLabels((IlvPosition)(mask & ~IlvBottom));
}

ÀÌ·±½ÄÀ¸·Î SubclassingÀ» ÇϽŠÈÄ,

IlvRect size(10, 50, 680, 390), chartsRect(0, 20, 680, 370);
IlvChartContainerRectangle* chartCtRect =
new IlvChartContainerRectangle(getDisplay(),
size,
chartsRect,
IlvPoint(0,0),
IlvVertical,
(IlvPosition)(IlvBottomLeft),
IlvFalse);
// Create ChartContainer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SubChartContainer* chartCt =
new SubChartContainer(container,
size,
chartsRect,
cpSheet[page],
IlvPoint(0,0),
IlvHorizontal,
(IlvPosition)(IlvBottomLeft),
IlvFalse,
IlvTrue);
chartCt->setScaleFormat((IlvPosition)(IlvLeft), \"%.f\");
chartCt->fixOrigin(IlvBottom, 400);
chartCt->fixOrigin(IlvLeft, size.left()); //0);
chartCt->fixOrigin(IlvRight, size.right()); //700);
chartCt->hideScrollBar((IlvOrientation)IlvVertical, IlvTrue);

// Set attachment for ChartContainer
IlvGraphic* handle = chartCt->getChartsHandle();
IlvSetAttachment(handle, IlvTop, IlvFixedAttach, 30);
IlvSetAttachment(handle, IlvBottom, IlvFixedAttach);
IlvSetAttachment(handle, IlvLeft, IlvFixedAttach);
IlvSetAttachment(handle, IlvRight, IlvFixedAttach);
IlvSetAttachment(handle, IlvVertical, IlvElasticAttach);
IlvSetAttachment(handle, IlvHorizontal, IlvElasticAttach);

container->addObject(chartCtRect, IlvTrue);
chartCtRect->setChartContainer(chartCt);

// Create Charts with min/max YScale ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int minYScale = getMinYScale(cpSheet[page], 1);
int maxYScale = getMaxYScale(cpSheet[page], 1);
createChart(chartCt, cpSheet[page], 0, minYScale, maxYScale, dClass);

ÀÌó·³ ÀÌ¿ëÇÏ½Ã¸é µË´Ï´Ù.
±×·³.
°ü·Ã±Û º¸±â
"[RE] chart scroll"¿Í(°ú) °ü·ÃµÈ ±ÛÀÌ  1°Ç ÀÖ½À´Ï´Ù.
chart scroll ¹ÚÁ¤È¯ 2001-12-13
[RE] chart scroll ÀÌ¿Á°æ 2001-12-17