關於emwin的多邊形旋轉函式

2022-09-04 21:54:14 字數 967 閱讀 1127

~~~ 介紹一次api介面定義的探秘過程 ~~~

剛開始看到emwin中關於旋轉多邊形的介面定義,如下:

api如上所示,函式的第乙個形參表示目標-多邊形的點集的指標;

函式的第二個引數表示源-多邊形的點集的指標;

函式的第三個引數表示點集中點的個數(一般會寫源-多邊形的點集的點個數);

函式的第四個引數表示旋轉角度。

那麼問題來了,這個形參列表為什麼沒指明旋轉中心呢?到底這個多邊形是繞螢幕上的哪個點旋轉了angle角度呢?

只能看具體的例項了,然後看到它的點集的舉例是這樣的(乙個向下的箭頭):

從這裡可以看到,點集中的點可能不是基於螢幕的座標,因為按照螢幕座標向右向下為正的原則,這裡很多點都是在螢幕位置不可見的。

猜測他們是相對於某個相對圓心(0,0)的,而且座標定義也符合向右向下為正的座標概念的,也就是說這個點集中的點座標都是這個圓心的相對位置座標;

所以繪製出來的填充影象才是乙個向下的箭頭。

那麼,也可大膽假設,旋轉多邊形時應該也就是基於這個圓心旋轉,但是這個圓心在螢幕上的座標又具體是多少?

然後檢視這個圖形的繪製函式(填充多邊形)是怎麼定義的?

果不其然,這個填充多邊形的函式定義裡,形參除了點集的指標和點集中點的個數外,還有一對xy座標值。這一對起點座標xy,應該就是將上面的圓心需要移動到螢幕座標的位置。

經驗證,確實就是這麼來的。也就是旋轉的時候,基於自己的一套中心座標進行旋轉,然後填充(或繪製)的時候再把上述的位置做座標對映,將中心座標移動到具體的螢幕位置處;

多邊形與多邊形 位置關係的判斷

c 判斷點的位置方法一 public intisleft point p0,point p1,point p2 private boolpointinfences point pnt1,point fencepnts else if wn 0 return false else return tru...

多邊形的面積

1 三角形面積 xy平面內,有三角形 123,如下圖所示 1 借助向量叉積和點積,這個三角形的面積公式非常簡單 這個面積是有符號的 1 2 3逆時針排列,則面積為正 1 2 3順時針排列,則面積為負。這是對右手系的總結,如果從背面看這個座標系就成了左手系。在左手系下,面積的正負情況正好相反。所以,關...

函式模版之多邊形

多邊形切割 可用於半平面交 define maxn 100 define eps 1e 8 define zero x x 0?x x struct point double xmult point p1,point p2,point p0 int same side point p1,point ...