AGG第六課 函數參數使用弧度

2.1 定義

所謂“弧度的定義”就是說,1弧度的角大小是怎樣規定的?

     我們知道“度”的定義是,“兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當這段弧長正好等於圓周長的360分之一時,兩條射線的夾角的大小爲1度。

  

     那麼,弧度又是怎樣定義的呢弧度的定義是:兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當這段弧長正好等於圓的半徑時,兩條射線的夾角大小爲1

摘自:http://sourceforge.net/p/vector-agg/mailman/vector-agg-general/?viewmonth=200602

 

2.2 AGG使用哪種標準

AGG採用的是弧度制的方式

 所有的函數接收的角度(angles)參數都是弧度(radians)形式的,而不是度(degrees.正如所有的三角形函數(trigonometric function)執行那樣.所以應該這樣子使用:

agg::trans_affine_rotation(90 * agg::pi /180);

或者:

agg::trans_affine_rotation(agg::deg2rad(90));

2.3 摘自郵件列表的文章

嘗試查看紅色字體,即可知道錯誤

--tao zeng 寫道:

我嘗試(rotate)旋轉字符,但是沒有任何的效果。請不吝告知錯在哪裏?

>  //------------------------------------------------------

>                   agg::gsv_text text;

>                 text.text("123ABC");

>                   text.size(10, 7);

>                 text.start_point(150,150);

>   

>                   agg::trans_affine mtx;

>                 mtx.reset();

>                 mtx *=agg::trans_affine_rotation(90); // want to rotate 90

> degree...

>   

>                  agg::gsv_text_outline<agg::trans_affine> text_p(text, mtx);

>                 text_p.width(1.0);

>   

>                   typedefagg::renderer_base<agg::pixfmt_bgr24> ren_base;

>                 typedefagg::renderer_scanline_aa_solid<ren_base> renderer;

>

>                   agg::pixfmt_bgr24 pixf(rbuf_window());

>                 ren_base rb(pixf);

>                 renderer ren(rb);

>                  agg::rasterizer_scanline_aa<> ras;

>                 ras.reset();

>

>                 ren.color(agg::rgba(0.0, 0.5,0.0));

>  

>                 ras.add_path(text_p, 0);

>  

>                 agg::render_scanlines(ras, sl,ren);

>//------------------------------------------------------


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章