메뉴 건너뛰기

app

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

박영식2007.04.07 15:45조회 수 5621댓글 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 조회 2359
박영식
2007.06.14 조회 2634
박영식
2007.04.04 조회 5649
박영식
2007.02.16 조회 2447
박영식
2007.02.15 조회 2639
박영식
2006.09.19 조회 1928
박영식
2006.09.14 조회 1978
박영식
2006.09.09 조회 1906
박영식
2006.09.05 조회 1966
박영식
2006.09.01 조회 1580
첨부 (0)
위로