定義文件:include/agg_arc.h
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供洪江管理區(qū)網(wǎng)站建設(shè)、洪江管理區(qū)做網(wǎng)站、洪江管理區(qū)網(wǎng)站設(shè)計(jì)、洪江管理區(qū)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、洪江管理區(qū)企業(yè)網(wǎng)站模板建站服務(wù),十年洪江管理區(qū)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
類函數(shù)構(gòu)造器:
arc(double x, double y, double rx, double ry, double a1,double a2, bool ccw=true)
圓心為(x, y)和長(zhǎng)短半軸分別為rx, ry,初始角度和終結(jié)角度為a1, a2
范圍是0 注意:不是平常使用的角度180,360,而是弧度,否則出錯(cuò) 繪制一個(gè)圓心(400,100),長(zhǎng)短半軸都是100的圓弧,初始角度是0,終結(jié)角度是3.14,折算成角度是180度??梢允褂胊gg::deg2rad(90)將角度轉(zhuǎn)換成弧度。 代碼如下: agg::arc arc(400, 100, 100, 100, 0, 3.14,false); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 分析:可以調(diào)整最后一個(gè)參數(shù),修改成true,查看效果?。?/p> agg::arc arc(400, 100, 100, 100, 0, 3.14/3,true); agg::path_storage path; path.move_to(400,100); path.concat_path(arc); path.line_to(400,100);//連接回到圓心 path.end_poly();//重新閉合 ras.add_path(path); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 我們可以不使用end_poly函數(shù)進(jìn)行閉合,而是獲取弧線的開始頂點(diǎn),然后閉合。 agg::arc arc(400, 100, 100, 100, 0, 3.14/3,true); agg::path_storage path; path.move_to(400,100); path.concat_path(arc);//連接頂點(diǎn)源 path.line_to(400,100);//連接回到圓心 arc.rewind(0); double x; double y; arc.vertex(&x,&y); path.line_to(x,y);//從圓心連接到開始頂點(diǎn)源 ras.add_path(path); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 從這個(gè)例子,我們可以了解兩點(diǎn): 1如何獲取其他頂點(diǎn)源的起點(diǎn),當(dāng)然結(jié)束點(diǎn)可以通過遍歷獲得 2 如何與agg::path_storage配合使用,快速的繪制圖形。 agg::path_storage類提供如下的函數(shù) arc_to(double rx, double ry, double angle,bool large_arc_flag, bool sweep_flag, double x, double y) 添加一條弧路徑,畫軸長(zhǎng)為rx, ry,角度為angle,優(yōu)/劣弧,順逆時(shí)針,終點(diǎn)在(x,y)。 但是不了解長(zhǎng)短半軸,不知道角度,優(yōu)劣弧,順逆時(shí)針等等,都了解,但是就是畫不了?。?/p> 測(cè)試?yán)?: //完全沒有繪制圖形 agg::path_storage ps; ps.arc_to(10,10,agg::deg2rad(90),true,false,160,100); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0)); 測(cè)試?yán)?: //繪制的圖形太難理解,move_to到開始繪制點(diǎn),然后順時(shí)針繪制半圓 agg::path_storage ps; ps.move_to(320,160); ps.arc_to(80,10,6.28,true,true,160,160); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0)); ras.reset();2 例子
2.1 繪制弧線
2.2 繪制扇形
1)代碼如下:
2)代碼如下:
3 agg::path_storage的arc_to疑惑
本文名稱:AGG第十三課agg::arc渲染弧線和扇形
標(biāo)題網(wǎng)址:http://weahome.cn/article/gjsged.html