C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49553] Re:Re:토크 그래프..
그런데여.. 흠.. [] 960 읽음    2007-06-05 10:03
max_range[0]= 10000 일때
x값이 10000 보다 큰거나 같은경우는 x1= 450 이구요
x값이 100    이면       450/100 = 4.5
x값이 500    이면       450 / 20 = 22.5 가 되는것입니다.
x값이 1000  이면       450 / 10  = 45 가 되는것입니다.
이런식으로 예를 들어주셨는데...

x1 = (x >= max_range[0]) ? 450: (450 / max_range[0] * x);
max_range[0]= 10000 , 
x값이 100    이면       450/100 = 4.5
이것에서 위에 공식을 하면
450/1000*100 이런식 아닌가여..

장성호 님이 쓰신 글 :
: x1 = (x >= max_range[0]) ? 450: (450 / max_range[0] * x);
: 위 구문이 궁금하신거죠?
:
:
: 현재 x 값을 가지고 Canvas에 대입했을때의  x1 값을 찾는것입니다.
:
: 최대 x-range  =  max_range[0]
: x-range가 최대일때 Canvas에서의 x좌표값은 450 인것입니다.
:
: 수식으로 표현하면 max_range[0]일때 450이면 x일때는 ? 얼마인가의 문제입니다.
:
:      max_range[0] : 450 = x : ?         

: 그러므로
:     450 * x = max_range[0] * ?            ==> 양쪽을 max_range[0]로 나누면?
:     ( 450 * x ) /max_range[0] = ?     
:     ? = x1 = 450 * x / max_range[0] ;   
:
: 근데 위공식으로 x1값을 구하면 x값이 최대값 max_range[0]보다 클때는 450보다 넘어가겠죠
: 그러므로 x값이 max_range를 넘어가도 x1값이    450 이 넘어가지 않도록 위와같이 코딩한것입니다.
:
: x1 = (x >= max_range[0]) ? 450: (450 / max_range[0] * x);
:
:
:
: 결론적으로 x값이 토크 최대값보다 클때는 Canvas에 x좌표를 450으로    그리고
: 최대값보다 작을때는 최대일때 450이니까 그보다 작은값으 그와 같은 비율로 줄여서 Canvas에 그려주는것입니다.
:
: y값도 마찬가지로 canvas 최대값은 320 인것이구요
:
:
: 예를 들어
: max_range[0]= 10000 일때
: x값이 10000 보다 큰거나 같은경우는 x1= 450 이구요
: x값이 100    이면       450/100 = 4.5
: x값이 500    이면       450 / 20 = 22.5 가 되는것입니다.
: x값이 1000  이면       450 / 10  = 45 가 되는것입니다.
:
:
: p.s
:
:  이정도는 중학교 1,2학년 수학정도 될것 같은데...
:  저도 그렇지만 요즘 프로그램하면서 수학이 약한것을 많이 느낍니다.
:  학교다닐때 좀 열심히 해 놓을걸 하는 아쉬움이....
:
:
:
:
:
: 카리스 님이 쓰신 글 :
: : 그래프 그리는 건데여.. 토크와 전압관계를 그리는 거에여...
: : 그래프의 범위는
: : void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
: : {
: :     PaintBox1->Canvas->Pen->Color = clGray;
: :         PaintBox1->Canvas->MoveTo(0, 0);
: :         PaintBox1->Canvas->LineTo(0, 320);
: :         PaintBox1->Canvas->LineTo(450, 320);
: :         PaintBox1->Canvas->LineTo(450, 0);
: :         PaintBox1->Canvas->LineTo(0, 0);
: : 이런 식이구영...
: :
: : if(graph_view_flag[0])
: :          ShowTVGraph(tor_val[data_count], vol_val[data_count]);
: :
: : 여기서 ShowTVGraph함수는
: :
: : void __fastcall TForm1::ShowTVGraph(double x, double y)
: : {
: :     static double x_old, y_old;
: :      double x1, y1;
: :
: :      x1 = (x >= max_range[0]) ? 450: (450 / max_range[0] * x);
: :      y1 = (y >= max_range[7]) ? 0: (320 - (320 / max_range[7] * y));
: :
: :      if(data_count1 >= 1) {
: :          PaintBox1->Canvas->Pen->Color = (TColor)0x00C08080;
: :           PaintBox1->Canvas->MoveTo(x_old, y_old);
: :           PaintBox1->Canvas->LineTo(x1, y1);
: :      }
: :
: :      x_old = x1;
: :      y_old = y1;
: : }
: :  max_range[0]는 토크의 최대값 같구영... 그런데..
: : 여기서  x1 = (x >= max_range[0]) ? 450: (450 / max_range[0] * x);
: : 이부분이 이해가 안가여...

+ -

관련 글 리스트
49545 토크 그래프.. 카리스 1216 2007/06/04
49551     Re:토크 그래프.. 장성호 1143 2007/06/05
49553         Re:Re:토크 그래프.. 그런데여.. 흠.. 960 2007/06/05
49555             Re:Re:Re:토크 그래프.. 이정구 912 2007/06/05
49556                 Re:Re:Re:Re:토크 그래프.. 카리스 854 2007/06/05
49557                     Re:Re:Re:Re:Re:토크 그래프.. kylix 890 2007/06/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.