YScreenToValue 함수 쓰기전에 참고로 보여주신 것을 보고
Chart1->Series[0]->YValues->Value[index] 를 쓴 적있었는데 엉뚱한 값이 나오더군요
그래서 이번에는
Chart1->Series[0]->YValue[index] 를 쓰니깐 제대로 나오네요. 왜 그럴까요? ^^
참고로 TChartGrid를 사용하면 Value 값들을 볼수 있습니다.
ChartGrid의 chart 를 사용하고 있는 Chart1에 맞추면 화면에서 chartgrid를 볼수 있습니다.
이용태님 답변 감사드립니다.
이용태 님이 쓰신 글 :
:
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=722
:
: 위에 링크 참조하세요.. TeeChart에 관한 좌표 구하는 방법이 설명되어 있습니다.
:
:
:
:
: 임승욱 님이 쓰신 글 :
: : 밑의 소스처럼 chart 상에 두개의 x축을 지정하고 그 x축에 대한 y 값을 구하려고
: : YScreenToValue함수를 써서 y값이 나오게 하려고 하는데 엉뚱한 값이 나오네요.
: : 혹시 다른 방법으로 y값을 나오게 할 수 있을까요?
: :
: : 그리고 한가지 더 !!
: : chart 상에 canvas로 그려진 2개의 직선들을 어떤 방법으로 초기화(지울 수) 할 수 있을까요?
: :
: : btnCalculatorClick(TObject *Sender)
: : {
: : float iTime1, iTime2, iPos1,iPos2,X, Y;
: :
: : iTime1 = StrToFloat(Edit1->Text);
: : iTime2 = StrToFloat(Edit2->Text);
: :
: : X = Chart1->BottomAxis->CalcXPosValue(iTime1);
: : Y = Chart1->BottomAxis->CalcXPosValue(iTime2);
: :
: : vtnV1->Text = Chart1->Series[0]->YScreenToValue(X);
: :
: : //vtnV2->Text
: :
: : if ((X >= Chart1->ChartRect.Left) && (X <= Chart1->ChartRect.Right)){
: : Chart1->Canvas->MoveTo(X, Chart1->ChartRect.Bottom);
: : Chart1->Canvas->LineTo(X, Chart1->ChartRect.Top);
: : }
: : if ((Y >= Chart1->ChartRect.Left) && (Y <= Chart1->ChartRect.Right)){
: : Chart1->Canvas->MoveTo(Y, Chart1->ChartRect.Bottom);
: : Chart1->Canvas->LineTo(Y, Chart1->ChartRect.Top);
: : }
: : }