VC下實現3D文字顯示

2021-08-29 08:42:18 字數 793 閱讀 9853

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

計算機螢幕是平面二維的,我們之所以能欣賞到真如實物般的三維影象,是因為顯示在計算機螢幕上時色彩灰度的不同而使人眼產生視覺上的錯覺,而將二維的計算機螢幕感知為三維影象。基於色彩學的有關知識,三維物體邊緣的凸出部分一般顯高亮度色,而凹下去的部分由於受光線的遮擋而顯暗色。這一認識被廣泛應用於網頁或其他應用中對按鈕、3d線條的繪製。對於本文所要繪製的3d文字同樣也適用,即在原始位置顯示高亮度顏色,而在左下或右上等位置用低亮度顏色勾勒出其輪廓,這樣在視覺上便會產生3d文字的效果。具體實現時,可用完全一樣的字型在不同的位置分別繪製兩個不同顏色的2d文字,只要使兩個文字的座標合適,就完全可以在視覺上產生出不同效果的3d文字。

下面給出兩種類似的實現方法並比較兩者的效果:

cmydrawview::ondraw(cdc

*pdc)

cmydrawview::draw3dtext(cstringstr,crectrecttext,

intnheight,

intnwidth,

intnweight,bytebitalic,lpctstrlpszfacename,cdc

*pdc)

cmydrawview::draw3dtext(cstringstr,crectrect,cdc

*pdc)

對比效果如圖所示:

VC下實現3D文字顯示

計算機螢幕是平面二維的,我們之所以能欣賞到真如實物般的三維影象,是因為顯示在計算機螢幕上時色彩灰度的不同而使人眼產生視覺上的錯覺,而將二維的計算機螢幕感知為三維影象。基於色彩學的有關知識,三維物體邊緣的凸出部分一般顯高亮度色,而凹下去的部分由於受光線的遮擋而顯暗色。這一認識被廣泛應用於網頁或其他應用...

3D顯示技術

3d顯示技術說白了都是為了一點 分別讓左眼和右眼在同一時間看到不同的影象。為此發明了幾種不同的技術 紅藍3d。紅藍3d採用普通的顯示器。者只需佩戴乙個紅藍眼鏡便可以看到3d影像。紅藍3d中紅色鏡片只允許紅光通過,藍色鏡片只允許藍光通過。因此左右眼可以分別看到不同的影象。典型的紅藍影象如圖所示 偏振光...

3D顯示技術

3d顯示技術說白了都是為了一點 分別讓左眼和右眼在同一時間看到不同的影象。為此發明了幾種不同的技術 紅藍3d。紅藍3d採用普通的顯示器。者只需佩戴乙個紅藍眼鏡便可以看到3d影像。紅藍3d中紅色鏡片只允許紅光通過,藍色鏡片只允許藍光通過。因此左右眼可以分別看到不同的影象。典型的紅藍影象如圖所示 偏振光...