真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AGG第十三課agg::arc渲染弧線和扇形

1 構(gòu)造函數(shù)參數(shù)說明

定義文件: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ò)

2 例子

2.1 繪制弧線

繪制一個(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_strokestroke(arc);

ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0));

分析:可以調(diào)整最后一個(gè)參數(shù),修改成true,查看效果?。?/p>

2.2 繪制扇形

1)代碼如下:

    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));

2)代碼如下:

我們可以不使用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配合使用,快速的繪制圖形。

3 agg::path_storage的arc_to疑惑

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_strokestroke(ps);

    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  stroke(ps);

    ras.add_path(stroke);

    agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

    ras.reset();


本文名稱:AGG第十三課agg::arc渲染弧線和扇形
標(biāo)題網(wǎng)址:http://weahome.cn/article/gjsged.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部