摘自:http://sourceforge.net/p/vector-agg/mailman/vector-agg-general/?viewmonth=200602
所谓“弧度的定义”就是说,1弧度的角大小是怎样规定的?
我们知道“度”的定义是,“两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度。
那么,弧度又是怎样定义的呢? 弧度的定义是:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧
AGG采用的是弧度制的方式,相信很多人刚刚接触AGG的人都不是图形研究或者数学相关的专业出来的,对于在AGG中对于角度的应用,大概和我一样,完全摸不着边。如下提供参考的链接:http://blog.chinaunix.net/uid-20622737-id-1913082.html
所有的函数接收的角度(angles)参数都是弧度(radians)形式的,而不是度(degrees).正如所有的三角形函数(trigonometric function)执行那样.所以应该这样子使用:
agg::trans_affine_rotation(90 * agg::pi /180);
或者:
agg::trans_affine_rotation(agg::deg2rad(90));
尝试查看红色字体,即可知道错误
--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);
>//------------------------------------------------------