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

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

时间: 2024-10-16 22:26:17

AGG第六课 函数参数使用弧度的相关文章

第7课 函数参数的扩展

1.  函数参数的默认值 (1)C++中可以在函数声明时为参数提供一个默认值(注意是声明,不能在定义中提供) (2)当函数调用时没有提供参数的值,则使用默认值 [实例分析]默认参数值初探 #include <stdio.h> //默认值只能在函数声明时提供 int mul(int x = 0); //参数x的默认值为0 int main() { printf("%d\n", mul()); //传入默认值0 printf("%d\n", mul(-1))

第44课 函数参数的秘密(上)

1. 函数参数 (1)函数参数在本质上与局部变量相同,都在栈上分配空间 (2)函数参数的初始值是函数调用时的实参值 (3)函数参数的求值顺序依赖于编译器的实现(注意:这里指求值顺序而不是入栈顺序!) [实例分析]函数参数的求值顺序 #include <stdio.h> int func(int i, int j) { printf("i = %d, j = %d\n",i, j); return 0; } int f() { printf("f() Call...

第44课 函数参数的秘密 (上)

函数参数: 函数参数的求值顺序依赖于编译器的实现: 第一感觉,这个函数会输出1和2,k的最终值会变成3. 示例程序: 1 #include <stdio.h> 2 3 int func(int i, int j) 4 { 5 printf("%d, %d\n", i, j); 6 7 return 0; 8 } 9 10 int main() 11 { 12 int k = 1; 13 14 func(k++, k++); 15 16 printf("%d\n&q

第45课 函数参数的秘密(下)

参数入栈顺序: 调用约定: gcc语言默认使用__cdecl调用约定.调用约定不是语言的一部分,是编译器的一部分. 调用约定使用的最典型的地方就是库函数的调用.因为库的编译方式我们的自己的程序的编译方式可能不一样. 小问题: 如何编写一个计算n个数平均值的函数? 示例程序: 1 #include <stdio.h> 2 3 float average(int array[], int size) 4 { 5 int i = 0; 6 float avr = 0; 7 8 for(i=0; i&

python第四十六课——函数重写

3.函数重写(override) 前提:必须有继承性 原因: 父类中的功能(函数),子类需要用,但是父类中函数的函数体内容和我现在要执行的逻辑还不相符 那么可以将函数名保留(功能还是此功能),但是将函数体重构: 注意: 子类重写父类的函数,除了函数体以外的部分,直接复制父类的即可 演示函数重写的使用以及格式: class Fu: def test(self): print('九阳神功...') class Zi(Fu): def test(self): print('九阳神功...') supe

AGG第二十一课 agg::conv_contour 扩展轮廓线

1前言 轮廓线就是图形的边界,任何封闭的顶点源跳过agg::conv_stroke阶段,将会描绘实心的图形,填充的颜色和边界保持一致.如果不封闭的顶点源一旦跳过agg::conv_stroke就什么也不绘制.agg::conv_stroke就是用来描绘图形边界的. 和agg::trans_affine对比可知,agg::conv_contour是扩展图形的轮廓线,通俗一点就是拓展图形的边界,对图形的边界进行放缩(但是和agg::trans_affine仿射变换不同,这是中心位置不变的缩放). 2

第20课 可变参数模板(1)_模板参数包和函数参数包

1.  参数包(parameter pack) (1)模板参数包(以tuple为例):template<typename- Elements>class tuple ①Elements标识符的左侧使用了省略号,在C++11中Elements被称为"模板参数包",表示可以接受任意多个参数作为模板参数. ②编译器将多个模板参数打包成"单个"的模板参数包,如tuple<int, char, double>实例化模板类时,Element就是包含int

【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

0 内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

BeagleBone Black板第六课:C++编程控制GPIO基础

BBB板第六课:C++编程控制GPIO基础 在一上课我们通过Shell脚本编程实现了对GPIO端口的简单输出控制,实现对两个LED指示灯的交替点亮和关闭,接下来的一两节课,将通过C++程序来实现Shell脚本的功能.为了实现对应的程序控制,我查阅了好多资料,测试过程中发觉网上的一些程序套用过来总是出现各种各样的编译错误,压根就控制不了BBB板,不知是我的BBB板太新,还是以前的程序太旧.最后还是从头开始,重新研究BBB板的文件系统,找出头文件,找出所有相关的函数,终于实现GPIO的C++程序控制