zoukankan      html  css  js  c++  java
  • VC++绘制金刚石(MFC)

    void CTxx1View::OnDraw(CDC* pDC)
    {
    CTxx1Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here

    //CDC * pDC=GetDC();//设备上下文指针

    typedef struct
    {
    double x;
    double y;
    }zuobiao;


    zuobiao P[n];

    CRect rect;//定义矩形对象

    GetClientRect(&rect);//获得客户区矩形的大小

    pDC->SetMapMode (MM_ANISOTROPIC);//自定义坐标系

    pDC->SetWindowExt(rect.Width(),rect.Height());//设置窗口比例

    pDC->SetViewportExt(rect.Width(),rect.Height());//设置视区比例且y轴向上

    pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);//设置客户区中心为坐标原点

    rect.OffsetRect(-rect.Width()/2,-rect.Height()/2);//矩形与客户区重合

    CPen NewPen,*pOldPen;//定义画笔

    NewPen.CreatePen (PS_SOLID,1,RGB(0,0,255));//创建蓝色画笔

    pOldPen=pDC->SelectObject(&NewPen);//将蓝色画笔选人设备上下文

    double Alpha,Theta;

    Theta=2*PI/n;//为等分角

    Alpha=PI/2-Theta;//起始角

    //极坐标求值

    for(int i=0;i<n;i++)

    {

    P[i].x=r*cos(i*Theta+Alpha);

    P[i].y=r*sin(i*Theta+Alpha);

    }

    //二重循环,连线(P[i]为起点,P[j]为终点)

    for(i=0;i<=n-2;i++)

    {

    for(int j=i+1;j<=n-1;j++)

    {

    pDC->MoveTo(Round(P[i].x),Round(P[i].y));

    pDC->LineTo(Round(P[j].x),Round(P[j].y));

    }

    }

    pDC->SelectObject(pOldPen);//恢复设备环境中的元画笔

    NewPen.DeleteObject ();//删除已成自由状态的蓝色画笔

    ReleaseDC(pDC);//释放设备指针

    }
    --------------------- 

  • 相关阅读:
    linux 下安装web开发环境
    Nginx服务器之 Nginx的基本配置
    Nginx服务器之基础学习
    java反射 之 反射基础
    java IO流 之 其他流
    java IO流 之 字符流
    java IO流 之 字节流
    java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
    java线程 公平锁 ReentrantLock(boolean fair)
    MarkdownPad 2破解
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11021151.html
Copyright © 2011-2022 走看看