计算机屏幕是平面二维的,我们之所以能欣赏到真如实物般的三维图像,是因为显示在计算机屏幕上时色彩灰度的不同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有关知识,三维物体边缘的凸出部分一般显高亮度色,而凹下去的部分由于受光线的遮挡而显暗色。这一认识被广泛应用于网页或其他应用中对按钮、3D线条的绘制。对于本文所要绘制的3D文字同样也适用,即在原始位置显示高亮度颜色,而在左下或右上等位置用低亮度颜色勾勒出其轮廓,这样在视觉上便会产生3D文字的效果。具体实现时,可用完全一样的字体在不同的位置分别绘制两个不同颜色的2D文字,只要使两个文字的坐标合适,就完全可以在视觉上产生出不同效果的3D文字。
     
下面给出两种类似的实现方法并比较两者的效果:

VC下实现3D文字显示void CMyDrawView::OnDraw(CDC* pDC)
}

VC下实现3D文字显示void CMyDrawView::Draw3DText(CString str,CRect rectText,int nHeight,int nWidth,int nWeight,BYTE bItalic,LPCTSTR lpszFacename,CDC *pDC)

VC下实现3D文字显示void CMyDrawView::Draw3DText(CString str,CRect rect,CDC *pDC)


对比效果如图所示:

VC下实现3D文字显示

相关文章:

  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-03-25
  • 2021-04-20
  • 2022-12-23
  • 2023-02-14
  • 2021-12-27
  • 2021-05-17
  • 2022-12-23
相关资源
相似解决方案