码迷,mamicode.com
首页 > 其他好文 > 详细

agg::conv_contour函数auto_detect_orientation作用

时间:2016-01-21 12:17:32      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:agg conv_contour contour.auto_detect_orientation

       正如名称所言:自动检测方向,什么方向,可能很多人不了解,通过AGG邮件了解到几点:扩展轮廓线跟图形的绘制方向有关(也就是move_to,line_to,构成的图形的顺时针,还是逆时针)。如下的两个例子,一个是顺时针绘制矩形,一个是逆时针绘制矩形,然后扩展轮廓线。

例子1逆时针

   agg::path_storage ps;

   ps.move_to(395.5,200.5);

   ps.line_to(295.5,200.5);

   ps.line_to(295.5,210.5);

   ps.line_to(395.5,210.5);

ps.close_polygon();

agg::conv_contour<agg::path_storage> contour(ps);

//contour.auto_detect_orientation(true);

contour.width(m_slider1.value());//获取滑动条的值

agg::conv_stroke<agg::conv_contour<agg::path_storage> >stroke(contour);

 ras.add_path(stroke);

 

例子2 顺时针

    agg::path_storage ps;

    ps.move_to(395.5,200.5);

    ps.line_to(395.5,210.5);

    ps.line_to(295.5,210.5);

ps.line_to(295.5,200.5);

    agg::conv_contour<agg::path_storage>contour(ps);

    contour.width(m_slider1.value());

    agg::conv_stroke<agg::conv_contour<agg::path_storage>> stroke(contour);

ras.add_path(stroke);

 

结果分析:第二个例子顺利的进行扩展线的放大或缩小,但是第一个例子刚好相反,两个例子之间的区别就是图形绘制的方向不同而已。所以为了解决这种问题,才引入了contour.auto_detect_orientation函数。

把第一个例子的上面函数去掉注释,就可以按照正常的逻辑进行缩放轮廓线。


agg::conv_contour函数auto_detect_orientation作用

标签:agg conv_contour contour.auto_detect_orientation

原文地址:http://linuxstorm.blog.51cto.com/5218690/1737030

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!