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);//释放设备指针
}
---------------------
VC++绘制金刚石(MFC)的更多相关文章
- vc++深入跟踪MFC程序的执行流程
在MFC程序设计的学习过程中最令人感到难受,甚至于有时会动摇学习者信心的就是一种对于程序的一切细节都没有控制权的感觉.这种感觉来源于学习者不知道一个MFC程序是如何运行起来的(即一个MFC程序的执行流 ...
- file:///D:/Program%20Files/Microsoft%20Visual%20Studio%2011.0/VC/VCWizards/CodeWiz/MFC/Variable/HTML
title VS2005 VS2008添加变量,添加函数,添加类时弹出 Script Error 解决办法 问现象描述 : 问题大家都清楚了.不赘述 错误提示 :file:///C:/Progra ...
- VC绘制控件如何防止闪烁
理论上不管什么控件都适用,方法如下: 新建一个MFC类,继承原来的控件类型,对于VC自动生成的类进行如下改动: 首先覆盖 OnEraseBkgnd() 防止擦除时填涂背景: BOOL CXXXCtrl ...
- VC中的MFC到底是什么?
1. 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API ...
- vc++上的MFC的对象序列化和反序列化
注意点: 1. 必须类型序列化声明 DECLARE_SERIAL( Person ) 2. 必须写出实现宏 IMPLEMENT_SERIAL(Person, CObject, VERSIO ...
- Win10系列:VC++绘制文本
20.7.2小节介绍了如何使用Direct2D在应用窗口中绘制图片,本小节将基于20.7.2小节的项目进一步介绍如何实现文本的绘制.打开D2DBasicAnimation.h头文件,并在D2DBasi ...
- Win10系列:VC++绘制位图图片
在使用Direct2D绘制图片的过程中,通过IWICImagingFactory工厂接口来得到绘制图片所需要的资源.本小节将介绍如何通过IWICImagingFactory工厂接口得到这些资源,并使用 ...
- Win10系列:VC++绘制几何图形5
打开D2DBasicAnimation.h头文件,并在D2DBasicAnimation类中添加如下的代码: private: //声明成员变量point D2D1_POINT_2F ...
- Win10系列:VC++绘制几何图形4
三角形绘制完成以后,接下来介绍如何给项目添加主入口函数.打开D2DBasicAnimation.h头文件,添加如下的代码定义一个DirectXAppSource类. //定义类DirectXAppSo ...
随机推荐
- [Selenium] IOS 之 appium
从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是: http://ios-driver.git ...
- JSON --- 一种轻量级的数据交换格式
目录 1. 语法 2. 解析与序列化 JSON.stringify( jsData[, filter, indent] ) JSON.parse( jsonData[, reduction]) JSO ...
- Spring Data JPA 和MyBatis比较
现在Dao持久层的解决方案中,大部分是采用Spring Data JPA或MyBatis解决方案,并且传统企业多用前者,互联网企业多用后者. Spring Data JPA 是Spring Data ...
- 使用Cocos2dx-JS开发一个飞行射击游戏
一.前言 笔者闲来无事,某天github闲逛,看到了游戏引擎的专题,引起了自己的兴趣,于是就自己捣腾了一下Cocos2dx-JS.由于是学习,所谓纸上得来终觉浅,只是看文档看sample看demo,并 ...
- 从零开始构建一个Reactor模式的网络库(一) 线程同步Mutex和Condition
最近在学习陈硕大神的muduo库,感觉写的很专业,以及有一些比较“高级”的技巧和设计方式,自己写会比较困难. 于是打算自己写一个简化版本的Reactor模式网络库,就取名叫mini吧,同样只基于Lin ...
- 任务44:Identity MVC: EF + Identity实现
使用VSCode开发 Razer的智能感知不好.所以这里切换为VS2017进行开发: 新建一个Data的文件夹来存放我们的DBContext.在Data文件夹下新建: ApplicationDbCon ...
- Android应用开发基础篇(12)-----Socket通信(转载)
转自:http://www.devdiv.com/android_socket_-blog-258060-10594.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌握网络 ...
- error: expected ‘)’ before ‘PRId64’(转载)
转自:www.xuebuyuan.com/2077822.html error: expected ‘)’ before ‘PRId64’ 原来这个宏定义给c用的,C++要用它,就要定义一个__STD ...
- 基于FBX SDK的FBX模型解析与加载 -(四)
8. 骨骼蒙皮动画 骨骼蒙皮动画是当前游戏引擎中最常用的一种动画方式,关于其基本原理网络上的资料较多,关于到涉及的其它较复杂操作,如插值.融合等在这里也就先不再讨论了,而且其实现方式也与具体引擎的动作 ...
- apcloud混合式开发app学习笔记
修改图标新建项目检出到本地--------------------------1.api.ajax var loginName = $api.val($api.byId('uname')); var ...