메뉴 건너뛰기

app

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

박영식2007.04.07 15:45조회 수 5775댓글 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 조회 2523
박영식
2007.06.14 조회 2772
박영식
2007.04.04 조회 5796
박영식
2007.02.16 조회 2562
박영식
2007.02.15 조회 2778
박영식
2006.09.19 조회 2046
박영식
2006.09.14 조회 2126
박영식
2006.09.09 조회 2050
박영식
2006.09.05 조회 2103
박영식
2006.09.01 조회 1722
첨부 (0)
위로