您好,登錄后才能下訂單哦!
agg::rendering_buffer &rbuf = rbuf_window();
agg::pixfmt_bgr24 pixf(rbuf);
typedef agg::renderer_base<agg::pixfmt_bgr24> renderer_base_type;
renderer_base_type renb(pixf);
typedef agg::renderer_scanline_bin_solid<renderer_base_type> renderder_scanline_type;
renderder_scanline_type rensl(renb);
agg::rasterizer_scanline_aa<> ras;
agg::scanline_u8 sl;
ras.reset();
renb.clear(agg::rgba8(255,255,255));
agg::ellipse ell(400, 100, 100, 100);
agg::conv_stroke<agg::ellipse> stroke(ell);
ras.add_path(stroke);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255, 0, 0));
ras.reset();
agg::gsv_text txt;
agg::trans_single_path transPath;
transPath.add_path(ell);
agg::gsv_text_outline<agg::trans_single_path> txtOutLine(txt, transPath);
txt.flip(true);
txt.size(10);
txt.start_point(100, -15);
txt.space(5);//字符之間的間距
txt.text("http://fengyuzaitu.blog.51cto.com");
ras.add_path(txtOutLine);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255, 0, 0));
ras.reset();
注意:
1 start_point指定的方向不再是真實(shí)的屏幕坐標(biāo),而是相對(duì)于頂點(diǎn)源的起始渲染坐標(biāo),當(dāng)前渲染的橢圓是從橢圓的最右邊的點(diǎn),順時(shí)針開始渲染,第一個(gè)參數(shù)可以理解為在渲染的弧線上距離起點(diǎn)多遠(yuǎn)的路程之后開始渲染字符,其中trans_single_path提供了total_length計(jì)算路徑的長(zhǎng)度,可以方便部署每一個(gè)字符所在的位置(相對(duì)于起點(diǎn)),第二個(gè)參數(shù)是指定字符偏離路徑的寬度,正負(fù)數(shù)值分別是在內(nèi)測(cè)還是外側(cè)進(jìn)行偏離
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。