包含文件说明:1.SolveFlashingAndRedrawv1.0.5纯净版无闪烁的MFC应用框架,实际使用时把此工程改名成你要建立的项目名称,然后开始开发即可。
你熟悉MFC的话研究这个框架的半个小时应该就明白并熟练运用了。
2.SolveFlashingAndRedrawv1.0.5demo版利用SolveFlashingAndRedrawv1.0.4框架写的一个示例小程序,主要展示框架要实现的优点特性。
3.VCRn修改vc工程名工具___作者田彬.exe用网上找到的一个MFC改工程名称的小工具,很实用。
如果你想使用本框架就可以用它来改成你想要的工程名了。
4.未使用本框架的类似功能简化程序没有使用框架的程序,实现的功能和Demo类似。
但是运行之后改变窗口大小等,会发现图形闪烁很厉害!5.SolveFlashingAndRedrawv1.0.5demo版运行截图.jpg6.ReadMe.txt说明文件。
补充说明:工程使用vc6.0开发,如果你用vc6.0双击.dsw文件无法打开,请先打开vc6.0然后把.dsw拖动到vc上面。
如果这种方法还是无法打开,你新建一个vc6.0mfcsdi程序,把示例中框架拷贝到这个新工程中,运行即可,代码量不是太多。
框架说明: /****************************************************** SolveFlashingAndRedraw框架说明 ******************************************************/ /** 项目名称: demo框架 版本号: v1.0.5 第一作者:Jef 地址:中国/江苏 日期:20100724 电子邮箱:dungeonsnd@126.com 版权: 1.您可以修改及免费使用本程序。
2.修改之后附上您的个人信息发送到上面的作者邮箱,作者负责在全面测试后发布您修改后的新版本。
3.您使用本程序而导致任何伤害以及经济损失,由过错方依法承担所有责任,一概与第一作者及合作单位无关。
4.如果您使用本程序则表示您已经同意此版本协议!否则请勿使用! 项目功能: SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。
版本历史: v1.0.120091126第一版本 v1.0.220091212第二版本 1.修改了部分变量的名字使其更符合其意义 2.增加为两个工程,一是带demo例子的,另一是不带demo的纯净版. 3.修改了其中一个错误.如CreateCompatibleDC之后没有调用DeleteDC等. v1.0.3对v1.0.2进行了整理 v1.0.420100416在v1.0.3的基础上进行整理,并增加了裁剪区,提高了绘图效率! v1.0.520100724 1.添加了一个工具类CMemBmpDc,帮助产生一个内存DC,并把指定的内存位图选进去。
方便绘图。
2.演示了在适当时机如何高效画图,见Demo版的DrawSinwave(boolbDrawOnScreen)函数。
演示了用两种方法来绘图, 方法1.直接绘图到屏幕上, 同时绘图到内存位图上,内存位图不会立即贴到屏幕上减少了内存拷贝的时间,提高了效率, 将来窗口失效时OnPait贴图到屏幕上. 这种方法的优点时减小了不必要的内存拷贝,缺点时当绘图内存复杂并且非常耗时可能会导致闪烁。
故适用于像本Demo的这样绘图(本例函数只绘制一小段直线)。
方法2.绘制到内存位图上后把应该重绘的这一小块设成裁剪区,然后立即OnPait重绘这个裁剪区。
运行步骤: 直接运行demo里面的程序,在窗口上任意拖拉鼠标画线,然后点击菜单栏的几个示范菜单项,然后移动窗口、 改变窗口大小、最大最小化窗口、用其它窗口覆盖此窗口、鼠标放到任务栏。


以上种种操作观察窗口内的图像变化。
可以发现窗口内图像几乎看不到闪烁,而且窗口的元素已经保存下来重绘时任然可以看到图像。
如何使用: 进行项目开发时,可以先建立项目,然后把本解决方案框架拷贝到新建项目中即可。
也可以自己根据需要修改纯净版。
其它: 友情提示,小心View类头文件及View类的实现文件中有说明,使用时别把它弄到你实际项目里哦! 进行大量复杂的图形的输出,而且对效率要求特别高
2024/8/16 0:12:36 1.05MB 闪烁 重绘 框架 MFC
1
基于openGL的四种直线裁减算法,cohen-sutherland算法,中点分割裁剪算法,梁友栋算法,beck算法。
2024/8/15 15:33:15 12.6MB openGL c++ cohensutherl beck
1
折腾了好几天做出来的结果,只需输入测量点的值即可,最小条件法需要选择两个坐标点,经验证无误,方便广大用户,如果好用请给个好评。
程序是11个点,可根据需要增加或减少测量点数。
1
逐点比较法的直线插补程序,带动四相八拍步进电机
2024/8/8 2:22:54 4KB 直线插补 PLC PS-200 逐点比较法
1
计算机图形学__Bresenham完整算法_画直线、椭圆和圆.docx
2024/8/7 20:30:45 26KB Bresenham
1
1、有两种对弈模式:人人对弈模式和人机对弈模式2、采用黑屏字符输入输出实现UI3、采用打分方法实现AI4、棋盘大小为15*15,棋盘将显示相应的行列号(A-O)5、棋子有两种颜色黑和白,代表着对弈的双方,棋子放在棋盘行列交叉处,惯例黑棋先下。
6、黑白任一方先连成5个棋子形成的直线(横线、竖线、对角线),则该方赢对方输7、任一方都没连成直线,且棋盘已满时,为和局8、最后一步下的位置有特殊标记
2024/8/6 7:20:38 5.29MB 五子棋 C++ 大作业 国科大
1
在窗口中显示一个小球,该球以45度角反弹直线运动,碰撞后依然45度运行
2024/8/3 20:20:44 755KB c++代码 小球反弹
1
现在我们回到LDA的原理上,我们在第一节说讲到了LDA希望投影后希望同一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,但是这只是一个感官的度量。
现在我们首先从比较简单的二类LDA入手,严谨的分析LDA的原理。
    假设我们的数据集D={(x1,y1),(x2,y2),...,((xm,ym))}D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本xixi为n维向量,yi∈{0,1}yi∈{0,1}。
我们定义Nj(j=0,1)Nj(j=0,1)为第j类样本的个数,Xj(j=0,1)Xj(j=0,1)为第j类样本的集合,而μj(j=0,1)μj(j=0,1)为第j类样本的均值向量,定义Σj(j=0,1)Σj(j=0,1)为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。
    μjμj的表达式为:μj=1Nj∑x∈Xjx(j=0,1)μj=1Nj∑x∈Xjx(j=0,1)    ΣjΣj的表达式为:Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)    由于是两类数据,因此我们只需要将数据投影到一条直线上即可。
假设我们的投影直线是向量ww,则对任意一个样本本xixi,它在直线ww的投影为wTxiwTxi,对于我们的两个类别的中心点μ0,μ1μ0,μ1,在在直线ww的投影为wTμ0wTμ0和wTμ1wTμ1。
由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化||wTμ0−wTμ1||22||wTμ0−wTμ1||22,同时我们希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的协方差wTΣ0wwTΣ0w和wTΣ1wwTΣ1w尽可能的小,即最小化wTΣ0w+wTΣ1wwTΣ0w+wTΣ1w。
综上所述,我们的优化目标为:argmaxwJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)wargmax⏟wJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w    我们一般定义类内散度矩阵SwSw为:Sw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)TSw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)T    同时定义类间散度矩阵SbSb为:Sb=(μ0−μ1)(μ0−μ1)TSb=(μ0−μ1)(μ0−μ1)T    这样我们的优化目标重写为:argmaxwJ(w)=wTSbwwTSwwargmax⏟wJ(w)=wTSbwwTSww    仔细一看上式,这不就是我们的广义瑞利商嘛!这就简单了,利用我们第二节讲到的广义瑞利商的性质,我们知道我们的J(w)J(w)最大值为矩阵S−12wSbS−12wSw−12SbSw−12的最大特征值,而对应的ww为S−12wSbS−12wSw−12SbSw−12的最大特征值对应的特征向量!而S−1wSbSw−1Sb的特征值和S−12wSbS−12wSw−12SbSw−12的特征值相同,S−1wSbSw−1Sb的特征向量w′w′和S−12wSbS−12wSw−12SbSw−12的特征向量ww满足w′=S−12www′=Sw−12w的关系!    注意到对于二类的时候,SbwSbw的方向恒为μ0−μ1μ0−μ1,不妨令Sbw=λ(μ0−μ1)Sbw=λ(μ0−μ1),将其带入:(S−1wSb)w=λw(Sw−1Sb)w=λw,可以得到w=S−1w(μ0−μ1)w=Sw−1(μ0−μ1),也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向ww了。
2024/7/30 21:57:26 3KB MATLAB 人脸识别 LDA knn
1
MFC详细的绘图程序,包括绘制圆,直线,矩形,修改字体,填充颜色等得详细代码
2024/7/29 14:31:41 1.89MB MFC绘图
1
(1) 能够用鼠标操控方式,绘制直线、矩形、椭圆。
(2) 在绘图时,选择绘制某种图像后(如直线),在画布中按住鼠标左键后移动鼠标,在画布中实时的根据鼠标的移动显示相应的图形。
在松开鼠标左键后,一次绘图操作完成。
(3) 能够在绘制一图形(如一条直线)前设置线的粗细、颜色。
(以菜单方式)(4) 可以以矢量图方式保存绘制的图形。
(5) 可以读取保存的矢量图形文件,并显示绘图的结果。
2024/7/27 8:13:48 233KB vc++画图版
1
共 362 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡