메뉴 건너뛰기

app

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

박영식2007.04.07 15:45조회 수 5686댓글 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 조회 2416
박영식
2007.06.14 조회 2695
박영식
2007.04.04 조회 5712
박영식
2007.02.16 조회 2496
박영식
2007.02.15 조회 2697
박영식
2006.09.19 조회 1978
박영식
2006.09.14 조회 2044
박영식
2006.09.09 조회 1968
박영식
2006.09.05 조회 2024
박영식
2006.09.01 조회 1636
첨부 (0)
위로