輪廓線就是圖形的邊界,任何封閉的頂點(diǎn)源跳過(guò)agg::conv_stroke階段,將會(huì)描繪實(shí)心的圖形,填充的顏色和邊界保持一致。如果不封閉的頂點(diǎn)源一旦跳過(guò)agg::conv_stroke就什么也不繪制。agg::conv_stroke就是用來(lái)描繪圖形邊界的。
創(chuàng)新互聯(lián)公司主營(yíng)西夏網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),西夏h5微信小程序開(kāi)發(fā)搭建,西夏網(wǎng)站營(yíng)銷(xiāo)推廣歡迎西夏等地區(qū)企業(yè)咨詢和agg::conv_contour對(duì)比可知,agg::conv_contour是擴(kuò)展圖形的輪廓線,通俗一點(diǎn)就是拓展圖形的邊界,對(duì)圖形的邊界進(jìn)行放縮(但是和agg::trans_affine不同,這是中心位置不變的縮放)。
摘自:McSeem
A line is in general more complexobjectthan a polygon. Well, unless it's a simple jagged Bresenham line. All linesareeventually converted into polygons that represent their outlines. So that,inmodern graphics there are no lines,there are *strokes*. And conv_strokedoesthis job
執(zhí)行examples/conv_stroke例程,提供如下的控制:
1)線段端點(diǎn)的切換
2)線段之間的連接方式
3)線段寬度
4)miter limit工件的鏈接切口
1)線段端點(diǎn)的形狀
enum line_cap_e
{
butt_cap,//按鈕形狀,實(shí)際和方形形狀并無(wú)二致
square_cap,//設(shè)置之后,長(zhǎng)度比butt_cap長(zhǎng)一些
round_cap//半圓形狀
};
設(shè)置函數(shù):voidline_cap(line_cap_e lc)
2)線段的寬度
設(shè)置函數(shù):voidwidth(double w)
3)介紹stroke的默認(rèn)參數(shù)
當(dāng)然我們可以不調(diào)用line_cap,也可以不調(diào)用width,因?yàn)閟troke有默認(rèn)的構(gòu)造器,指定了默認(rèn)的參數(shù)如下:
m_width(0.5),
m_width_abs(0.5),
m_width_eps(0.5/1024.0),
m_width_sign(1),
m_miter_limit(4.0),
m_inner_miter_limit(1.01),
m_approx_scale(1.0),
m_line_cap(butt_cap),
m_line_join(miter_join),
m_inner_join(inner_miter)
4)agg::conv_stroke的線段樣式
采用的是實(shí)線的渲染方式,是否我們可以通過(guò)替換她,描述虛線:agg::conv_dash
結(jié)果發(fā)現(xiàn):什么也沒(méi)有渲染出來(lái)!!agg::conv_dash會(huì)單獨(dú)描述!!
ras.reset();
agg::path_storage ps1;
ps1.move_to(200,200);
ps1.line_to(300,300);
agg::line_cap_e cap = agg::round_cap;//設(shè)置線段端點(diǎn)的形狀
agg::conv_stroke<agg::path_storage> stroke(ps1);//線段的樣式
stroke.line_cap(cap);
stroke.width(50);//設(shè)置線段的寬度
ras.add_path(stroke);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));
在conv_stroke和conv_dash對(duì)象中添加了縮短路徑的方法。對(duì)于渲染帶粗線的箭頭非常有效。同時(shí)也有一個(gè)agg_conv_shorten_path轉(zhuǎn)換器對(duì)象,可以單獨(dú)使用。
m_slider1(80, 250, 600-10,276, !flip_y)
add_ctrl(m_slider1);
m_slider1.range(0,300);
m_slider1.num_steps(30);
m_slider1.value(1);
//一種坍塌式的減少過(guò)程
agg::ellipse ell1(230,230,140,150);
agg::conv_stroke<agg::ellipse> stroke1(ell1);
stroke1.width(30);
stroke1.shorten(m_slider1.value());
ras.add_path(stroke1);
//類(lèi)似于縮短
agg::path_storage ps;
ps.move_to(20,30);
ps.line_to(440,30);
agg::conv_stroke<agg::path_storage> stroke2(ps);
stroke2.width(30);
stroke2.shorten(m_slider1.value());
ras.add_path(stroke2);
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享題目:AGG第十課agg::conv_stroke渲染輪廓線-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://aaarwkj.com/article16/ppjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容