您好,登錄后才能下訂單哦!
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指定的方向不再是真實的屏幕坐標,而是相對于頂點源的起始渲染坐標,當前渲染的橢圓是從橢圓的最右邊的點,順時針開始渲染,第一個參數可以理解為在渲染的弧線上距離起點多遠的路程之后開始渲染字符,其中trans_single_path提供了total_length計算路徑的長度,可以方便部署每一個字符所在的位置(相對于起點),第二個參數是指定字符偏離路徑的寬度,正負數值分別是在內測還是外側進行偏離
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。