CImg 三角形繪製演算法實現

2022-02-26 05:42:39 字數 1081 閱讀 6168

這週的cv基礎練習是簡單的圖形繪製:比如說矩形、三角形和圓心什麼的。會發現其實矩形和圓形的實現思路都很直白,矩形只需要確認兩個對角座標就可以了,圓心只需要確認圓心和半徑,接著就是簡單的遍歷各個畫素點判斷。但是,三角形的繪製把數學渣的我難住了,然後去查了一下資料,受到了知乎某位大神的啟發:

如下截圖:

於是有了以下思路:

一.實心三角形繪製

①算出三條直線l1、l2、l3的直線方程,即k1、k2、k3(斜率)和b1、b2、b3(截距)的值

②設三個頂點為p1、p2、p3,某乙個任意位置的畫素點p,p1p2的直線為l1.

③要判斷p點是否在l1的「+」一邊,則把p、p3分別帶入直線方程,算出y-(kx+b)的值,同時大於0或者同時小於0,則p落在「+」,否則在「-」

④判斷p點是否在三角形內,則需要判斷p是否同時落在三條直線的「+」區域,所以要做三次判斷

二. 三角形邊框繪製

①求出三條直線方程

②求出三角形範圍內的x軸最大最小值,y軸最大最小值

③在minx~maxx, miny~maxy的範圍內遍歷,只要p點落在直線方程上,則可以判斷為真,賦上指定的繪製顏色

code實現:

1

//乙個三角形,需要依靠三個頂點來確立,同樣還需要顏色以及空心與否等條件

2void drawtri(cimgchar>& inputimage, vector& position, vector& color, bool

solid )

45else49}

50}51}

5253}54

}55}56 };

drawtri

效果如下圖:

(填充)

(非填充)

css繪製向左三角形 CSS繪製三角形

1.繪製乙個外邊框 div 2.重定義外邊框樣式 當外邊框有了寬度,不知大家是否想乙個問題,相鄰的線條邊界在哪,下面通過把外邊框相鄰側邊設定不同顏色來觀察 使用下面的語句替換上面的border定義 border bottom 50px solid 555555 border top 50px sol...

css繪製向左三角形 純css 實現三角形

每天學習乙個小技能 現在的 上 手機上我們經常見到一些下拉列表的下箭頭 其實方式很簡單 直接引入 或者去找字型檔案 隨著技術的發展 前端效能這一方面有很大的提公升 再不能用 或者盡量不適用的情況下 css 也可以繪製簡單的 下面就是三角形 首先這個思路的講解 就是用到了 border 邊框這個屬性 ...

CSS繪製三角形

利用css繪製三角形 並應用在相應的場景中,減少的使用,可提高載入速率,降低http請求次數 在同一方向上,大致有三種繪製方式,繪製出來的有兩種規格 在保持寬度不變的情況下 對比圖 假定給第乙個三角形命名為 1,則第二第三個分別為 2,3 先從第三個最小面積的說起,如下 height 0 width...