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 ...
随机推荐
- [Java] String类, StringBuffer类
1. String 类 1. 创建: String s1 = new String; s1 = "abc"; String s2 = new String("abc&qu ...
- Codeforces Round #419 (Div. 1) 补题 CF 815 A-E
A-C传送门 D Karen and Cards 技巧性很强的一道二分优化题 题意很简单 给定n个三元组,和三个维度的上限,问存在多少三元组,使得对于给定的n个三元组中的每一个,必有两个维度严格小于. ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 20. Model Binding
模型绑定 这是个最简单的绑定 先从表单找.再从路由的值上找,最后去QueryString上找 通过反射获取这个类型的属性进行填充.反射完有几个属性,就开始去找着几个属性并绑定值 复杂类型 最后又加了一 ...
- css里关于浏览器的前缀
今天遇到一个比较坑爹的 -moz-box-sizing: border-box; box-sizing' border-box; 一下子有点懵逼,第一个什么鬼??一查,原来是火狐浏览器的前缀.应该 ...
- (水题)洛谷 - P1014 - Cantor表
https://www.luogu.org/problemnew/show/P1014 很显然同一对角线的和是相等的.我们求出前缀和然后二分. 最后注意奇偶的顺序是相反的. #include<b ...
- NGUI Tween几种用法随手记
需要明确下几种动画的用法 play begin EventDelegate.add TweenPlayer ---------------------------------------------- ...
- IT兄弟连 JavaWeb教程 URI、URL
URI介绍 URI(Uniform Resource Identifier),是统一资源标识符的缩写,是一个用于标识某一个Web资源名称的字符串,该标识允许用户对任何资源通过特定的协议进行交互.Web ...
- 第十四篇 .NET高级技术之反射
两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时 ...
- Zeppelin的入门使用系列之创建新的Notebook
前期博客 hadoop-2.6.0.tar.gz + spark-1.6.1-bin-hadoop2.6.tgz + zeppelin-0.5.6-incubating-bin-all.tgz(mas ...
- 【Tsinsen】A1280. 最长双回文串
Bryce1010模板 http://www.tsinsen.com/A1280### 题目分析:记录一个点向后和向前的最长回文串,然后就是max(Llen[i]+Rlen[i+1])了. #incl ...