vc++ mfc를 이용한 그래프 그리기 질문입니다.
하람
레포트로 mfc를 이용해서 3d그래프를 그려야 되는데요. 일단 그리긴 했는데 문제가 있네요.
제가 mfc초보라 잘 모르겠습니다 ㅠㅠ
위에 그림은 제가 구현한 3d그래프 함수입니다.
보시는바와 같이 for문을 이용해서 루프를 돌렸는데 숫자가 100으로 계속 나옵니다.
50단위로 350 300 250 200 이런식으로 줄어들게 하고싶은데 소스를 어떻게 고쳐야되나여?
이 소스는 아래 소스에 void CMy2D그래프View::Drawnumber(CDC *pDC) 함수에 있구요.
그리고 Crect와 배열을 이용해서 바 그래프 모양을 구현할려고 하는데 for 문을 이용해서 루프를 돌리면 같은 모양만 나오고 변경이 안되네요. for문을 이용해서 모양을 변경하면서 루프를 돌릴수있는 소스 좀 말씀해주세요.
2D 그래프View.h 헤더파일에 함수
public:
void Drawgraph(CDC *pDC); // 그리프를 그리는 함수
void Drawline(CDC *pDC); // 눈금과 선을 그리는 함수
void DrawAxes(CDC *pDC); // x축과 y축을 그리는 함수
void Drawnumber(CDC *pDC); // 눈금값을 표현하기 위한 함수
void Create(const CWnd * const parent,CRect * rect);
int i; // 변수선언
int j;
int k;
2D 그래프.View.cpp
void CMy2D그래프View::DrawAxes(CDC *pDC)
{
pDC-MoveTo(50,400); // x축 긋기
pDC-LineTo(450,400);
pDC-MoveTo(50,50); // y축 긋기
pDC-LineTo(50,400);
pDC-MoveTo(80,380); //y축1(3차원)
pDC-LineTo(80,30);
pDC-MoveTo(80,30); //y축2(3차원)
pDC-LineTo(480,30);
pDC-MoveTo(480,30); //x축1(3차원)
pDC-LineTo(480,380);
pDC-MoveTo(80,380); //x축2(3차원)
pDC-LineTo(480,380);
}
void CMy2D그래프View::Drawline(CDC *pDC)
{
// 가로 눈금선
int nStepY = 50; // 수직방향 간격
for(int i = 1; i 8; i++) {
pDC-MoveTo(40, i * nStepY);
pDC-LineTo(50, i * nStepY);
}
// 3차원 세로 대각선
int nStepY1 = 50; // 수직방향 간격
for(int j= 1; j 9; j++) {
pDC-MoveTo(50, j * nStepY1);
pDC-LineTo(80, j * nStepY1 - 20);
}
// 3차원 가로 대각선
int nStepY2 = 50;
for(int k= 1; k 10; k++) {
pDC-MoveTo(k * nStepY2, 400 );
pDC-LineTo(k * nStepY2 + 30, 380 );
}
}
void CMy2D그래프View::Drawnumber(CDC *pDC)
{
// 눈금의 값
CString temp;
int x=50;
int nStepY=50;
for(int i = 1; i 8; i++) {
for(int j = 8; j 1; j--) {
temp.Format(_T(%d), j*x);
pDC-TextOut(10,i*nStepY, temp);
}
}
}
void CMy2D그래프View::Drawgraph(CDC *pDC)
{
// 그래프
CBrush *myBrush;
CRect r(100, 300, 150, 400 );
COLORREF color[4] = {
RGB(0,0,0),
RGB(255,0,0),
RGB(0,255,0),
RGB(0,0,255),
};
for(i=0;i4;i++) {
myBrush = new CBrush(color[i]);
pDC-FillRect(r,myBrush);
r.OffsetRect(50,0);
delete myBrush;
}
CClientDC dc(this);
CPoint point[5];
point[0].x = 100;
point[0].y = 300;
point[1].x = 130;
point[1].y = 280;
point[2].x = 180;
point[2].y = 280;
point[3].x = 150;
point[3].y = 300;
point[4].x = 100;
point[4].y = 300;
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
CRgn rgn2, rgn;
rgn2.CreatePolygonRgn(point,5,WINDING);
rgn.CreateRectRgn(0,0,0,0);
rgn.CopyRgn(&rgn2);
rgn.OffsetRgn(0,0);
dc.FillRgn(&rgn,&brush);
rgn.OffsetRgn(50,0); // 클라이언트의 기준이 아니라 방금 그렸던 곳을 기준으로 이동된다
CBrush brush2;
brush2.CreateSolidBrush(RGB(255,0,0));
dc.FillRgn(&rgn,&brush2);
rgn.OffsetRgn(50,0);
CBrush brush3;
brush3.CreateSolidBrush(RGB(0,255,0));
dc.FillRgn(&rgn,&brush3);
rgn.OffsetRgn(50,0);
CBrush brush4;
brush4.CreateSolidBrush(RGB(0,0,255));
dc.FillRgn(&rgn,&brush4);
rgn.OffsetRgn(50,0);
CClientDC dc2(this);
CPoint point2[5];
point[0].x = 300;
point[0].y = 400;
point[1].x = 300;
point[1].y = 300;
point[2].x = 330;
point[2].y = 280;
point[3].x = 330;
point[3].y = 380;
point[4].x = 300;
point[4].y = 400;
CBrush brurush brush5;
brush5.CreateSolidBrush(RGB(0,0,255));
CRgn rgn3, rgn4;
rgn3.CreatePolygonRgn(point,5,WINDING);
rgn4.CreateRectRgn(0,0,0,0);
rgn.CopyRgn(&rgn3);
rgn.OffsetRgn(0,0);
dc.FillRgn(&rgn,&brush5);
}
void CMy2D그래프View::OnDraw(CDC* pDC)
{
CMy2D그래프Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
DrawAxes(pDC); // x, y축을 그린다
Drawline(pDC); // 눈금선과 대각선을 그린다
Drawnumber(pDC); // 눈금의 값을 적는다
Drawgraph(pDC); // 그래프를 그린다
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700393 | mysql이 갑자기!!!!!!!!!!!!!!!에러가;; (2) | 소미 | 2025-07-04 |
2700359 | 3.0 ) SimpleButton 상태 강제 변경 (3) | 희선 | 2025-07-04 |
2700304 | ie8 전용핵 문의 (3) | 여자 | 2025-07-03 |
2700281 | 이런경우 어떻게 코딩해야 표준에 따르는건가요? (6) | 늘솜 | 2025-07-03 |
2700230 | 질문이여 ! | 뿡뿡몬 | 2025-07-03 |
2700205 | 액션스크립트책 좀 추천해주세요. (10) | 화이트캣 | 2025-07-02 |
2700173 | 자바 소스인데 어떤게 에러인지..? (1) | 호빵녀 | 2025-07-02 |
2700142 | 하단이 붙어있는 가변 레이아웃구조 질문드립니다. | 이플 | 2025-07-02 |
2700089 | 이미지를 사다리꼴로 비틀게 하는 액션코드가 있나요? (4) | 여름 | 2025-07-01 |
2700033 | 배경에 그라데이션을 넣으려고 하는데요.. (4) | 화이티 | 2025-07-01 |
2700005 | [질문] TextField 객체의 실제 높이 알아오는 방법 ? | 천사의눈물 | 2025-07-01 |
2699978 | FileReferenceList를 이용하여 업로드시 자꾸 실행속도가 느리다는 팝업이... (10) | 데이비드 | 2025-06-30 |
2699944 | 자바스크립트가 많은 사이트는... (6) | 희나리 | 2025-06-30 |
2699918 | 브라우저마다 다른 input과 텍스트 정렬 (3) | 늘봄 | 2025-06-30 |
2699887 | 동적텍스트를 그래픽으로?? (2) | 족장 | 2025-06-30 |
2699862 | scope넣기 (1) | 아인 | 2025-06-29 |
2699835 | exe로 만드는 방법을....알려주세요.. (5) | 방방 | 2025-06-29 |
2699809 | 롤오버할때 백그라운드 이미지로할때 alt설명은 어떻게해야하죠?..ㅠ (4) | 반혈 | 2025-06-29 |
2699757 | 리스트뷰에 있는 내용을 랜덤으로 추출 | 세실 | 2025-06-28 |
2699725 | JMX 질문입니다. (1) | 시나브로 | 2025-06-28 |