前言
- 學STemWin的時候將圖片寫到LCD屏幕上的時候遇到了圖像錨點這個概念,於是我就[黑人問號]了,根據網上搜集的資料來分析一下;
- 在不同的開發中,即使是同樣是說圖像錨點,但功能的實現和操作會有一定的區別,然而錨點的基本含義不變;本博文只討論STemWin開發;
- 如有錯誤,還請多多指教;
什麼是圖像錨點(the anchor point)
(1)首先它是個特殊的點。
(2)在座標系中,和給定座標點一起決定圖像位置。
(3)但它並不是座標系上的一個點;
https://blog.csdn.net/timwolee/article/details/9370917
https://blog.csdn.net/u012131827/article/details/25496847
根據這兩位博友的說法:
一個矩形圖像在座標系平面(屏幕)上的位置由兩個點——給定座標點和錨點共同決定,所決定的是圖像起始座標。 錨點就是圖片的原點;
給定座標點: 我們在屏幕上創建圖像時,往往會提供一個(x0,y0)作爲圖像的基準點;這基準點在屏幕上是確定的(座標系中的確定點),但基礎準點並不一定是圖像上的一點;
錨點: 圖像的偏移量。以給定座標點爲基準點,最終決定圖像位置;
STemWin的屏幕座標系如圖:
注意:其實無論是哪種座標系,都不影響分析;
假設給定座標點爲:(X-position,Y-position),錨點爲(X-Anchor,Y-Anchor),圖像起始座標爲(X-Start,Y-Start);
則在STemWin中,圖像起始座標計算公式爲;
X-Start = X-position - X-Anchor;
Y-Start = Y-position - Y-Anchor;
例子:(X-position,Y-position)=(80,80);Image是40*80的一個圖像
應用
void GUI_DrawBitmapEx(const GUI_BITMAP * pBitmap,int x0, int y0,int xCenter, int yCenter,int xMag, int yMag);