AGG第六课 函数参数使用弧度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

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


以上是关于AGG第六课 函数参数使用弧度的主要内容,如果未能解决你的问题,请参考以下文章

快学Scala 第六课 (类构造函数)

AGG第二十六课 裁剪功能

PHP & MySQL数据库专题 第六课 MySQL 内置函数

PHP & MySQL数据库专题 第六课 MySQL 内置函数

java第六课 oop

Python Pandas:将参数传递给 agg() 中的函数