메뉴 건너뛰기

app

[MFC] 수직선 그리기와 SMITH CHART 연습

박영식2007.04.07 15:45조회 수 5598댓글 0

    • 글자 크기
void CChildView::OnPaint()
{
        CPaintDC dc(this); // device context for painting        
        CRect framesize;   // 창크기 저장 객체 생성
        GetClientRect(&framesize);  // 창의 사이즈를 구한다.
        int fsvm_h, fsvm_v; // 창의 중심값을 저장할 변수
        fsvm_h=(framesize.right/2)/10*10;
        fsvm_v=(framesize.bottom/2)/10*10;

        CString str;
        float radv=0.00;  //반지름
        int leftup, value_r=1; // 정수화 된 반지름

//중심이 화면에 중심이고, 반지름이 100인 원 시작//
        CPen pen1(PS_SOLID, 2, RGB(255, 0, 0));
    dc.SelectObject(&pen1);
        dc.Ellipse(fsvm_h-100, fsvm_v-100, fsvm_h+100, fsvm_v+100);
//중심이 화면에 중심이고, 반지름이 100인 원 끝//

        radv = 1.0/(1+0.5);
        leftup=radv*100;
    CPen pen4(PS_SOLID, 2, RGB(255, 0, 0));
    dc.SelectObject(&pen4);
    dc.Ellipse(fsvm_h-leftup*2+100, fsvm_v-leftup, fsvm_h+100, fsvm_v+leftup);

        while(value_r<3){
        radv = 1.0/(1+value_r);
//                str.Format(" = %f,  = %d", radv, leftup);
//                MessageBox((LPCTSTR)str, NULL, MB_OK);
        leftup=radv*100;
    CPen pen5(PS_SOLID, 2, RGB(255, 0, 0));
    dc.SelectObject(&pen5);
    dc.Ellipse(fsvm_h-leftup*2+100, fsvm_v-leftup, fsvm_h+100, fsvm_v+leftup);
        
        value_r++;
}
//////////////////////////////////////////////////////////원 그리는 부분 끝////////////////////

        int Vgrid_v=10;
        int Vgrid=10;
//////////////////////////////////////////가로줄 그리기//////////////////////////////////////
        while(Vgrid_v<framesize.bottom)
        {
                CPen pen2(PS_SOLID, 1, RGB(192, 192, 192));
                dc.SelectObject(&pen2);
                dc.MoveTo(0, Vgrid_v);
                dc.LineTo(framesize.right, Vgrid_v);
                Vgrid_v=Vgrid_v+10;
        }
//////////////////////////////////////////세로줄 그리기//////////////////////////////////////
        while(Vgrid<framesize.right)
        {
                CPen pen(PS_SOLID, 1, RGB(192, 192, 192));
                dc.SelectObject(&pen);
                dc.MoveTo(Vgrid, 0);
                dc.LineTo(Vgrid, framesize.bottom);
                Vgrid=Vgrid+10;
//                str.Format("framesize.right = %d, Vgrid = %d", framesize.right, Vgrid);
//                MessageBox((LPCTSTR)str, NULL, MB_OK);
        }
//////////////////////////////////////////수직선 그리기//////////////////////////////////////
        
                CPen pen_v(PS_SOLID, 1, RGB(0, 0, 0));
                dc.SelectObject(&pen_v);
                dc.MoveTo(fsvm_h, 0);
                dc.LineTo(fsvm_h, framesize.bottom);
        
                CPen pen_h(PS_SOLID, 1, RGB(0, 0, 0));
                dc.SelectObject(&pen_h);
                dc.MoveTo(0, fsvm_v);
                dc.LineTo(framesize.right, fsvm_v);
        
}
박영식 (비회원)
    • 글자 크기
[MFC] SMITH CHART에서 r=0.5, x=0.5의 Γ_i, Γ_r의 값, CWindowDC (by 박영식) [MFC] 원 그리는 소스 (by 박영식)

댓글 달기

박영식
2007.07.08 조회 2358
박영식
2007.06.14 조회 2633
박영식
2007.04.04 조회 5643
박영식
2007.02.16 조회 2443
박영식
2007.02.15 조회 2638
박영식
2006.09.19 조회 1927
박영식
2006.09.14 조회 1973
박영식
2006.09.09 조회 1903
박영식
2006.09.05 조회 1963
박영식
2006.09.01 조회 1575
첨부 (0)
위로