GDI 線段 文字 定位的問題

2022-07-15 02:15:11 字數 621 閱讀 1130

遇到乙個看起來很簡單的問題:

進一步的抽象是:

1、根據文字的長度和高度,以及兩個點,來獲得文字的定位點(左上角點)的

2、讓文字沿著線的方向

關鍵點分析:

1、點的位置通過向量平移的方式來獲得

2、文字沿著線的方向,需要通過矩陣變化來進行

假定點的方向為逆時針方向,可以簡單的進行分類:

①類:向左(線段方向,起點 + 文字長度一半 + 線段長度一半)、向上(線段方向旋轉90度,文字高度);

②類:向右(線段方向,起點 + 文字長度一半 - 線段長度一半)、向下(線段方向旋轉90度,0)

③類:向下(線段方向,起點 + 文字長度一半 + 線段長度一半)、向左(線段方向旋轉90度,文字高度)

④類:向上(線段方向,起點 + 文字長度一半 - 線段長度一半)、向右(線段方向旋轉90度,0)

假定文字的初始方向為水平的從左到右,可以簡單的進行分類:

①類:不旋轉

②類:不旋轉

③類:逆時針旋轉90度

④類:逆時針旋轉90度

其他方向,待續~

TextOut顯示文字的GDI函式

textout是用於顯示文字的最常用的gdi函式。語法是 textout hdc,x,y,pstext,ilength 以下將詳細地討論這個函式。第乙個引數是裝置內容代號,它既可以是getdc的傳回值,也可以是在處理wm paint訊息時beginpaint的傳回值。裝置內容的屬性控制了被顯示的字串...

GDI 下的閃爍問題

畫多個點運動的時候,窗體會閃爍,查了一下網上的文章,說是optimizeddoublebuffer可以減少閃爍。但是我新增了效果更差,整個視窗經常白色的。搜了所有文章,基本上沒有有用的。後來經過多次試驗,才了解了graphics gc需要用e.graphics獲得,而不能用this.creategr...

使用gdi 的常見的問題

1 編譯錯誤。錯誤太多,停止編譯。注釋掉stdafx.h裡面的 win32 lean and mean 即可 define win32 lean and mean 從 windows 頭中排除極少使用的資料 注釋掉該行,保證gdi 可以編譯通過 參考 http www.cppblog.com eda...