龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC下编程实现3D文字[组图](3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
此时的效果如下图所示,但仍是2维文字: 为了显示出3维效果,需要在其上覆盖上一层高亮度文字,显然坐标不能仍是(10,10),否则显示出的文字仍是2维的

  此时的效果如下图所示,但仍是2维文字:

 为了显示出3维效果,需要在其上覆盖上一层高亮度文字,显然坐标不能仍是(10,10),否则显示出的文字仍是2维的。一般可通过错开一两个像素来达到不同光源位置的3D文字效果,比如在此就是在原位置向右上移动了3个像素,可通过在平面移动适当的距离来控制3D效果的深度:

pDC->SetTextColor(::GetSysColor(COLOR_3DHILIGHT));

pDC->TextOut(13,7,sTemp);

  从下图可以看出此时已经具有了立体感相当强的视觉效果了:

  另外,还可以通过设置路径对象来对普通的3D文字进行轮廓勾勒,使之具备特殊的3D效果:

pDC->BeginPath(); //开始路径

pDC->TextOut(13,7,sTemp,19);

//向路径输出汉字

pDC->EndPath(); //结束路径

pDC->SetPolyFillMode(WINDING); //填充路径

pDC->StrokeAndFillPath(); //绘制路径外观、设置填充模式

  下图便为通过路径输出而得到的勾勒出轮廓的空心3D文字:

  结束语

  本文通过对CFont类和CDC绘图类的使用,结合色彩学的有关知识,成功地在VC下以简单的代码实现了效果比较好的3维立体文字。CFont类对字体控制的能力还是很强的,通过对CFont类的深入研究,可对字体的显示做出更加完备的控制。

(本文所述算法在Windows 98下,由Microsoft Visual C++ 6.0编译通过)

精彩图集

赞助商链接